mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-14 13:30:48 +03:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
a66a9c6e32 | ||
|
784ca29bd3 | ||
|
934229ac78 | ||
|
32f20fa201 |
@@ -1092,11 +1092,48 @@ foreach (OCCT_CONFIGURATION ${CMAKE_CONFIGURATION_TYPES})
|
|||||||
endforeach()
|
endforeach()
|
||||||
set (SET_OpenCASCADE_CMAKE_C_FLAGS "${CMAKE_C_FLAGS_${OCCT_CONFIGURATION_UPPER}}")
|
set (SET_OpenCASCADE_CMAKE_C_FLAGS "${CMAKE_C_FLAGS_${OCCT_CONFIGURATION_UPPER}}")
|
||||||
set (SET_OpenCASCADE_CMAKE_CXX_FLAGS "${CMAKE_CXX_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}CREATE_IMPORTED_TARGET (${CMAKE_MATCH_1} ${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}_DLL}\" TRUE)\n")
|
||||||
|
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 (NOT WIN32)
|
||||||
|
set (IS_DYNAMIC_LIBRARY "TRUE")
|
||||||
|
else ()
|
||||||
|
set (IS_DYNAMIC_LIBRARY "FALSE")
|
||||||
|
endif()
|
||||||
|
if (LIB_FOUND)
|
||||||
|
set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}CREATE_IMPORTED_TARGET (${CMAKE_MATCH_1} ${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}_LIBRARY}\" ${IS_DYNAMIC_LIBRARY})\n")
|
||||||
|
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_([^_]*_DLL_DIR$)" DLLDIR_FOUND ${ALL_VAR})
|
||||||
|
if (DLLDIR_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_([^_]*_LIBRARY_DIR$)" LIBDIR_FOUND ${ALL_VAR})
|
||||||
|
if (LIBDIR_FOUND)
|
||||||
|
set (SET_OpenCASCADE_3RDPARTY "${SET_OpenCASCADE_3RDPARTY}set (3RDPARTY_${CMAKE_MATCH_1}_${OCCT_CONFIGURATION_UPPER} \"${3RDPARTY_${CMAKE_MATCH_1}}\")\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/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()
|
endforeach()
|
||||||
# install OpenCASCADE config file with compile definitions and C/C++ flags ONLY for current configuration
|
# 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 "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 (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})
|
foreach (OCCT_MODULE ${OCCT_MODULES})
|
||||||
if (BUILD_MODULE_${OCCT_MODULE})
|
if (BUILD_MODULE_${OCCT_MODULE})
|
||||||
|
40
adm/templates/OpenCASCADE3rdparty.cmake.in
Normal file
40
adm/templates/OpenCASCADE3rdparty.cmake.in
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
#-----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# OpenCASCADE3rdparty.cmake - OpenCASCADE CMake file
|
||||||
|
# with paths to used 3rdparty libraries and dlls
|
||||||
|
#
|
||||||
|
# This file is configured by OpenCASCADE.
|
||||||
|
#
|
||||||
|
|
||||||
|
macro (CREATE_IMPORTED_TARGET TARGET_NAME CONFIGURATION TARGET_LIBRARY_FILE_PATH IS_DYNAMIC_LIBRARY)
|
||||||
|
string (TOLOWER "${TARGET_NAME}" TARGET_NAME_tolower)
|
||||||
|
# Create imported target
|
||||||
|
if (NOT TARGET ${TARGET_NAME_tolower})
|
||||||
|
add_library(${TARGET_NAME_tolower} SHARED IMPORTED)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Append new configuration to the target
|
||||||
|
get_property (TARGET_IMPORTED_CONFIGURATIONS TARGET ${TARGET_NAME_tolower} PROPERTY IMPORTED_CONFIGURATIONS)
|
||||||
|
list (FIND TARGET_IMPORTED_CONFIGURATIONS ${CONFIGURATION} IS_ALREADY_ADDED)
|
||||||
|
if (${IS_ALREADY_ADDED} EQUAL -1)
|
||||||
|
set_property(TARGET ${TARGET_NAME_tolower} APPEND PROPERTY IMPORTED_CONFIGURATIONS ${CONFIGURATION})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if (${IS_DYNAMIC_LIBRARY})
|
||||||
|
# Add *.dll(Windows)/*.so(Linux)/*.dylib(MacOS) library to the target
|
||||||
|
if (NOT "${TARGET_LIBRARY_FILE_PATH}" STREQUAL "")
|
||||||
|
set_target_properties(${TARGET_NAME_tolower} PROPERTIES IMPORTED_LOCATION_${CONFIGURATION} "${TARGET_LIBRARY_FILE_PATH}")
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_${TARGET_NAME} "${TARGET_LIBRARY_FILE_PATH}" )
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
# Add library *.lib to the target for Windows platform
|
||||||
|
if (WIN32)
|
||||||
|
if (NOT "${TARGET_LIBRARY_FILE_PATH}" STREQUAL "")
|
||||||
|
set_target_properties(${TARGET_NAME_tolower} PROPERTIES IMPORTED_IMPLIB_${CONFIGURATION} "${TARGET_LIBRARY_FILE_PATH}")
|
||||||
|
list(APPEND _IMPORT_CHECK_FILES_FOR_${TARGET_NAME} "${TARGET_LIBRARY_FILE_PATH}")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
endmacro()
|
||||||
|
|
||||||
|
@SET_OpenCASCADE_3RDPARTY@
|
@@ -71,6 +71,12 @@ foreach(f ${CONFIG_FILES})
|
|||||||
include(${f})
|
include(${f})
|
||||||
endforeach()
|
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)
|
if (NOT OpenCASCADE_FIND_COMPONENTS)
|
||||||
set (OpenCASCADE_FIND_COMPONENTS ${OpenCASCADE_MODULES})
|
set (OpenCASCADE_FIND_COMPONENTS ${OpenCASCADE_MODULES})
|
||||||
endif ()
|
endif ()
|
||||||
|
Reference in New Issue
Block a user