This repository was archived by the owner on Jun 14, 2024. It is now read-only.
forked from microsoft/cpprestsdk
-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathcpprest_find_boost.cmake
More file actions
79 lines (76 loc) · 2.62 KB
/
Copy pathcpprest_find_boost.cmake
File metadata and controls
79 lines (76 loc) · 2.62 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
function(cpprest_find_boost)
if(TARGET cpprestsdk_boost_internal)
return()
endif()
if(IOS)
set(IOS_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../Build_iOS")
set(Boost_LIBRARIES "${IOS_SOURCE_DIR}/boost.framework/boost" CACHE INTERNAL "")
set(Boost_INCLUDE_DIR "${IOS_SOURCE_DIR}/boost.framework/Headers" CACHE INTERNAL "")
elseif(ANDROID)
set(Boost_COMPILER "-clang")
if(ARM)
set(BOOST_ROOT "${CMAKE_BINARY_DIR}/../Boost-for-Android/build" CACHE INTERNAL "")
set(BOOST_LIBRARYDIR "${CMAKE_BINARY_DIR}/../Boost-for-Android/build/lib" CACHE INTERNAL "")
else()
set(BOOST_ROOT "${CMAKE_BINARY_DIR}/../Boost-for-Android-x86/build" CACHE INTERNAL "")
set(BOOST_LIBRARYDIR "${CMAKE_BINARY_DIR}/../Boost-for-Android-x86/build/lib" CACHE INTERNAL "")
endif()
find_host_package(Boost 1.55 EXACT REQUIRED COMPONENTS random system thread filesystem chrono atomic)
elseif(UNIX)
find_package(Boost REQUIRED COMPONENTS random system thread filesystem chrono atomic date_time regex)
else()
find_package(Boost REQUIRED COMPONENTS system date_time regex)
endif()
add_library(cpprestsdk_boost_internal INTERFACE)
# FindBoost continually breaks imported targets whenever boost updates.
if(1)
target_include_directories(cpprestsdk_boost_internal INTERFACE "$<BUILD_INTERFACE:${Boost_INCLUDE_DIR}>")
set(_prev)
set(_libs)
foreach(_lib ${Boost_LIBRARIES})
if(_lib STREQUAL "optimized" OR _lib STREQUAL "debug")
else()
if(_prev STREQUAL "optimized")
list(APPEND _libs "$<$<NOT:$<CONFIG:Debug>>:${_lib}>")
elseif(_prev STREQUAL "debug")
list(APPEND _libs "$<$<CONFIG:Debug>:${_lib}>")
else()
list(APPEND _libs "${_lib}")
endif()
endif()
set(_prev "${_lib}")
endforeach()
target_link_libraries(cpprestsdk_boost_internal INTERFACE "$<BUILD_INTERFACE:${_libs}>")
else()
if(ANDROID)
target_link_libraries(cpprestsdk_boost_internal INTERFACE
Boost::boost
Boost::random
Boost::system
Boost::thread
Boost::filesystem
Boost::chrono
Boost::atomic
)
elseif(UNIX)
target_link_libraries(cpprestsdk_boost_internal INTERFACE
Boost::boost
Boost::random
Boost::system
Boost::thread
Boost::filesystem
Boost::chrono
Boost::atomic
Boost::date_time
Boost::regex
)
else()
target_link_libraries(cpprestsdk_boost_internal INTERFACE
Boost::boost
Boost::system
Boost::date_time
Boost::regex
)
endif()
endif()
endfunction()