docs: Update 3 files
This commit is contained in:
@ -75,7 +75,7 @@ cd build-base
|
||||
|
||||
- **ipdemo**: Demonstrates Drogon HTTP utilities and JSON processing
|
||||
- **test_libs**: Tests all available libraries (fmt, spdlog, SQLite3, etc.)
|
||||
- **cprdemo**: Example using CPR library for HTTP requests (work in progress)
|
||||
- **cprdemo**: Example using CPR library for HTTP requests
|
||||
|
||||
### Environment Variables
|
||||
|
||||
|
@ -134,8 +134,26 @@ WORKDIR /tmp
|
||||
RUN curl -LO https://curl.se/download/curl-${CURL_VERSION}.tar.gz && \
|
||||
tar xzf curl-${CURL_VERSION}.tar.gz && \
|
||||
cd curl-${CURL_VERSION} && \
|
||||
./configure --disable-shared --enable-static --with-ssl=/usr/local --prefix=/usr/local \
|
||||
--with-zlib --with-zstd && \
|
||||
mkdir build && cd build && \
|
||||
cmake .. \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DBUILD_SHARED_LIBS=OFF \
|
||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON \
|
||||
-DCMAKE_INSTALL_PREFIX=/usr/local \
|
||||
-DCURL_STATICLIB=ON \
|
||||
-DCURL_USE_OPENSSL=ON \
|
||||
-DOPENSSL_ROOT_DIR=/usr/local \
|
||||
-DOPENSSL_USE_STATIC_LIBS=TRUE \
|
||||
-DCURL_ZLIB=ON \
|
||||
-DCURL_ZSTD=ON \
|
||||
-DZLIB_LIBRARY=/usr/lib/libz.a \
|
||||
-DZLIB_INCLUDE_DIR=/usr/include \
|
||||
-Dzstd_LIBRARY=/usr/lib/libzstd.a \
|
||||
-Dzstd_INCLUDE_DIR=/usr/include \
|
||||
-DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \
|
||||
-DBUILD_CURL_EXE=OFF \
|
||||
-DBUILD_TESTING=OFF \
|
||||
-DCURL_ENABLE_EXPORT_TARGET=ON && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -rf /tmp/curl-${CURL_VERSION} /tmp/curl-${CURL_VERSION}.tar.gz
|
||||
@ -157,7 +175,10 @@ RUN curl -LO https://github.com/libcpr/cpr/archive/refs/tags/${CPR_VERSION}.tar.
|
||||
-DCURL_INCLUDE_DIR=/usr/local/include \
|
||||
-DCURL_LIBRARY=/usr/local/lib/libcurl.a \
|
||||
-DOPENSSL_ROOT_DIR=/usr/local \
|
||||
-DOPENSSL_USE_STATIC_LIBS=TRUE && \
|
||||
-DOPENSSL_USE_STATIC_LIBS=TRUE \
|
||||
-DCMAKE_FIND_LIBRARY_SUFFIXES=".a" \
|
||||
-DZLIB_LIBRARY=/usr/lib/libz.a \
|
||||
-Dzstd_LIBRARY=/usr/lib/libzstd.a && \
|
||||
make -j$(nproc) && \
|
||||
make install && \
|
||||
cd / && rm -rf /tmp/cpr-${CPR_VERSION} /tmp/${CPR_VERSION}.tar.gz
|
||||
|
@ -36,28 +36,26 @@ target_include_directories(${PROJECT_NAME} PRIVATE
|
||||
|
||||
# Find packages
|
||||
find_package(OpenSSL REQUIRED)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
find_package(nlohmann_json REQUIRED)
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
||||
# Find CURL manually since we built it without CMake targets
|
||||
find_library(CURL_LIBRARY NAMES curl libcurl PATHS /usr/local/lib NO_DEFAULT_PATH)
|
||||
find_path(CURL_INCLUDE_DIR NAMES curl/curl.h PATHS /usr/local/include NO_DEFAULT_PATH)
|
||||
# Use pkg-config for libcurl since CMake config isn't available
|
||||
pkg_check_modules(CURL REQUIRED libcurl)
|
||||
|
||||
# Create CURL target if not found
|
||||
if(NOT TARGET CURL::libcurl)
|
||||
add_library(CURL::libcurl STATIC IMPORTED)
|
||||
set_target_properties(CURL::libcurl PROPERTIES
|
||||
IMPORTED_LOCATION ${CURL_LIBRARY}
|
||||
INTERFACE_INCLUDE_DIRECTORIES ${CURL_INCLUDE_DIR}
|
||||
INTERFACE_LINK_LIBRARIES "/usr/lib/libz.a;/usr/lib/libzstd.a"
|
||||
)
|
||||
endif()
|
||||
# Create a static-only CPR target to avoid dynamic linking issues
|
||||
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"
|
||||
)
|
||||
|
||||
# Find CPR after CURL target is available
|
||||
find_package(cpr REQUIRED)
|
||||
|
||||
# Link libraries
|
||||
# Link libraries with explicit static linking
|
||||
target_link_libraries(${PROJECT_NAME} PRIVATE
|
||||
nlohmann_json::nlohmann_json
|
||||
cpr::cpr
|
||||
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