diff --git a/CMakeLists.txt b/CMakeLists.txt index feeaa9a84..f21a84f7c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -426,6 +426,9 @@ endforeach() if (NOT BUILD_SHARED_LIBS) list (REMOVE_ITEM BUILD_TOOLKITS DRAWEXE) message (STATUS "Info: DRAWEXE is not included due to ${BUILD_LIBRARY_TYPE} build library type") + # IfcOpenShell begin + add_definitions(-DHAVE_NO_DLL) + # IfcOpenShell end endif() # accumulate all used toolkits diff --git a/adm/cmake/occt_defs_flags.cmake b/adm/cmake/occt_defs_flags.cmake index b9389741c..cd4c46531 100644 --- a/adm/cmake/occt_defs_flags.cmake +++ b/adm/cmake/occt_defs_flags.cmake @@ -141,3 +141,18 @@ endif() set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -DNo_Exception") set (CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -DNo_Exception") + +# IfcOpenShell begin +if (MSVC) + 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 57c9269c2..476938ffb 100644 --- a/adm/cmake/occt_toolkit.cmake +++ b/adm/cmake/occt_toolkit.cmake @@ -151,11 +151,26 @@ if ("${PROJECT_NAME}" STREQUAL "DRAWEXE") else() add_library (${PROJECT_NAME} ${USED_SRCFILES} ${USED_INCFILES} ${USED_RCFILE}) - if (MSVC) - install (FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.pdb - CONFIGURATIONS Debug RelWithDebInfo - DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}") + # IfcOpenShell begin + if (BUILD_SHARED_LIBS) + if (MSVC) + install (FILES ${CMAKE_BINARY_DIR}/${OS_WITH_BIT}/${COMPILER}/bin\${OCCT_INSTALL_BIN_LETTER}/${PROJECT_NAME}.pdb + CONFIGURATIONS Debug RelWithDebInfo + DESTINATION "${INSTALL_DIR_BIN}\${OCCT_INSTALL_BIN_LETTER}") + endif() + else() + if (MSVC) + 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 RelWithDebInfo + DESTINATION "${INSTALL_DIR_LIB}\${OCCT_INSTALL_BIN_LETTER}") + endif() endif() + # IfcOpenShell end if (BUILD_SHARED_LIBS AND NOT "${BUILD_SHARED_LIBRARY_NAME_POSTFIX}" STREQUAL "") set (CMAKE_SHARED_LIBRARY_SUFFIX_DEFAULT ${CMAKE_SHARED_LIBRARY_SUFFIX}) diff --git a/src/HLRBRep/HLRBRep_InternalAlgo.cxx b/src/HLRBRep/HLRBRep_InternalAlgo.cxx index ca885ca04..c13cb06b8 100644 --- a/src/HLRBRep/HLRBRep_InternalAlgo.cxx +++ b/src/HLRBRep/HLRBRep_InternalAlgo.cxx @@ -165,7 +165,7 @@ void HLRBRep_InternalAlgo::Update () SB.Bounds(v1,v2,e1,e2,f1,f2); for (Standard_Integer e = e1; e <= e2; e++) { - HLRBRep_EdgeData ed = aEDataArray.ChangeValue(e); + HLRBRep_EdgeData& ed = aEDataArray.ChangeValue(e); HLRAlgo::DecodeMinMax(ed.MinMax(), TheMin, TheMax); if (FirstTime) { FirstTime = Standard_False; @@ -307,7 +307,7 @@ void HLRBRep_InternalAlgo::InitEdgeStatus () Standard_Integer nf = myDS->NbFaces(); for (Standard_Integer e = 1; e <= ne; e++) { - HLRBRep_EdgeData ed = aEDataArray.ChangeValue(e); + HLRBRep_EdgeData& ed = aEDataArray.ChangeValue(e); if (ed.Selected()) ed.Status().ShowAll(); } // for (Standard_Integer f = 1; f <= nf; f++) { @@ -368,7 +368,7 @@ void HLRBRep_InternalAlgo::Select () Standard_Integer nf = myDS->NbFaces(); for (Standard_Integer e = 1; e <= ne; e++) { - HLRBRep_EdgeData ed = aEDataArray.ChangeValue(e); + HLRBRep_EdgeData& ed = aEDataArray.ChangeValue(e); ed.Selected(Standard_True); }