|
1 |
| -IF(BIICODE) |
2 |
| - INCLUDE(biicode/cmake/tools) |
| 1 | +cmake_minimum_required(VERSION 3.3) |
3 | 2 |
|
4 |
| - ACTIVATE_CPP11() |
5 |
| - ADD_BIICODE_TARGETS() |
6 |
| -ELSE() |
7 |
| - cmake_minimum_required(VERSION 2.8) |
8 |
| - #if using an older VERSION of curl ocsp stapling can be disabled |
9 |
| - set(CURL_MIN_VERSION "7.28.0") |
10 |
| - # Setting up project |
11 |
| - project(CURLCPP) |
| 3 | +include("cmake/HunterGate.cmake") |
| 4 | +HunterGate( |
| 5 | + URL "https://github.com/ruslo/hunter/archive/v0.19.51.tar.gz" |
| 6 | + SHA1 "d238dc1dd4db83e45a592f96fdb95d17c688600a" |
| 7 | +) |
12 | 8 |
|
| 9 | +set(CURLCPP_VERSION_MAJOR 1) |
| 10 | +set(CURLCPP_VERSION_MINOR 0) |
| 11 | +set(CURLCPP_VERSION_PATCH 0) |
| 12 | +set(CURLCPP_VERSION ${CURLCPP_VERSION_MAJOR}.${CURLCPP_VERSION_MINOR}.${CURLCPP_VERSION_PATCH}) |
13 | 13 |
|
14 |
| - # Add MacPorts |
15 |
| - if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") |
16 |
| - set(CMAKE_PREFIX_PATH /opt/local ${CMAKE_PREFIX_PATH}) |
17 |
| - endif() |
| 14 | +project(CURLCPP VERSION ${CURLCPP_VERSION}) |
18 | 15 |
|
19 |
| - # Checking for dependencies |
20 |
| - find_package(CURL ${CURL_MIN_VERSION} REQUIRED) |
| 16 | +set(CMAKE_CXX_STANDARD 11) |
| 17 | +set(CMAKE_CXX_STANDARD_REQUIRED ON) |
| 18 | +set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC") |
21 | 19 |
|
22 |
| - # Set up include pathes |
23 |
| - include_directories(${CURL_INCLUDE_DIRS} |
24 |
| - ${CURLCPP_SOURCE_DIR}/include) |
| 20 | +option(BUILD_TESTS "Build tests" OFF) |
25 | 21 |
|
26 |
| - file(GLOB HEADER_LIST "${CMAKE_SOURCE_DIR}/include/*.h") |
27 |
| - install (FILES ${HEADER_LIST} DESTINATION include) |
| 22 | +hunter_add_package(CURL) |
| 23 | +find_package(CURL CONFIG REQUIRED) |
28 | 24 |
|
29 |
| - # Set up source directories |
30 |
| - add_subdirectory(src) |
| 25 | +file(GLOB ${PROJECT_NAME}_SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/sources/*.cpp") |
| 26 | +include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include/) |
31 | 27 |
|
32 |
| - set(CURLCPP_LIB_LOCATION "$<TARGET_FILE:${curlcpp}>") |
| 28 | +add_library(libcurlcpp ${${PROJECT_NAME}_SOURCES}) |
| 29 | +set_target_properties(libcurlcpp PROPERTIES PREFIX "") |
| 30 | +set_target_properties(libcurlcpp PROPERTIES IMPORT_PREFIX "") |
33 | 31 |
|
34 |
| - configure_file(CMake/curlcppConfig.cmake.in |
35 |
| - ${CURLCPP_BINARY_DIR}/curlcppConfig.cmake @ONLY) |
36 |
| -ENDIF() |
| 32 | +target_link_libraries(libcurlcpp CURL::libcurl) |
| 33 | + |
| 34 | +target_include_directories(libcurlcpp PUBLIC |
| 35 | + $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> |
| 36 | + $<INSTALL_INTERFACE:include> |
| 37 | +) |
| 38 | +# Install |
| 39 | + |
| 40 | +set(GENERATED_DIR "${CMAKE_CURRENT_BINARY_DIR}/generated") |
| 41 | + |
| 42 | +set(CONFIG_INSTALL_DIR "lib/cmake/${PROJECT_NAME}") |
| 43 | +set(INCLUDE_INSTALL_DIR "include") |
| 44 | + |
| 45 | +set(VERSION_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}ConfigVersion.cmake") |
| 46 | +set(PROJECT_CONFIG "${GENERATED_DIR}/${PROJECT_NAME}Config.cmake") |
| 47 | +set(TARGETS_EXPORT_NAME "${PROJECT_NAME}Targets") |
| 48 | +set(NAMESPACE "${PROJECT_NAME}::") |
| 49 | + |
| 50 | +include(CMakePackageConfigHelpers) |
| 51 | +write_basic_package_version_file( |
| 52 | + "${VERSION_CONFIG}" COMPATIBILITY SameMajorVersion |
| 53 | +) |
| 54 | + |
| 55 | +configure_package_config_file( |
| 56 | + "${PROJECT_SOURCE_DIR}/cmake/Config.cmake.in" |
| 57 | + "${PROJECT_CONFIG}" |
| 58 | + INSTALL_DESTINATION "${CONFIG_INSTALL_DIR}" |
| 59 | +) |
| 60 | + |
| 61 | +install(TARGETS libcurlcpp |
| 62 | + EXPORT "${TARGETS_EXPORT_NAME}" |
| 63 | + RUNTIME DESTINATION bin |
| 64 | + ARCHIVE DESTINATION lib |
| 65 | + LIBRARY DESTINATION lib |
| 66 | +) |
| 67 | + |
| 68 | +install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/ DESTINATION include) |
| 69 | + |
| 70 | +install( |
| 71 | + FILES "${PROJECT_CONFIG}" "${VERSION_CONFIG}" |
| 72 | + DESTINATION "${CONFIG_INSTALL_DIR}" |
| 73 | + ) |
| 74 | + |
| 75 | +install(EXPORT "${TARGETS_EXPORT_NAME}" |
| 76 | + NAMESPACE "${NAMESPACE}" |
| 77 | + DESTINATION "${CONFIG_INSTALL_DIR}" |
| 78 | +) |
| 79 | + |
| 80 | +if(BUILD_TESTS) |
| 81 | + enable_testing() |
| 82 | + file(GLOB ${PROJECT_NAME}_TEST_SOURCES tests/*.cpp) |
| 83 | + add_executable(check ${${PROJECT_NAME}_TEST_SOURCES}) |
| 84 | + target_link_libraries(check libcurlcpp) |
| 85 | + add_test(NAME check COMMAND check) |
| 86 | +endif() |
0 commit comments