summaryrefslogtreecommitdiff
path: root/indra/cmake/Boost.cmake
blob: b57c33c3e00c3f2c3a69ce66d2e2c511ca20e064 (plain)
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# -*- cmake -*-
include(Prebuilt)

include_guard()

add_library( ll::boost INTERFACE IMPORTED )
if( USE_CONAN )
  target_link_libraries( ll::boost INTERFACE CONAN_PKG::boost )
  target_compile_definitions( ll::boost INTERFACE BOOST_ALLOW_DEPRECATED_HEADERS BOOST_BIND_GLOBAL_PLACEHOLDERS )
  return()
endif()

use_prebuilt_binary(boost)

# As of sometime between Boost 1.67 and 1.72, Boost libraries are suffixed
# with the address size.
set(addrsfx "-x${ADDRESS_SIZE}")

if (WINDOWS)

    find_library(BOOST_CONTEXT_LIBRARY
        NAMES
        libboost_context-mt
        libboost_context-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_FIBER_LIBRARY
        NAMES
        libboost_fiber-mt
        libboost_fiber-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_FILESYSTEM_LIBRARY
        NAMES
        libboost_filesystem-mt
        libboost_filesystem-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_PROGRAMOPTIONS_LIBRARY
        NAMES
        libboost_program_options-mt
        libboost_program_options-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_REGEX_LIBRARY
        NAMES
        libboost_regex-mt
        libboost_regex-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_SYSTEM_LIBRARY
        NAMES
        libboost_system-mt
        libboost_system-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_THREAD_LIBRARY
        NAMES
        libboost_thread-mt
        libboost_thread-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_URL_LIBRARY
        NAMES
        libboost_url-mt
        libboost_url-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

else (WINDOWS)

    find_library(BOOST_CONTEXT_LIBRARY
       NAMES
       boost_context-mt
       boost_context-mt${addrsfx}
       PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_FIBER_LIBRARY
        NAMES
        boost_fiber-mt
        boost_fiber-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_FILESYSTEM_LIBRARY
        NAMES
        boost_filesystem-mt
        boost_filesystem-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_PROGRAMOPTIONS_LIBRARY
        NAMES
        boost_program_options-mt
        boost_program_options-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_REGEX_LIBRARY
        NAMES
        boost_regex-mt
        boost_regex-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_SYSTEM_LIBRARY
        NAMES
        boost_system-mt
        boost_system-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_THREAD_LIBRARY
        NAMES
        boost_thread-mt
        boost_thread-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

    find_library(BOOST_URL_LIBRARY
        NAMES
        boost_url-mt
        boost_url-mt${addrsfx}
        PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)

endif (WINDOWS)

target_link_libraries(ll::boost INTERFACE
    ${BOOST_FIBER_LIBRARY}
    ${BOOST_CONTEXT_LIBRARY}
    ${BOOST_FILESYSTEM_LIBRARY}
    ${BOOST_PROGRAMOPTIONS_LIBRARY}
    ${BOOST_REGEX_LIBRARY}
    ${BOOST_SYSTEM_LIBRARY}
    ${BOOST_THREAD_LIBRARY}
    ${BOOST_URL_LIBRARY})

if (LINUX)
    target_link_libraries(ll::boost INTERFACE rt)
endif (LINUX)