docs: Update 3 files
This commit is contained in:
17
README.md
17
README.md
@ -48,6 +48,23 @@ Two HTTP client approaches are available:
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
To use CPR in your CMakeLists.txt with proper static linking:
|
||||||
|
```cmake
|
||||||
|
find_package(nlohmann_json REQUIRED)
|
||||||
|
|
||||||
|
# CPR static linking setup
|
||||||
|
add_library(cpr::cpr_static STATIC IMPORTED)
|
||||||
|
set_target_properties(cpr::cpr_static PROPERTIES
|
||||||
|
IMPORTED_LOCATION "/usr/local/lib/libcpr.a"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "/usr/local/include"
|
||||||
|
INTERFACE_LINK_LIBRARIES "/usr/local/lib/libcurl.a;/usr/local/lib64/libssl.a;/usr/local/lib64/libcrypto.a;/usr/lib/libz.a;/usr/lib/libzstd.a;lzma;dl"
|
||||||
|
)
|
||||||
|
|
||||||
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||||
|
nlohmann_json::nlohmann_json
|
||||||
|
cpr::cpr_static)
|
||||||
|
```
|
||||||
|
|
||||||
## Quick Start
|
## Quick Start
|
||||||
|
|
||||||
### Building the Base Image
|
### Building the Base Image
|
||||||
|
@ -183,6 +183,22 @@ RUN curl -LO https://github.com/libcpr/cpr/archive/refs/tags/${CPR_VERSION}.tar.
|
|||||||
make install && \
|
make install && \
|
||||||
cd / && rm -rf /tmp/cpr-${CPR_VERSION} /tmp/${CPR_VERSION}.tar.gz
|
cd / && rm -rf /tmp/cpr-${CPR_VERSION} /tmp/${CPR_VERSION}.tar.gz
|
||||||
|
|
||||||
|
# Fix CPR CMake config to provide a static-only target
|
||||||
|
RUN cat > /usr/local/lib/cmake/cpr/cprConfig-static.cmake << 'EOF'
|
||||||
|
# Static-only CPR configuration that avoids CURL dependency issues
|
||||||
|
|
||||||
|
# Create the static CPR target
|
||||||
|
add_library(cpr::cpr_static STATIC IMPORTED)
|
||||||
|
set_target_properties(cpr::cpr_static PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${CMAKE_CURRENT_LIST_DIR}/../../../lib/libcpr.a"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/../../../include"
|
||||||
|
INTERFACE_LINK_LIBRARIES "/usr/local/lib/libcurl.a;/usr/local/lib64/libssl.a;/usr/local/lib64/libcrypto.a;/usr/lib/libz.a;/usr/lib/libzstd.a;lzma;dl"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Provide an alias for convenience
|
||||||
|
add_library(cpr::static ALIAS cpr::cpr_static)
|
||||||
|
EOF
|
||||||
|
|
||||||
|
|
||||||
ARG MARIADB_CONNECTOR_VERSION=3.4.5
|
ARG MARIADB_CONNECTOR_VERSION=3.4.5
|
||||||
WORKDIR /tmp
|
WORKDIR /tmp
|
||||||
|
@ -35,27 +35,17 @@ target_include_directories(${PROJECT_NAME} PRIVATE
|
|||||||
src)
|
src)
|
||||||
|
|
||||||
# Find packages
|
# Find packages
|
||||||
find_package(OpenSSL REQUIRED)
|
|
||||||
find_package(nlohmann_json REQUIRED)
|
find_package(nlohmann_json REQUIRED)
|
||||||
find_package(PkgConfig REQUIRED)
|
|
||||||
|
|
||||||
# Use pkg-config for libcurl since CMake config isn't available
|
# CPR static linking setup
|
||||||
pkg_check_modules(CURL REQUIRED libcurl)
|
|
||||||
|
|
||||||
# Create a static-only CPR target to avoid dynamic linking issues
|
|
||||||
add_library(cpr::cpr_static STATIC IMPORTED)
|
add_library(cpr::cpr_static STATIC IMPORTED)
|
||||||
set_target_properties(cpr::cpr_static PROPERTIES
|
set_target_properties(cpr::cpr_static PROPERTIES
|
||||||
IMPORTED_LOCATION "/usr/local/lib/libcpr.a"
|
IMPORTED_LOCATION "/usr/local/lib/libcpr.a"
|
||||||
INTERFACE_INCLUDE_DIRECTORIES "/usr/local/include"
|
INTERFACE_INCLUDE_DIRECTORIES "/usr/local/include"
|
||||||
|
INTERFACE_LINK_LIBRARIES "/usr/local/lib/libcurl.a;/usr/local/lib64/libssl.a;/usr/local/lib64/libcrypto.a;/usr/lib/libz.a;/usr/lib/libzstd.a;lzma;dl"
|
||||||
)
|
)
|
||||||
|
|
||||||
# Link libraries with explicit static linking
|
# Link libraries
|
||||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||||
nlohmann_json::nlohmann_json
|
nlohmann_json::nlohmann_json
|
||||||
cpr::cpr_static
|
cpr::cpr_static)
|
||||||
/usr/local/lib/libcurl.a
|
|
||||||
/usr/local/lib64/libssl.a
|
|
||||||
/usr/local/lib64/libcrypto.a
|
|
||||||
/usr/lib/libz.a
|
|
||||||
/usr/lib/libzstd.a
|
|
||||||
lzma dl)
|
|
Reference in New Issue
Block a user