diff --git a/win/patches/V7_7_1.patch b/win/patches/V7_7_1.patch new file mode 100644 index 0000000000..9bf684452d --- /dev/null +++ b/win/patches/V7_7_1.patch @@ -0,0 +1,85 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index fd17283f77..7a6cef1ac2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -431,6 +431,9 @@ if (WIN32) + else() + set (USE_D3D OFF) + endif() ++ # IfcOpenShell begin ++ add_definitions(-DHAVE_NO_DLL) ++ # IfcOpenShell end + + # Enable/Disable the floating point exceptions (FPE) during runtime. + if (NOT BUILD_ENABLE_FPE_SIGNAL_HANDLER) +@@ -826,6 +829,8 @@ if (EMSCRIPTEN) + list (REMOVE_ITEM BUILD_TOOLKITS ExpToCasExe) + endif() + ++list (REMOVE_ITEM BUILD_TOOLKITS ExpToCasExe) ++ + # bison + if (BUILD_YACCLEX) + OCCT_INCLUDE_CMAKE_FILE ("adm/cmake/bison") +diff --git a/adm/cmake/occt_defs_flags.cmake b/adm/cmake/occt_defs_flags.cmake +index 33b50e8ce7..6b0628235e 100644 +--- a/adm/cmake/occt_defs_flags.cmake ++++ b/adm/cmake/occt_defs_flags.cmake +@@ -153,7 +153,23 @@ elseif (DEFINED CMAKE_COMPILER_IS_GNUCXX) + set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -s") + endif() + +-if (BUILD_RELEASE_DISABLE_EXCEPTIONS) +- set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNo_Exception") +- set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNo_Exception") +-endif() ++# IfcOpenShell begin ++# https://salsa.debian.org/science-team/opencascade/blob/739e7e9c4fbe575165eb3ff0251774bfad27139e/debian/patches/enable-exception-handling.patch ++# if (BUILD_RELEASE_DISABLE_EXCEPTIONS) ++# set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNo_Exception") ++# set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNo_Exception") ++# endif() ++ ++if (MSVC AND MSVC_STATIC_RUNTIME) ++ foreach(flag CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_MINSIZEREL ++ CMAKE_CXX_FLAGS_RELWITHDEBINFO CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE ++ CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) ++ if (${flag} MATCHES "/MD") ++ string(REGEX REPLACE "/MD" "/MT" ${flag} "${${flag}}") ++ endif() ++ if (${flag} MATCHES "/MDd") ++ string(REGEX REPLACE "/MDd" "/MTd" ${flag} "${${flag}}") ++ endif() ++ endforeach() ++endif() ++# IfcOpenShell end +diff --git a/adm/cmake/occt_toolkit.cmake b/adm/cmake/occt_toolkit.cmake +index 132890bc84..7e74b1f489 100644 +--- a/adm/cmake/occt_toolkit.cmake ++++ b/adm/cmake/occt_toolkit.cmake +@@ -284,9 +284,22 @@ else() + else() + set (aReleasePdbConf) + endif() +- install (FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.pdb +- CONFIGURATIONS Debug ${aReleasePdbConf} RelWithDebInfo +- DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}") ++ # IfcOpenShell begin ++ if (BUILD_SHARED_LIBS) ++ install (FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.pdb ++ CONFIGURATIONS Debug ${aReleasePdbConf} RelWithDebInfo ++ DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}") ++ else() ++ set_target_properties (${PROJECT_NAME} PROPERTIES ++ COMPILE_PDB_NAME ${PROJECT_NAME} ++ COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/pdb/ ++ ) ++ ++ install (FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/pdb/\${CMAKE_INSTALL_CONFIG_NAME}/${PROJECT_NAME}.pdb ++ CONFIGURATIONS Debug ${aReleasePdbConf} RelWithDebInfo ++ DESTINATION "${INSTALL_DIR_LIB}\${OCCT_INSTALL_BIN_LETTER}") ++ endif() ++ # IfcOpenShell end + endif() + + if (BUILD_SHARED_LIBS AND NOT "${BUILD_SHARED_LIBRARY_NAME_POSTFIX}" STREQUAL "")