docs: Update 3 files
Some checks failed
dropshell-build multiarch / build (linux/amd64) (push) Successful in 4m48s
dropshell-build multiarch / build (linux/arm64) (push) Failing after 10m55s
dropshell-build multiarch / create-manifest (push) Has been skipped

This commit is contained in:
Your Name
2025-06-29 18:21:20 +12:00
parent b83f4474da
commit a8d4b43039
3 changed files with 37 additions and 14 deletions

View File

@ -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
### Building the Base Image

View File

@ -183,6 +183,22 @@ RUN curl -LO https://github.com/libcpr/cpr/archive/refs/tags/${CPR_VERSION}.tar.
make install && \
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
WORKDIR /tmp

View File

@ -35,27 +35,17 @@ target_include_directories(${PROJECT_NAME} PRIVATE
src)
# Find packages
find_package(OpenSSL REQUIRED)
find_package(nlohmann_json REQUIRED)
find_package(PkgConfig REQUIRED)
# Use pkg-config for libcurl since CMake config isn't available
pkg_check_modules(CURL REQUIRED libcurl)
# Create a static-only CPR target to avoid dynamic linking issues
# 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"
)
# Link libraries with explicit static linking
# Link libraries
target_link_libraries(${PROJECT_NAME} PRIVATE
nlohmann_json::nlohmann_json
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)
cpr::cpr_static)