86 lines
2.7 KiB
CMake
86 lines
2.7 KiB
CMake
|
cmake_minimum_required(VERSION 3.15)
|
||
|
|
||
|
add_library(cpr
|
||
|
accept_encoding.cpp
|
||
|
async.cpp
|
||
|
auth.cpp
|
||
|
bearer.cpp
|
||
|
callback.cpp
|
||
|
cert_info.cpp
|
||
|
cookies.cpp
|
||
|
cprtypes.cpp
|
||
|
curl_container.cpp
|
||
|
curlholder.cpp
|
||
|
error.cpp
|
||
|
file.cpp
|
||
|
multipart.cpp
|
||
|
parameters.cpp
|
||
|
payload.cpp
|
||
|
proxies.cpp
|
||
|
proxyauth.cpp
|
||
|
session.cpp
|
||
|
threadpool.cpp
|
||
|
timeout.cpp
|
||
|
unix_socket.cpp
|
||
|
util.cpp
|
||
|
response.cpp
|
||
|
redirect.cpp
|
||
|
interceptor.cpp
|
||
|
ssl_ctx.cpp
|
||
|
curlmultiholder.cpp
|
||
|
multiperform.cpp)
|
||
|
|
||
|
add_library(cpr::cpr ALIAS cpr)
|
||
|
|
||
|
target_link_libraries(cpr PUBLIC -lcurl) # todo should be private, but first dependencies in ssl_options need to be removed
|
||
|
|
||
|
# Fix missing OpenSSL includes for Windows since in 'ssl_ctx.cpp' we include OpenSSL directly
|
||
|
if(SSL_BACKEND_USED STREQUAL "OpenSSL")
|
||
|
target_link_libraries(cpr PRIVATE OpenSSL::SSL)
|
||
|
target_include_directories(cpr PRIVATE ${OPENSSL_INCLUDE_DIR})
|
||
|
endif()
|
||
|
|
||
|
# Set version for shared libraries.
|
||
|
set_target_properties(cpr
|
||
|
PROPERTIES
|
||
|
VERSION ${${PROJECT_NAME}_VERSION}
|
||
|
SOVERSION ${${PROJECT_NAME}_VERSION_MAJOR})
|
||
|
|
||
|
# Import GNU common install directory variables
|
||
|
include(GNUInstallDirs)
|
||
|
|
||
|
if(CPR_USE_SYSTEM_CURL)
|
||
|
install(TARGETS cpr
|
||
|
EXPORT cprTargets
|
||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||
|
|
||
|
# Include CMake helpers for package config files
|
||
|
# Follow this installation guideline: https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html
|
||
|
include(CMakePackageConfigHelpers)
|
||
|
|
||
|
write_basic_package_version_file(
|
||
|
"${PROJECT_BINARY_DIR}/cpr/cprConfigVersion.cmake"
|
||
|
VERSION ${${PROJECT_NAME}_VERSION}
|
||
|
COMPATIBILITY ExactVersion)
|
||
|
|
||
|
configure_package_config_file(${PROJECT_SOURCE_DIR}/cmake/cprConfig.cmake.in
|
||
|
"${PROJECT_BINARY_DIR}/cpr/cprConfig.cmake"
|
||
|
INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cpr)
|
||
|
|
||
|
install(EXPORT cprTargets
|
||
|
FILE cprTargets.cmake
|
||
|
NAMESPACE cpr::
|
||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cpr)
|
||
|
|
||
|
install(FILES ${PROJECT_BINARY_DIR}/cpr/cprConfig.cmake
|
||
|
${PROJECT_BINARY_DIR}/cpr/cprConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cpr)
|
||
|
|
||
|
else()
|
||
|
install(TARGETS cpr
|
||
|
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||
|
endif()
|