Mercurial > hg > orthanc-webviewer
annotate Orthanc/Resources/CMake/BoostConfiguration.cmake @ 145:d850500b8ca6
sync
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 08 Nov 2016 10:15:05 +0100 |
parents | 9362080e5e3d |
children | 1a90184363f8 |
rev | line source |
---|---|
78 | 1 if (STATIC_BUILD OR NOT USE_SYSTEM_BOOST) |
2 set(BOOST_STATIC 1) | |
3 else() | |
4 include(FindBoost) | |
5 | |
6 set(BOOST_STATIC 0) | |
7 #set(Boost_DEBUG 1) | |
8 #set(Boost_USE_STATIC_LIBS ON) | |
9 | |
10 find_package(Boost | |
128
e8cfda4c8a2f
Sync + support of JPEG2000 lossless images with YBR_RCT photometric interpretation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
90
diff
changeset
|
11 COMPONENTS filesystem thread system date_time regex locale ${ORTHANC_BOOST_COMPONENTS}) |
78 | 12 |
13 if (NOT Boost_FOUND) | |
14 message(FATAL_ERROR "Unable to locate Boost on this system") | |
15 endif() | |
16 | |
17 # Boost releases 1.44 through 1.47 supply both V2 and V3 filesystem | |
18 # http://www.boost.org/doc/libs/1_46_1/libs/filesystem/v3/doc/index.htm | |
19 if (${Boost_VERSION} LESS 104400) | |
20 add_definitions( | |
21 -DBOOST_HAS_FILESYSTEM_V3=0 | |
22 ) | |
23 else() | |
24 add_definitions( | |
25 -DBOOST_HAS_FILESYSTEM_V3=1 | |
26 -DBOOST_FILESYSTEM_VERSION=3 | |
27 ) | |
28 endif() | |
29 | |
30 #if (${Boost_VERSION} LESS 104800) | |
31 # boost::locale is only available from 1.48.00 | |
32 #message("Too old version of Boost (${Boost_LIB_VERSION}): Building the static version") | |
33 # set(BOOST_STATIC 1) | |
34 #endif() | |
35 | |
36 include_directories(${Boost_INCLUDE_DIRS}) | |
37 link_libraries(${Boost_LIBRARIES}) | |
38 endif() | |
39 | |
40 | |
41 if (BOOST_STATIC) | |
128
e8cfda4c8a2f
Sync + support of JPEG2000 lossless images with YBR_RCT photometric interpretation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
90
diff
changeset
|
42 # Parameters for Boost 1.60.0 |
e8cfda4c8a2f
Sync + support of JPEG2000 lossless images with YBR_RCT photometric interpretation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
90
diff
changeset
|
43 set(BOOST_NAME boost_1_60_0) |
e8cfda4c8a2f
Sync + support of JPEG2000 lossless images with YBR_RCT photometric interpretation
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
90
diff
changeset
|
44 set(BOOST_BCP_SUFFIX bcpdigest-1.0.1) |
129 | 45 set(BOOST_MD5 "a789f8ec2056ad1c2d5f0cb64687cc7b") |
78 | 46 set(BOOST_URL "http://www.montefiore.ulg.ac.be/~jodogne/Orthanc/ThirdPartyDownloads/${BOOST_NAME}_${BOOST_BCP_SUFFIX}.tar.gz") |
47 set(BOOST_FILESYSTEM_SOURCES_DIR "${BOOST_NAME}/libs/filesystem/src") | |
48 set(BOOST_SOURCES_DIR ${CMAKE_BINARY_DIR}/${BOOST_NAME}) | |
49 | |
50 DownloadPackage(${BOOST_MD5} ${BOOST_URL} "${BOOST_SOURCES_DIR}") | |
51 | |
52 set(BOOST_SOURCES) | |
53 | |
54 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR | |
55 ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR | |
56 ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" OR | |
141 | 57 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR |
58 ${CMAKE_SYSTEM_NAME} STREQUAL "PNaCl" OR | |
59 ${CMAKE_SYSTEM_NAME} STREQUAL "NaCl32" OR | |
60 ${CMAKE_SYSTEM_NAME} STREQUAL "NaCl64") | |
78 | 61 list(APPEND BOOST_SOURCES |
141 | 62 ${BOOST_SOURCES_DIR}/libs/atomic/src/lockpool.cpp |
78 | 63 ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/once.cpp |
64 ${BOOST_SOURCES_DIR}/libs/thread/src/pthread/thread.cpp | |
65 ) | |
66 add_definitions( | |
67 -DBOOST_LOCALE_WITH_ICONV=1 | |
141 | 68 -DBOOST_LOCALE_NO_WINAPI_BACKEND=1 |
69 -DBOOST_LOCALE_NO_STD_BACKEND=1 | |
78 | 70 ) |
71 | |
141 | 72 if ("${CMAKE_SYSTEM_VERSION}" STREQUAL "LinuxStandardBase" OR |
73 ${CMAKE_SYSTEM_NAME} STREQUAL "PNaCl" OR | |
74 ${CMAKE_SYSTEM_NAME} STREQUAL "NaCl32" OR | |
75 ${CMAKE_SYSTEM_NAME} STREQUAL "NaCl64") | |
78 | 76 add_definitions(-DBOOST_HAS_SCHED_YIELD=1) |
77 endif() | |
78 | |
79 elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") | |
80 list(APPEND BOOST_SOURCES | |
81 ${BOOST_SOURCES_DIR}/libs/thread/src/win32/tss_dll.cpp | |
82 ${BOOST_SOURCES_DIR}/libs/thread/src/win32/thread.cpp | |
83 ${BOOST_SOURCES_DIR}/libs/thread/src/win32/tss_pe.cpp | |
84 ${BOOST_FILESYSTEM_SOURCES_DIR}/windows_file_codecvt.cpp | |
85 ) | |
86 | |
87 # Starting with release 0.8.2, Orthanc statically links against | |
88 # libiconv, even on Windows. Indeed, the "WCONV" library of | |
89 # Windows XP seems not to support properly several codepages | |
90 # (notably "Latin3", "Hebrew", and "Arabic"). | |
91 | |
92 if (USE_BOOST_ICONV) | |
93 include(${ORTHANC_ROOT}/Resources/CMake/LibIconvConfiguration.cmake) | |
94 else() | |
95 add_definitions(-DBOOST_LOCALE_WITH_WCONV=1) | |
96 endif() | |
97 | |
141 | 98 add_definitions( |
99 -DBOOST_LOCALE_NO_POSIX_BACKEND=1 | |
100 -DBOOST_LOCALE_NO_STD_BACKEND=1 | |
101 ) | |
78 | 102 else() |
103 message(FATAL_ERROR "Support your platform here") | |
104 endif() | |
105 | |
106 if (${CMAKE_SYSTEM_NAME} STREQUAL "Darwin") | |
107 list(APPEND BOOST_SOURCES | |
108 ${BOOST_SOURCES_DIR}/libs/filesystem/src/utf8_codecvt_facet.cpp | |
109 ) | |
110 endif() | |
111 | |
112 aux_source_directory(${BOOST_SOURCES_DIR}/libs/regex/src BOOST_REGEX_SOURCES) | |
113 | |
114 list(APPEND BOOST_SOURCES | |
115 ${BOOST_REGEX_SOURCES} | |
116 ${BOOST_SOURCES_DIR}/libs/date_time/src/gregorian/greg_month.cpp | |
117 ${BOOST_SOURCES_DIR}/libs/locale/src/encoding/codepage.cpp | |
118 ${BOOST_SOURCES_DIR}/libs/system/src/error_code.cpp | |
119 ) | |
120 | |
141 | 121 if (${CMAKE_SYSTEM_NAME} STREQUAL "PNaCl" OR |
122 ${CMAKE_SYSTEM_NAME} STREQUAL "NaCl32" OR | |
123 ${CMAKE_SYSTEM_NAME} STREQUAL "NaCl64") | |
124 # boost::filesystem is not available on PNaCl | |
125 add_definitions( | |
126 -DBOOST_HAS_FILESYSTEM_V3=0 | |
127 -D__INTEGRITY=1 | |
128 -DORTHANC_SANDBOXED=1 | |
129 ) | |
130 else() | |
131 add_definitions(-DBOOST_HAS_FILESYSTEM_V3=1) | |
132 list(APPEND BOOST_SOURCES | |
133 ${BOOST_FILESYSTEM_SOURCES_DIR}/codecvt_error_category.cpp | |
134 ${BOOST_FILESYSTEM_SOURCES_DIR}/operations.cpp | |
135 ${BOOST_FILESYSTEM_SOURCES_DIR}/path.cpp | |
136 ${BOOST_FILESYSTEM_SOURCES_DIR}/path_traits.cpp | |
137 ) | |
138 endif() | |
139 | |
140 if (USE_BOOST_LOCALE_BACKENDS) | |
141 if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux" OR | |
142 ${CMAKE_SYSTEM_NAME} STREQUAL "Darwin" OR | |
143 ${CMAKE_SYSTEM_NAME} STREQUAL "FreeBSD" OR | |
144 ${CMAKE_SYSTEM_NAME} STREQUAL "kFreeBSD" OR | |
145 ${CMAKE_SYSTEM_NAME} STREQUAL "PNaCl" OR | |
146 ${CMAKE_SYSTEM_NAME} STREQUAL "NaCl32" OR | |
147 ${CMAKE_SYSTEM_NAME} STREQUAL "NaCl64") | |
148 list(APPEND BOOST_SOURCES | |
149 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/codecvt.cpp | |
150 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/collate.cpp | |
151 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/converter.cpp | |
152 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/numeric.cpp | |
153 ${BOOST_SOURCES_DIR}/libs/locale/src/posix/posix_backend.cpp | |
154 ) | |
155 elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows") | |
156 list(APPEND BOOST_SOURCES | |
157 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/collate.cpp | |
158 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/converter.cpp | |
159 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/lcid.cpp | |
160 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/numeric.cpp | |
161 ${BOOST_SOURCES_DIR}/libs/locale/src/win32/win_backend.cpp | |
162 ) | |
163 else() | |
164 message(FATAL_ERROR "Support your platform here") | |
165 endif() | |
166 | |
167 list(APPEND BOOST_SOURCES | |
168 ${BOOST_REGEX_SOURCES} | |
169 ${BOOST_SOURCES_DIR}/libs/date_time/src/gregorian/greg_month.cpp | |
170 ${BOOST_SOURCES_DIR}/libs/system/src/error_code.cpp | |
171 | |
172 ${BOOST_FILESYSTEM_SOURCES_DIR}/codecvt_error_category.cpp | |
173 ${BOOST_FILESYSTEM_SOURCES_DIR}/operations.cpp | |
174 ${BOOST_FILESYSTEM_SOURCES_DIR}/path.cpp | |
175 ${BOOST_FILESYSTEM_SOURCES_DIR}/path_traits.cpp | |
176 | |
177 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/generator.cpp | |
178 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/date_time.cpp | |
179 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/formatting.cpp | |
180 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/ids.cpp | |
181 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/localization_backend.cpp | |
182 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/message.cpp | |
183 ${BOOST_SOURCES_DIR}/libs/locale/src/shared/mo_lambda.cpp | |
184 ${BOOST_SOURCES_DIR}/libs/locale/src/util/codecvt_converter.cpp | |
185 ${BOOST_SOURCES_DIR}/libs/locale/src/util/default_locale.cpp | |
186 ${BOOST_SOURCES_DIR}/libs/locale/src/util/gregorian.cpp | |
187 ${BOOST_SOURCES_DIR}/libs/locale/src/util/info.cpp | |
188 ${BOOST_SOURCES_DIR}/libs/locale/src/util/locale_data.cpp | |
189 ) | |
190 endif() | |
191 | |
78 | 192 add_definitions( |
193 # Static build of Boost | |
194 -DBOOST_ALL_NO_LIB | |
195 -DBOOST_ALL_NOLIB | |
196 -DBOOST_DATE_TIME_NO_LIB | |
197 -DBOOST_THREAD_BUILD_LIB | |
198 -DBOOST_PROGRAM_OPTIONS_NO_LIB | |
199 -DBOOST_REGEX_NO_LIB | |
200 -DBOOST_SYSTEM_NO_LIB | |
201 -DBOOST_LOCALE_NO_LIB | |
202 -DBOOST_HAS_LOCALE=1 | |
203 ) | |
204 | |
205 if (CMAKE_COMPILER_IS_GNUCXX) | |
206 add_definitions(-isystem ${BOOST_SOURCES_DIR}) | |
207 endif() | |
208 | |
209 include_directories( | |
210 ${BOOST_SOURCES_DIR} | |
211 ) | |
212 | |
145 | 213 source_group(ThirdParty\\boost REGULAR_EXPRESSION ${BOOST_SOURCES_DIR}/.*) |
214 | |
78 | 215 else() |
216 add_definitions( | |
217 -DBOOST_HAS_LOCALE=1 | |
218 ) | |
219 endif() | |
220 | |
221 | |
222 add_definitions( | |
223 -DBOOST_HAS_DATE_TIME=1 | |
224 -DBOOST_HAS_REGEX=1 | |
225 ) |