docs: Update 3 files
This commit is contained in:
37
README.md
37
README.md
@ -49,20 +49,35 @@ Two HTTP client approaches are available:
|
||||
```
|
||||
|
||||
To use CPR in your CMakeLists.txt with proper static linking:
|
||||
|
||||
**Simple approach (recommended for new base images):**
|
||||
```cmake
|
||||
find_package(nlohmann_json REQUIRED)
|
||||
find_package(CPRStatic REQUIRED)
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
nlohmann_json::nlohmann_json
|
||||
cpr::cpr_static)
|
||||
```
|
||||
|
||||
**Backwards-compatible approach (works with all base image versions):**
|
||||
```cmake
|
||||
find_package(nlohmann_json REQUIRED)
|
||||
|
||||
# Find OpenSSL libraries (path varies by architecture)
|
||||
find_library(OPENSSL_SSL_LIB NAMES ssl PATHS /usr/local/lib64 /usr/local/lib NO_DEFAULT_PATH)
|
||||
find_library(OPENSSL_CRYPTO_LIB NAMES crypto PATHS /usr/local/lib64 /usr/local/lib NO_DEFAULT_PATH)
|
||||
|
||||
# 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;${OPENSSL_SSL_LIB};${OPENSSL_CRYPTO_LIB};/usr/lib/libz.a;/usr/lib/libzstd.a;lzma;dl"
|
||||
)
|
||||
# Try the new CPRStatic module first, fall back to manual setup
|
||||
find_package(CPRStatic QUIET)
|
||||
if(NOT CPRStatic_FOUND)
|
||||
# Fallback for older base images
|
||||
find_library(OPENSSL_SSL_LIB NAMES ssl PATHS /usr/local/lib64 /usr/local/lib NO_DEFAULT_PATH)
|
||||
find_library(OPENSSL_CRYPTO_LIB NAMES crypto PATHS /usr/local/lib64 /usr/local/lib NO_DEFAULT_PATH)
|
||||
|
||||
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;${OPENSSL_SSL_LIB};${OPENSSL_CRYPTO_LIB};/usr/lib/libz.a;/usr/lib/libzstd.a;lzma;dl"
|
||||
)
|
||||
endif()
|
||||
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
nlohmann_json::nlohmann_json
|
||||
|
Reference in New Issue
Block a user