0031790: Configuration, CMake - add optional OpenVR dependency
[occt.git] / adm / cmake / 3rdparty_macro.cmake
CommitLineData
e713baee 1##
2
3if(3RDPARTY_MACRO_ALREADY_INCLUDED)
4 return()
5endif()
6set(3RDPARTY_MACRO_ALREADY_INCLUDED 1)
9f33b387 7
9f33b387 8
4fecc365 9macro (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 304endmacro()
82f443b6 305
306macro (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()
365endmacro()