1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

Compare commits

...

4 Commits

Author SHA1 Message Date
apn
a66a9c6e32 Modify TARGET_NAME 2018-10-01 11:14:42 +03:00
apn
784ca29bd3 Corrections for Linux platform 2018-10-01 11:14:41 +03:00
apn
934229ac78 Create imported target for each 3rd party product 2018-10-01 11:14:40 +03:00
apn
32f20fa201 0027560: Using OCCT third-party in products
Added generation OpenCASCADE3rdparty cmake file with paths to used third-party products.
2018-10-01 11:14:38 +03:00
3 changed files with 83 additions and 0 deletions

View File

@@ -1092,11 +1092,48 @@ 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}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/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})

View 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@

View 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 ()