1- set (CURLCPP_SOURCE
1+ set (CURLCPP_HEADER_LIST
2+ ../include /cookie.h
3+ ../include /cookie_date.h
4+ ../include /cookie_datetime.h
5+ ../include /cookie_time.h
6+ ../include /curl_config.h
7+ ../include /curl_cookie.h
8+ ../include /curl_easy.h
9+ ../include /curl_easy_info.h
10+ ../include /curl_exception.h
11+ ../include /curl_form.h
12+ ../include /curl_global.h
13+ ../include /curl_header.h
14+ ../include /curl_info.h
15+ ../include /curl_interface.h
16+ ../include /curl_ios.h
17+ ../include /curl_multi.h
18+ ../include /curl_option.h
19+ ../include /curl_pair.h
20+ ../include /curl_receiver.h
21+ ../include /curl_sender.h
22+ ../include /curl_share.h
23+ ../include /curl_utility.h
24+ )
25+
26+ add_library (curlcpp)
27+
28+ target_sources (curlcpp
29+ PRIVATE
230 curl_easy.cpp
331 curl_header.cpp
432 curl_global.cpp
@@ -12,16 +40,43 @@ set(CURLCPP_SOURCE
1240 cookie_date.cpp
1341 cookie_time.cpp
1442 cookie_datetime.cpp
43+ PUBLIC
44+ ${CURLCPP_HEADER_LIST}
45+ )
46+
47+ target_include_directories (curlcpp PUBLIC ../include )
48+
49+ target_compile_features (curlcpp PUBLIC cxx_std_11)
50+
51+ target_compile_options (curlcpp PRIVATE
52+ $<$<CXX_COMPILER_ID:GNU>:-Wall -Wextra -Wpedantic>
53+ $<$<CXX_COMPILER_ID:Clang>:-Wall -Wpedantic>
54+ $<$<CXX_COMPILER_ID:MSVC >:/W4 /wd4244 /wd4305 /wd4996 /wd4267 /wd4018>
1555)
1656
17- if (CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang" )
18- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11" )
57+ if (CURLCPP_USE_PKGCONFIG)
58+ find_package (PkgConfig REQUIRED)
59+ pkg_check_modules(libcurl REQUIRED IMPORTED_TARGET libcurl>=${CURL_MIN_VERSION} )
60+ target_link_libraries (curlcpp PUBLIC PkgConfig::libcurl)
61+ else ()
62+ # Add MacPorts
63+ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" )
64+ set (CMAKE_PREFIX_PATH /opt/local ${CMAKE_PREFIX_PATH} )
65+ endif ()
66+
67+ find_package (CURL ${CURL_MIN_VERSION} REQUIRED)
68+
69+ target_include_directories (curlcpp PUBLIC ${CURL_INCLUDE_DIRS} )
70+ target_link_libraries (curlcpp PUBLIC ${CURL_LIBRARY} )
1971endif ()
2072
2173if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" )
22- set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++" )
74+ target_compile_options (curlcpp PUBLIC -stdlib=libc++)
75+ endif ()
76+
77+ if (IPO_SUPPORTED AND CMAKE_BUILD_TYPE STREQUAL "Release" )
78+ set_target_properties (curlcpp PROPERTIES INTERPROCEDURAL_OPTIMIZATION TRUE )
2379endif ()
2480
25- add_library (curlcpp ${CURLCPP_SOURCE} )
26- target_link_libraries (curlcpp ${CURL_LIBRARY} )
2781install (TARGETS curlcpp LIBRARY DESTINATION lib ARCHIVE DESTINATION lib)
82+ install (FILES ${CURLCPP_HEADER_LIST} DESTINATION include /curlcpp)
0 commit comments