]> OCCT Git - occt-copy.git/commitdiff
0027560: Using OCCT third-party in products
authorapn <apn@opencascade.com>
Wed, 8 Jun 2016 14:55:28 +0000 (17:55 +0300)
committerapn <apn@opencascade.com>
Mon, 1 Oct 2018 08:14:38 +0000 (11:14 +0300)
Added generation OpenCASCADE3rdparty cmake file with paths to used third-party products.

CMakeLists.txt
adm/templates/OpenCASCADE3rdparty.cmake.in [new file with mode: 0644]
adm/templates/OpenCASCADEConfig.cmake.in

index b6029e1f9c59b7fa21da7ac054c4c2e16c6e8524..083f30101236e23ac2f72ac34146cd4845afac07 100644 (file)
@@ -1092,11 +1092,41 @@ foreach (OCCT_CONFIGURATION ${CMAKE_CONFIGURATION_TYPES})
   endforeach()
   set (SET_OpenCASCADE_CMAKE_C_FLAGS "${CMAKE_C_FLAGS_${OCCT_CONFIGURATION_UPPER}}")
   set (SET_OpenCASCADE_CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS_${OCCT_CONFIGURATION_UPPER}}")
+  get_cmake_property(ALL_VARS VARIABLES)
+  foreach (ALL_VAR ${ALL_VARS})
+    string (REGEX MATCH "^3RDPARTY_([^_]*)_DLL$" DLL_FOUND ${ALL_VAR})
+    if (DLL_FOUND)
+      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_${CMAKE_MATCH_1}_DLL_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}_DLL}\")\n")
+    endif()
+    string (REGEX MATCH "^3RDPARTY_([^_]*)_LIBRARY$" LIB_FOUND ${ALL_VAR})
+    if (LIB_FOUND)
+      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_${CMAKE_MATCH_1}_LIBRARY_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}_LIBRARY}\")\n")
+    endif()
+    string (REGEX MATCH "^3RDPARTY_([^_]*_INCLUDE_DIR$)" INC_FOUND ${ALL_VAR})
+    if (INC_FOUND)
+      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_${CMAKE_MATCH_1}_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}}\")\n")
+    endif()
+    string (REGEX MATCH "^3RDPARTY_([^_]*_INCLUDE_DIR[^S]+)" INC_FOUND2 ${ALL_VAR})
+    if (INC_FOUND2)
+      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_${CMAKE_MATCH_1}_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}}\")\n")
+    endif()
+    string (REGEX MATCH "^3RDPARTY_VTK_DLL_DIR$" VTK_DLLDIR_FOUND ${ALL_VAR})
+    if (VTK_DLLDIR_FOUND)
+      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_VTK_DLL_DIR_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_VTK_DLL_DIR}\")\n")
+    endif()
+    string (REGEX MATCH "^3RDPARTY_VTK_LIBRARY_DIR$" VTK_LIBDIR_FOUND ${ALL_VAR})
+    if (${VTK_LIBDIR_FOUND})
+      set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_VTK_LIBRARY_DIR_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_VTK_LIBRARY_DIR}\")\n")
+    endif()
+  endforeach()
   configure_file("${CMAKE_SOURCE_DIR}/adm/templates/OpenCASCADECompileDefinitionsAndFlags.cmake.in" "OpenCASCADECompileDefinitionsAndFlags-${OCCT_CONFIGURATION_LOWER}.cmake" @ONLY)
+  configure_file("${CMAKE_SOURCE_DIR}/adm/templates/OpenCASCADE3rdparty.cmake.in" "OpenCASCADE3rdparty-${OCCT_CONFIGURATION_LOWER}.cmake" @ONLY)
 endforeach()
 # install OpenCASCADE config file with compile definitions and C/C++ flags ONLY for current configuration
 install (CODE "string (TOLOWER \"\${CMAKE_INSTALL_CONFIG_NAME}\" CMAKE_INSTALL_CONFIG_NAME_LOWER)")
 install (CODE "configure_file(\"${CMAKE_BINARY_DIR}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADECompileDefinitionsAndFlags-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" COPYONLY)")
+# install OpenCASCADE config file with 3rdparty paths
+install (CODE "configure_file(\"${CMAKE_BINARY_DIR}/OpenCASCADE3rdparty-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" \"${INSTALL_DIR}/${INSTALL_DIR_CMAKE}/OpenCASCADE3rdparty-\${CMAKE_INSTALL_CONFIG_NAME_LOWER}.cmake\" COPYONLY)")
 
 foreach (OCCT_MODULE ${OCCT_MODULES})
   if (BUILD_MODULE_${OCCT_MODULE})
diff --git a/adm/templates/OpenCASCADE3rdparty.cmake.in b/adm/templates/OpenCASCADE3rdparty.cmake.in
new file mode 100644 (file)
index 0000000..809f095
--- /dev/null
@@ -0,0 +1,9 @@
+#-----------------------------------------------------------------------------
+#
+# OpenCASCADE3rdparty.cmake - OpenCASCADE CMake file 
+# with paths to used 3rdparty libraries and dlls
+#
+# This file is configured by OpenCASCADE.
+#
+
+@SET_OpenCASCADE_3RDPARTY@
\ No newline at end of file
index 4937103b9c34e590797dcfe7757478d5be7ca1b0..5a7d419857795e170d6413bfb29677d694e21291 100644 (file)
@@ -71,6 +71,12 @@ foreach(f ${CONFIG_FILES})
   include(${f})
 endforeach()
 
+# Import OpenCASCADE paths to used 3rdparty libraries and dlls for each installed configuration.
+file(GLOB CONFIG_FILES "${CMAKE_CURRENT_LIST_DIR}/OpenCASCADE3rdparty-*.cmake")
+foreach(f ${CONFIG_FILES})
+  include(${f})
+endforeach()
+
 if (NOT OpenCASCADE_FIND_COMPONENTS)
   set (OpenCASCADE_FIND_COMPONENTS ${OpenCASCADE_MODULES})
 endif ()