mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0027560: Using OCCT third-party in products
Added generation OpenCASCADE3rdparty cmake file with paths to used third-party products.
This commit is contained in:
@@ -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})
|
||||
|
9
adm/templates/OpenCASCADE3rdparty.cmake.in
Normal file
9
adm/templates/OpenCASCADE3rdparty.cmake.in
Normal file
@@ -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@
|
@@ -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 ()
|
||||
|
Reference in New Issue
Block a user