From 0cc2920862f49cd9911b77df2db99ff3e7a39ad5 Mon Sep 17 00:00:00 2001 From: wmayer Date: Sat, 10 Aug 2019 14:44:26 +0200 Subject: [PATCH] remove /EHs or /EHsc option only for release builds, add /bigobj to release builds --- CMakeLists.txt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d9fa4836f..ded1f75a3e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1209,7 +1209,7 @@ endif(CMAKE_SIZEOF_VOID_P EQUAL 8) if(MSVC) # set default compiler settings - set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zm150") + set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zm150 /bigobj") set (CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DFC_DEBUG /Zm150 /bigobj") # set default libs set (CMAKE_C_STANDARD_LIBRARIES "kernel32.lib user32.lib gdi32.lib winspool.lib SHFolder.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib winmm.lib comsupp.lib Ws2_32.lib dbghelp.lib ") @@ -1224,9 +1224,11 @@ if(MSVC) endif(FREECAD_RELEASE_PDB) if(FREECAD_RELEASE_SEH) # remove /EHsc or /EHs flags because they are incompatible with /EHa - string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - string(REPLACE "/EHs" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) - set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /EHa") + if (${CMAKE_BUILD_TYPE} MATCHES "Release") + string(REPLACE "/EHsc" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + string(REPLACE "/EHs" "" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS}) + set (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /EHa") + endif() endif(FREECAD_RELEASE_SEH) option(FREECAD_USE_MP_COMPILE_FLAG "Add /MP flag to the compiler definitions. Speeds up the compile on multi processor machines" OFF)