mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-19 13:40:49 +03:00
Compare commits
1 Commits
V7_8_1
...
CR29039_71
Author | SHA1 | Date | |
---|---|---|---|
|
786b094879 |
@@ -52,6 +52,14 @@ set_property (GLOBAL PROPERTY OCC_VERSION_MAINTENANCE ${OCC_VERSION_MAINTENANCE}
|
||||
|
||||
set (INSTALL_TEST_CASES OFF CACHE BOOL "${INSTALL_TEST_CASES_DESCR}")
|
||||
|
||||
if (MSVC)
|
||||
# overwrite type of used RTL libraries
|
||||
if (NOT BUILD_CHANGE_USED_RTL_TYPE)
|
||||
set (BUILD_CHANGE_USED_RTL_TYPE "default" CACHE STRING "${BUILD_CHANGE_USED_RTL_TYPE_DESCR}" FORCE)
|
||||
set_property(CACHE BUILD_CHANGE_USED_RTL_TYPE PROPERTY STRINGS "default" "static/release RTL" "static/debug RTL" "dynamic/release RTL" "dynamic/debug RTL")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Regeneration of OCCT resource files
|
||||
set (BUILD_RESOURCES OFF CACHE BOOL "${BUILD_RESOURCES_DESCR}")
|
||||
|
||||
@@ -201,6 +209,26 @@ if (NOT DEFINED INSTALL_DIR_LIB)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (MSVC)
|
||||
if (NOT DEFINED BUILD_CHANGE_USED_RTL_TYPE_PREV)
|
||||
set (BUILD_CHANGE_USED_RTL_TYPE_PREV "${BUILD_CHANGE_USED_RTL_TYPE}" CACHE INTERNAL "" FORCE)
|
||||
elseif (NOT "${BUILD_CHANGE_USED_RTL_TYPE_PREV}" STREQUAL "${BUILD_CHANGE_USED_RTL_TYPE}")
|
||||
if ("${BUILD_CHANGE_USED_RTL_TYPE}" STREQUAL "static/release RTL")
|
||||
set (INSTALL_DIR_BIN "${OS_WITH_BIT}/${COMPILER}/release_rtl/static_rtl/bin" CACHE PATH "${INSTALL_DIR_BIN_DESCR}" FORCE)
|
||||
set (INSTALL_DIR_LIB "${OS_WITH_BIT}/${COMPILER}/release_rtl/static_rtl/lib" CACHE PATH "${INSTALL_DIR_LIB_DESCR}" FORCE)
|
||||
elseif ("${BUILD_CHANGE_USED_RTL_TYPE}" STREQUAL "static/debug RTL")
|
||||
set (INSTALL_DIR_BIN "${OS_WITH_BIT}/${COMPILER}/debug_rtl/static_rtl/bin" CACHE PATH "${INSTALL_DIR_BIN_DESCR}" FORCE)
|
||||
set (INSTALL_DIR_LIB "${OS_WITH_BIT}/${COMPILER}/debug_rtl/static_rtl/lib" CACHE PATH "${INSTALL_DIR_LIB_DESCR}" FORCE)
|
||||
elseif ("${BUILD_CHANGE_USED_RTL_TYPE}" STREQUAL "dynamic/release RTL")
|
||||
set (INSTALL_DIR_BIN "${OS_WITH_BIT}/${COMPILER}/release_rtl/dynamic_rtl/bin" CACHE PATH "${INSTALL_DIR_BIN_DESCR}" FORCE)
|
||||
set (INSTALL_DIR_LIB "${OS_WITH_BIT}/${COMPILER}/release_rtl/dynamic_rtl/lib" CACHE PATH "${INSTALL_DIR_LIB_DESCR}" FORCE)
|
||||
elseif ("${BUILD_CHANGE_USED_RTL_TYPE}" STREQUAL "dynamic/debug RTL")
|
||||
set (INSTALL_DIR_BIN "${OS_WITH_BIT}/${COMPILER}/debug_rtl/dynamic_rtl/bin" CACHE PATH "${INSTALL_DIR_BIN_DESCR}" FORCE)
|
||||
set (INSTALL_DIR_LIB "${OS_WITH_BIT}/${COMPILER}/debug_rtl/dynamic_rtl/lib" CACHE PATH "${INSTALL_DIR_LIB_DESCR}" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# OCCT headers: <prefix>/inc for windows,
|
||||
# <prefix>/include/opencascade-7.0.0 for unix
|
||||
if (NOT DEFINED INSTALL_DIR_INCLUDE)
|
||||
|
@@ -134,3 +134,76 @@ endif()
|
||||
|
||||
set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNo_Exception")
|
||||
set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNo_Exception")
|
||||
|
||||
# unset unused configurations variables and update CACHE variables
|
||||
get_cmake_property(ALL_CACHE_VARIABLES CACHE_VARIABLES)
|
||||
string (REGEX MATCHALL "(^|;)CMAKE_[A-Z_]+_FLAGS[^;]*" CACHE_VARIABLES_FLAGS "${ALL_CACHE_VARIABLES}")
|
||||
foreach (CACHE_FLAG ${CACHE_VARIABLES_FLAGS})
|
||||
if (NOT "x${${CACHE_FLAG}}" STREQUAL "x")
|
||||
OCCT_REMOVE_DUPLICATES_SUBSTRING(${${CACHE_FLAG}} ${CACHE_FLAG})
|
||||
endif()
|
||||
string (REGEX MATCH "CMAKE_[A-Z_]+_FLAGS_([^;]+)" CONFIGURATION_NAME "${CACHE_FLAG}")
|
||||
string (TOLOWER "${CMAKE_MATCH_1}" CMAKE_MATCH_1)
|
||||
set (ISFOUND OFF)
|
||||
if (NOT "x${CMAKE_MATCH_1}" STREQUAL "x")
|
||||
foreach (conf ${CMAKE_CONFIGURATION_TYPES})
|
||||
string (TOLOWER "${conf}" conf)
|
||||
if ( "${conf}" STREQUAL "${CMAKE_MATCH_1}" )
|
||||
set (ISFOUND ON)
|
||||
endif()
|
||||
endforeach()
|
||||
if (NOT ISFOUND AND MSVC)
|
||||
unset("${CACHE_FLAG}" CACHE)
|
||||
else()
|
||||
set (${CACHE_FLAG} "${${CACHE_FLAG}}" CACHE STRING "" FORCE)
|
||||
endif()
|
||||
else()
|
||||
set (${CACHE_FLAG} "${${CACHE_FLAG}}" CACHE STRING "" FORCE)
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
if (MSVC)
|
||||
# Update CRT defines if BUILD_CHANGE_USED_RTL_TYPE variable was changed
|
||||
if (NOT "${BUILD_CHANGE_USED_RTL_TYPE_PREV}" STREQUAL "${BUILD_CHANGE_USED_RTL_TYPE}")
|
||||
set (BUILD_CHANGE_USED_RTL_TYPE_PREV "${BUILD_CHANGE_USED_RTL_TYPE}" CACHE INTERNAL "" FORCE)
|
||||
|
||||
get_cmake_property(ALL_CACHE_VARIABLES CACHE_VARIABLES)
|
||||
string (REGEX MATCHALL "(^|;)CMAKE_C[X]*_FLAGS[^;]*" CACHE_VARIABLES_C_FLAGS "${ALL_CACHE_VARIABLES}")
|
||||
|
||||
foreach(CMAKE_C_FLAG ${CACHE_VARIABLES_C_FLAGS})
|
||||
OCCT_REMOVE_CRL_DEFINES (${CMAKE_C_FLAG})
|
||||
endforeach()
|
||||
|
||||
if ("${BUILD_CHANGE_USED_RTL_TYPE}" STREQUAL "static/release RTL")
|
||||
message (STATUS "Info. Release Static RTLs are used.")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MT")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MT")
|
||||
elseif ("${BUILD_CHANGE_USED_RTL_TYPE}" STREQUAL "static/debug RTL")
|
||||
message (STATUS "Info. Debug Static RTLs are used.")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MTd")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MTd")
|
||||
elseif ("${BUILD_CHANGE_USED_RTL_TYPE}" STREQUAL "dynamic/release RTL")
|
||||
message (STATUS "Info. Release Dynamic RTLs are used.")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MD")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MD")
|
||||
elseif ("${BUILD_CHANGE_USED_RTL_TYPE}" STREQUAL "dynamic/debug RTL")
|
||||
message (STATUS "Info. Debug Dynamic RTLs are used.")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MDd")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MDd")
|
||||
else()
|
||||
string (REGEX MATCHALL "(^|;)CMAKE_C[X]*_FLAGS_[^;]+" CACHE_VARIABLES_C_FLAGS_WITH_CONF "${ALL_CACHE_VARIABLES}")
|
||||
foreach(CMAKE_C_FLAG ${CACHE_VARIABLES_C_FLAGS_WITH_CONF})
|
||||
string (REGEX MATCH "CMAKE_C[X]*_FLAGS_([^;]+)" CONFIGURATION_NAME "${CMAKE_C_FLAG}")
|
||||
if ( "x${CMAKE_MATCH_1}" STREQUAL "xDEBUG")
|
||||
set (${CMAKE_C_FLAG} "${${CMAKE_C_FLAG}} /MDd")
|
||||
else()
|
||||
set (${CMAKE_C_FLAG} "${${CMAKE_C_FLAG}} /MD")
|
||||
endif()
|
||||
endforeach()
|
||||
endif()
|
||||
|
||||
foreach(CMAKE_C_FLAG ${CACHE_VARIABLES_C_FLAGS})
|
||||
set (${CMAKE_C_FLAG} "${${CMAKE_C_FLAG}}" CACHE STRING "" FORCE)
|
||||
endforeach()
|
||||
endif()
|
||||
endif()
|
||||
|
@@ -602,3 +602,17 @@ macro (OCCT_CREATE_SYMLINK_TO_FILE LIBRARY_NAME LINK_NAME)
|
||||
")
|
||||
endif()
|
||||
endmacro()
|
||||
|
||||
macro (OCCT_REMOVE_CRL_DEFINES VARIABLE_NAME)
|
||||
set( CompilerFlags /MDd /MTd /MD /MT )
|
||||
foreach(CompilerFlag ${CompilerFlags})
|
||||
string(REPLACE "${CompilerFlag}" "" ${VARIABLE_NAME} "${${VARIABLE_NAME}}")
|
||||
endforeach()
|
||||
endmacro()
|
||||
|
||||
function(OCCT_REMOVE_DUPLICATES_SUBSTRING INPUT_STRING OUTPUT_STRING)
|
||||
separate_arguments(INPUT_STRING)
|
||||
list(REMOVE_DUPLICATES INPUT_STRING)
|
||||
string(REPLACE ";" " " INPUT_STRING "${INPUT_STRING}")
|
||||
set(${OUTPUT_STRING} "${INPUT_STRING}" PARENT_SCOPE)
|
||||
endfunction()
|
||||
|
@@ -122,6 +122,10 @@ leads to automatic search of Doxygen binaries. Building of it will be call Doxyg
|
||||
to generate the documentation in HTML format. The documentation will be available in the
|
||||
installation directory (overview.bat script) if INSTALL_DOC_Overview variable is checked")
|
||||
|
||||
set (BUILD_CHANGE_USED_RTL_TYPE_DESCR
|
||||
"Indicates whether a multithreaded module is a DLL or static and specifies retail or debug versions of the run-time library.
|
||||
In case of default value define /MDd will be used for Debug configuration and define /MD will be used for other configurations.")
|
||||
|
||||
set (3RDPARTY_DIR_DESCR
|
||||
"The root directory where all required third-party products will be searched. If a
|
||||
third-party product have been found - corresponding CMake variables will be specified
|
||||
|
Reference in New Issue
Block a user