e713baee |
1 | ## |
2 | |
3 | if(3RDPARTY_MACRO_ALREADY_INCLUDED) |
4 | return() |
5 | endif() |
6 | set(3RDPARTY_MACRO_ALREADY_INCLUDED 1) |
9f33b387 |
7 | |
9f33b387 |
8 | |
4fecc365 |
9 | macro (THIRDPARTY_PRODUCT PRODUCT_NAME HEADER_NAME LIBRARY_CSF_NAME LIBRARY_NAME_DEBUG_SUFFIX) |
9f33b387 |
10 | |
3321f684 |
11 | if (NOT DEFINED INSTALL_${PRODUCT_NAME} AND BUILD_SHARED_LIBS) |
e713baee |
12 | set (INSTALL_${PRODUCT_NAME} OFF CACHE BOOL "${INSTALL_${PRODUCT_NAME}_DESCR}") |
13 | endif() |
14 | |
9f33b387 |
15 | if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DIR) |
16 | set (3RDPARTY_${PRODUCT_NAME}_DIR "" CACHE PATH "The directory containing ${PRODUCT_NAME}") |
17 | endif() |
18 | |
e713baee |
19 | # include occt macros. compiler_bitness, os_wiht_bit, compiler |
20 | OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/occt_macros") |
21 | |
22 | # specify product folder in connectin with 3RDPARTY_DIR |
23 | if (3RDPARTY_DIR AND EXISTS "${3RDPARTY_DIR}") |
24 | #CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_DIR 3RDPARTY_${PRODUCT_NAME}_DIR PATH "The directory containing ${PRODUCT_NAME}") |
25 | |
26 | if (NOT 3RDPARTY_${PRODUCT_NAME}_DIR OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}") |
27 | FIND_PRODUCT_DIR ("${3RDPARTY_DIR}" ${PRODUCT_NAME} ${PRODUCT_NAME}_DIR_NAME) |
28 | if (${PRODUCT_NAME}_DIR_NAME) |
29 | set (3RDPARTY_${PRODUCT_NAME}_DIR "${3RDPARTY_DIR}/${${PRODUCT_NAME}_DIR_NAME}" CACHE PATH "The directory containing ${PRODUCT_NAME}" FORCE) |
30 | endif() |
9f33b387 |
31 | endif() |
e713baee |
32 | else() |
33 | #set (3RDPARTY_${PRODUCT_NAME}_DIR "" CACHE PATH "The directory containing ${PRODUCT_NAME}" FORCE) |
9f33b387 |
34 | endif() |
35 | |
e713baee |
36 | if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR) |
37 | set (3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR "" CACHE PATH "the path of ${HEADER_NAME}") |
9f33b387 |
38 | endif() |
39 | |
4fecc365 |
40 | separate_arguments (${LIBRARY_CSF_NAME}) |
41 | foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}}) |
42 | string (REPLACE "." "" LIBRARY_NAME "${LIBRARY_NAME}") |
43 | if (BUILD_SHARED_LIBS) |
44 | if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME} OR NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}}") |
45 | set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME} "" CACHE FILEPATH "${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE) |
46 | endif() |
19286d7c |
47 | |
4fecc365 |
48 | if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}) |
49 | set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} "" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"") |
50 | endif() |
9f33b387 |
51 | |
4fecc365 |
52 | if (WIN32) |
53 | if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME} OR NOT 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}}") |
54 | set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME} "" CACHE FILEPATH "${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE) |
55 | endif() |
3321f684 |
56 | endif() |
9f33b387 |
57 | |
4fecc365 |
58 | if (WIN32) |
59 | if (NOT DEFINED 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}) |
60 | set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"") |
61 | endif() |
3321f684 |
62 | endif() |
e713baee |
63 | endif() |
19286d7c |
64 | |
4fecc365 |
65 | # check 3RDPARTY_${PRODUCT_NAME}_ paths for consistency with specified 3RDPARTY_${PRODUCT_NAME}_DIR |
66 | if (3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}") |
67 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR PATH "the path to ${PRODUCT_NAME}") |
68 | if (BUILD_SHARED_LIBS) |
69 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME} FILEPATH "the path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"") |
19286d7c |
70 | |
4fecc365 |
71 | if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME}}") |
72 | get_filename_component (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME}}" PATH) |
73 | set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE) |
74 | else() |
75 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"") |
76 | endif() |
19286d7c |
77 | |
4fecc365 |
78 | if (WIN32) |
79 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME} FILEPATH "the path to ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"") |
19286d7c |
80 | |
4fecc365 |
81 | if (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME}}") |
82 | get_filename_component (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME}}" PATH) |
83 | set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}}" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE) |
84 | else() |
85 | CHECK_PATH_FOR_CONSISTENCY (3RDPARTY_${PRODUCT_NAME}_DIR 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"") |
86 | endif() |
3321f684 |
87 | endif() |
9f33b387 |
88 | endif() |
89 | endif() |
4fecc365 |
90 | endforeach() |
e713baee |
91 | # header |
92 | if (NOT 3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR}") |
19286d7c |
93 | |
e713baee |
94 | # set 3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR |
95 | set (3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR "3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR-NOTFOUND" CACHE FILEPATH "the path to ${HEADER_NAME}" FORCE) |
19286d7c |
96 | |
e713baee |
97 | if (3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}") |
98 | find_path (3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR NAMES ${HEADER_NAME} |
99 | PATHS ${3RDPARTY_${PRODUCT_NAME}_DIR} |
16ed73be |
100 | PATH_SUFFIXES include inc headers |
e713baee |
101 | CMAKE_FIND_ROOT_PATH_BOTH |
102 | NO_DEFAULT_PATH) |
103 | else() |
104 | find_path (3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR NAMES ${HEADER_NAME} |
16ed73be |
105 | PATH_SUFFIXES include inc headers |
e713baee |
106 | CMAKE_FIND_ROOT_PATH_BOTH) |
9f33b387 |
107 | endif() |
108 | endif() |
19286d7c |
109 | |
9f33b387 |
110 | if (3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR}") |
111 | list (APPEND 3RDPARTY_INCLUDE_DIRS "${3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR}") |
112 | else() |
113 | list (APPEND 3RDPARTY_NOT_INCLUDED 3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR) |
e713baee |
114 | |
115 | set (3RDPARTY_${PRODUCT_NAME}_INCLUDE_DIR "" CACHE FILEPATH "The path to ${HEADER_NAME}" FORCE) |
116 | endif() |
117 | |
4fecc365 |
118 | foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}}) |
119 | string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}") |
0553a8ea |
120 | # if (BUILD_SHARED_LIBS) |
4fecc365 |
121 | # library |
122 | if (NOT 3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}") |
123 | set (CMAKE_FIND_LIBRARY_SUFFIXES .lib .so .dylib .a) |
19286d7c |
124 | |
4fecc365 |
125 | set (${PRODUCT_NAME}_PATH_SUFFIXES lib) |
26e0b335 |
126 | if (WIN32) |
127 | set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} win${COMPILER_BITNESS}/${COMPILER}/lib) |
16ed73be |
128 | set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} lib/win${COMPILER_BITNESS}) |
26e0b335 |
129 | endif() |
4fecc365 |
130 | if (ANDROID) |
131 | set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} libs/${ANDROID_ABI}) |
132 | endif() |
16ed73be |
133 | if(UNIX AND NOT APPLE AND NOT ANDROID) |
134 | set (${PRODUCT_NAME}_PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} lib/linux${COMPILER_BITNESS}) |
135 | endif() |
9f33b387 |
136 | |
4fecc365 |
137 | # set 3RDPARTY_${PRODUCT_NAME}_LIBRARY as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_LIBRARY |
138 | set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} "3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}-NOTFOUND" CACHE FILEPATH "The path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE) |
096ef695 |
139 | |
5771d380 |
140 | if ((3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}") OR (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}}")) |
4fecc365 |
141 | find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME} |
142 | PATHS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME}}" "${3RDPARTY_${PRODUCT_NAME}_DIR}" |
143 | PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} |
144 | CMAKE_FIND_ROOT_PATH_BOTH |
145 | NO_DEFAULT_PATH) |
14bbbdcb |
146 | if ("${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}" STREQUAL "3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}-NOTFOUND") |
147 | # find directory recursive |
148 | FIND_SUBDIRECTORY (${3RDPARTY_${PRODUCT_NAME}_DIR} "${${PRODUCT_NAME}_PATH_SUFFIXES}" SUBDIR_NAME) |
149 | if (NOT "${SUBDIR_NAME}" STREQUAL "") |
150 | find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME_SUFFIX} |
151 | PATHS "${SUBDIR_NAME}" |
152 | PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} |
153 | CMAKE_FIND_ROOT_PATH_BOTH |
154 | NO_DEFAULT_PATH) |
155 | endif() |
156 | endif() |
3321f684 |
157 | else() |
4fecc365 |
158 | find_library (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME} |
159 | PATH_SUFFIXES ${${PRODUCT_NAME}_PATH_SUFFIXES} |
160 | CMAKE_FIND_ROOT_PATH_BOTH) |
3321f684 |
161 | endif() |
096ef695 |
162 | |
4fecc365 |
163 | if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}") |
164 | get_filename_component (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}}" PATH) |
165 | set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE) |
096ef695 |
166 | else() |
4fecc365 |
167 | set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} "" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE) |
096ef695 |
168 | endif() |
19286d7c |
169 | endif() |
096ef695 |
170 | |
4fecc365 |
171 | if (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}") |
172 | list (APPEND 3RDPARTY_LIBRARY_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}") |
3321f684 |
173 | else() |
0553a8ea |
174 | list (APPEND 3RDPARTY_NO_LIBS 3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}) |
4fecc365 |
175 | |
176 | set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} "" CACHE FILEPATH "The path to ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE) |
3321f684 |
177 | endif() |
3321f684 |
178 | |
4fecc365 |
179 | # shared library |
180 | if (WIN32) |
181 | if (NOT 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} OR NOT EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}") |
3321f684 |
182 | |
4fecc365 |
183 | set (CMAKE_FIND_LIBRARY_SUFFIXES .dll) |
096ef695 |
184 | |
4fecc365 |
185 | # set 3RDPARTY_${PRODUCT_NAME}_DLL as notfound, otherwise find_library can't assign a new value to 3RDPARTY_${PRODUCT_NAME}_DLL |
186 | set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} "3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}-NOTFOUND" CACHE FILEPATH "The path to ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE) |
3321f684 |
187 | |
5771d380 |
188 | if ((3RDPARTY_${PRODUCT_NAME}_DIR AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DIR}") OR (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}}")) |
4fecc365 |
189 | find_library (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME} |
5771d380 |
190 | PATHS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME}}" "${3RDPARTY_${PRODUCT_NAME}_DIR}" |
16ed73be |
191 | PATH_SUFFIXES bin win${COMPILER_BITNESS}/${COMPILER}/bin bin/win${COMPILER_BITNESS} |
4fecc365 |
192 | NO_DEFAULT_PATH) |
14bbbdcb |
193 | if (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} STREQUAL "3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}-NOTFOUND") |
194 | # find directory recursive |
195 | FIND_SUBDIRECTORY (${3RDPARTY_${PRODUCT_NAME}_DIR} bin SUBDIR_NAME) |
196 | if (NOT "${SUBDIR_NAME}" STREQUAL "") |
197 | find_library (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME_SUFFIX} |
198 | PATHS "${SUBDIR_NAME}" |
199 | PATH_SUFFIXES bin |
200 | NO_DEFAULT_PATH) |
201 | endif() |
202 | endif() |
4fecc365 |
203 | else() |
204 | find_library (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} NAMES ${LIBRARY_NAME} PATH_SUFFIXES bin) |
205 | endif() |
3321f684 |
206 | |
4fecc365 |
207 | if (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} AND EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}") |
208 | get_filename_component (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}" PATH) |
209 | set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}}" CACHE PATH "The directory containing ${PRODUCT_NAME} library \"${LIBRARY_NAME}\"" FORCE) |
3321f684 |
210 | else() |
4fecc365 |
211 | set (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} "" CACHE PATH "The directory containing ${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE) |
212 | |
213 | set (3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX} "" CACHE FILEPATH "${PRODUCT_NAME} shared library \"${LIBRARY_NAME}\"" FORCE) |
3321f684 |
214 | endif() |
215 | endif() |
216 | |
4fecc365 |
217 | if (3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX} OR EXISTS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}}") |
218 | list (APPEND 3RDPARTY_DLL_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}}") |
219 | else() |
0553a8ea |
220 | list (APPEND 3RDPARTY_NO_DLLS 3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}) |
4fecc365 |
221 | endif() |
222 | endif() |
223 | |
d51a0ff6 |
224 | if (WIN32) |
225 | set (3RDPARTY_${PRODUCT_NAME}_DLL_DIRS "") |
226 | else() |
227 | set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS "") |
228 | endif() |
229 | |
230 | foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}}) |
231 | string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}") |
232 | if (WIN32) |
233 | set (3RDPARTY_${PRODUCT_NAME}_DLL_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}};${3RDPARTY_${PRODUCT_NAME}_DLL_DIRS}") |
14bbbdcb |
234 | set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}") |
d51a0ff6 |
235 | else() |
236 | set (3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}:${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIRS}") |
237 | endif() |
238 | endforeach() |
239 | |
240 | set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "") |
3321f684 |
241 | |
4fecc365 |
242 | if (INSTALL_${PRODUCT_NAME}) |
243 | OCCT_MAKE_OS_WITH_BITNESS() |
244 | OCCT_MAKE_COMPILER_SHORT_NAME() |
16ed73be |
245 | set (USED_3RDPARTY_${PRODUCT_NAME}_DIR "") |
4fecc365 |
246 | |
247 | if (WIN32) |
3321f684 |
248 | if (SINGLE_GENERATOR) |
4fecc365 |
249 | install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}" DESTINATION "${INSTALL_DIR_BIN}") |
3321f684 |
250 | else() |
4fecc365 |
251 | install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}" |
3321f684 |
252 | CONFIGURATIONS Release |
4fecc365 |
253 | DESTINATION "${INSTALL_DIR_BIN}") |
254 | install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}" |
3321f684 |
255 | CONFIGURATIONS RelWithDebInfo |
4fecc365 |
256 | DESTINATION "${INSTALL_DIR_BIN}i") |
257 | install (FILES "${3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}}" |
3321f684 |
258 | CONFIGURATIONS Debug |
4fecc365 |
259 | DESTINATION "${INSTALL_DIR_BIN}d") |
260 | endif() |
261 | else() |
262 | get_filename_component(ABS_PATH ${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}} REALPATH) |
263 | |
264 | if ("${PRODUCT_NAME}" STREQUAL "FREEIMAGE") |
265 | get_filename_component(FREEIMLIB ${3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX}} NAME) |
266 | |
267 | if (SINGLE_GENERATOR) |
268 | install (FILES "${ABS_PATH}" DESTINATION "${INSTALL_DIR_LIB}" RENAME ${FREEIMLIB}.3) |
269 | else() |
270 | install (FILES "${ABS_PATH}" |
271 | CONFIGURATIONS Release |
272 | DESTINATION "${INSTALL_DIR_LIB}" |
273 | RENAME ${FREEIMLIB}.3) |
274 | install (FILES "${ABS_PATH}" |
275 | CONFIGURATIONS RelWithDebInfo |
276 | DESTINATION "${INSTALL_DIR_LIB}i" |
277 | RENAME ${FREEIMLIB}.3) |
278 | install (FILES "${ABS_PATH}" |
279 | CONFIGURATIONS Debug |
280 | DESTINATION "${INSTALL_DIR_LIB}d" |
281 | RENAME ${FREEIMLIB}.3) |
282 | endif() |
283 | endif() |
284 | |
096ef695 |
285 | endif() |
3321f684 |
286 | else() |
4fecc365 |
287 | # the library directory for using by the executable |
16ed73be |
288 | foreach (LIBRARY_NAME ${${LIBRARY_CSF_NAME}}) |
289 | string (REPLACE "." "" LIBRARY_NAME_SUFFIX "${LIBRARY_NAME}") |
d51a0ff6 |
290 | if (WIN32) |
291 | set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}};${USED_3RDPARTY_${PRODUCT_NAME}_DIRS}") |
292 | else() |
293 | set (USED_3RDPARTY_${PRODUCT_NAME}_DIRS "${3RDPARTY_${PRODUCT_NAME}_LIBRARY_DIR_${LIBRARY_NAME_SUFFIX}}:${USED_3RDPARTY_${PRODUCT_NAME}_DIRS}") |
294 | endif() |
295 | endforeach() |
16ed73be |
296 | if (WIN32) |
297 | set (USED_3RDPARTY_${PRODUCT_NAME}_DIR ${3RDPARTY_${PRODUCT_NAME}_DLL_DIR_${LIBRARY_NAME_SUFFIX}}) |
298 | endif() |
3321f684 |
299 | endif() |
19286d7c |
300 | |
4fecc365 |
301 | mark_as_advanced (3RDPARTY_${PRODUCT_NAME}_LIBRARY_${LIBRARY_NAME_SUFFIX} 3RDPARTY_${PRODUCT_NAME}_DLL_${LIBRARY_NAME_SUFFIX}) |
0553a8ea |
302 | # endif() |
4fecc365 |
303 | endforeach() |
19286d7c |
304 | endmacro() |
82f443b6 |
305 | |
306 | macro (COMPLIANCE_PRODUCT_CONSISTENCY LIBNAME) |
307 | if (3RDPARTY_${LIBNAME}_DIR AND EXISTS "${3RDPARTY_${LIBNAME}_DIR}") |
308 | # include dir |
309 | set (DOES_PATH_CONTAIN FALSE) |
310 | if (3RDPARTY_${LIBNAME}_INCLUDE_DIR AND EXISTS "${3RDPARTY_${LIBNAME}_INCLUDE_DIR}") |
311 | string (REGEX MATCH "${3RDPARTY_${LIBNAME}_DIR}" DOES_PATH_CONTAIN "${3RDPARTY_${LIBNAME}_INCLUDE_DIR}") |
312 | endif() |
313 | if (NOT DOES_PATH_CONTAIN) |
314 | set (3RDPARTY_${LIBNAME}_INCLUDE_DIR "" CACHE FILEPATH "The directory containing headers of ${LIBNAME}" FORCE) |
315 | endif() |
316 | |
3321f684 |
317 | if (BUILD_SHARED_LIBS) |
318 | # library dir |
82f443b6 |
319 | set (DOES_PATH_CONTAIN FALSE) |
3321f684 |
320 | if (3RDPARTY_${LIBNAME}_LIBRARY_DIR AND EXISTS "${3RDPARTY_${LIBNAME}_LIBRARY_DIR}") |
321 | string (REGEX MATCH "${3RDPARTY_${LIBNAME}_DIR}" DOES_PATH_CONTAIN "${3RDPARTY_${LIBNAME}_LIBRARY_DIR}") |
82f443b6 |
322 | endif() |
323 | if (NOT DOES_PATH_CONTAIN) |
3321f684 |
324 | set (3RDPARTY_${LIBNAME}_LIBRARY_DIR "" CACHE FILEPATH "The directory containing ${LIBNAME} library" FORCE) |
82f443b6 |
325 | endif() |
82f443b6 |
326 | |
3321f684 |
327 | # shared library dir |
328 | if (WIN32) |
329 | set (DOES_PATH_CONTAIN FALSE) |
330 | if (3RDPARTY_${LIBNAME}_DLL_DIR AND EXISTS "${3RDPARTY_${LIBNAME}_DLL_DIR}") |
331 | string (REGEX MATCH "${3RDPARTY_${LIBNAME}_DIR}" DOES_PATH_CONTAIN "${3RDPARTY_${LIBNAME}_DLL_DIR}") |
332 | endif() |
333 | if (NOT DOES_PATH_CONTAIN) |
334 | set (3RDPARTY_${LIBNAME}_DLL_DIR "" CACHE FILEPATH "The directory containing ${LIBNAME} shared library" FORCE) |
335 | endif() |
336 | endif() |
82f443b6 |
337 | endif() |
338 | endif() |
82f443b6 |
339 | |
3321f684 |
340 | if (BUILD_SHARED_LIBS) |
341 | # check library |
82f443b6 |
342 | set (DOES_PATH_CONTAIN FALSE) |
3321f684 |
343 | if (3RDPARTY_${LIBNAME}_LIBRARY_DIR AND EXISTS "${3RDPARTY_${LIBNAME}_LIBRARY_DIR}") |
344 | if (3RDPARTY_${LIBNAME}_LIBRARY AND EXISTS "${3RDPARTY_${LIBNAME}_LIBRARY}") |
345 | string (REGEX MATCH "${3RDPARTY_${LIBNAME}_LIBRARY_DIR}" DOES_PATH_CONTAIN "${3RDPARTY_${LIBNAME}_LIBRARY}") |
82f443b6 |
346 | endif() |
347 | endif() |
348 | if (NOT DOES_PATH_CONTAIN) |
3321f684 |
349 | set (3RDPARTY_${LIBNAME}_LIBRARY "" CACHE FILEPATH "${LIBNAME} library" FORCE) |
350 | endif() |
351 | |
352 | # check shared library |
353 | if (WIN32) |
354 | set (DOES_PATH_CONTAIN FALSE) |
355 | if (3RDPARTY_${LIBNAME}_DLL_DIR AND EXISTS "${3RDPARTY_${LIBNAME}_DLL_DIR}") |
356 | if (3RDPARTY_${LIBNAME}_DLL AND EXISTS "${3RDPARTY_${LIBNAME}_DLL}") |
357 | string (REGEX MATCH "${3RDPARTY_${LIBNAME}_DLL_DIR}" DOES_PATH_CONTAIN "${3RDPARTY_${LIBNAME}_DLL}") |
358 | endif() |
359 | endif() |
360 | if (NOT DOES_PATH_CONTAIN) |
361 | set (3RDPARTY_${LIBNAME}_DLL "" CACHE FILEPATH "${LIBNAME} shared library" FORCE) |
362 | endif() |
82f443b6 |
363 | endif() |
364 | endif() |
365 | endmacro() |