aboutsummaryrefslogtreecommitdiff
path: root/cmake/compiler
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/compiler')
-rw-r--r--cmake/compiler/msvc/settings.cmake34
1 files changed, 21 insertions, 13 deletions
diff --git a/cmake/compiler/msvc/settings.cmake b/cmake/compiler/msvc/settings.cmake
index 18ab8328fbb..2611cdc65e1 100644
--- a/cmake/compiler/msvc/settings.cmake
+++ b/cmake/compiler/msvc/settings.cmake
@@ -65,17 +65,23 @@ if("${CMAKE_MAKE_PROGRAM}" MATCHES "MSBuild")
target_compile_definitions(trinity-compile-option-interface
INTERFACE
-D_BUILD_DIRECTIVE="$(ConfigurationName)")
+
+ # multithreaded compiling on VS
+ target_compile_options(trinity-compile-option-interface
+ INTERFACE
+ /MP)
else()
# while all make-like generators do (nmake, ninja)
target_compile_definitions(trinity-compile-option-interface
INTERFACE
-D_BUILD_DIRECTIVE="$<CONFIG>")
-endif()
-# multithreaded compiling on VS
-target_compile_options(trinity-compile-option-interface
- INTERFACE
- /MP)
+ # Forces writes to the PDB file to be serialized through mspdbsrv.exe (/FS)
+ # Enable faster PDB generation in parallel builds by minimizing RPC calls to mspdbsrv.exe (/Zf)
+ target_compile_options(trinity-compile-option-interface
+ INTERFACE
+ $<$<CONFIG:Debug,RelWithDebInfo>:/FS /Zf>)
+endif()
if((PLATFORM EQUAL 64) OR (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.23026.0) OR BUILD_SHARED_LIBS)
# Enable extended object support
@@ -86,14 +92,16 @@ if((PLATFORM EQUAL 64) OR (NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS 19.0.2302
message(STATUS "MSVC: Enabled increased number of sections in object files")
endif()
-# /Zc:throwingNew.
-# When you specify Zc:throwingNew on the command line, it instructs the compiler to assume
-# that the program will eventually be linked with a conforming operator new implementation,
-# and can omit all of these extra null checks from your program.
-# http://blogs.msdn.com/b/vcblog/archive/2015/08/06/new-in-vs-2015-zc-throwingnew.aspx
-target_compile_options(trinity-compile-option-interface
- INTERFACE
- /Zc:throwingNew)
+if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
+ # /Zc:throwingNew.
+ # When you specify Zc:throwingNew on the command line, it instructs the compiler to assume
+ # that the program will eventually be linked with a conforming operator new implementation,
+ # and can omit all of these extra null checks from your program.
+ # http://blogs.msdn.com/b/vcblog/archive/2015/08/06/new-in-vs-2015-zc-throwingnew.aspx
+ target_compile_options(trinity-compile-option-interface
+ INTERFACE
+ /Zc:throwingNew)
+endif()
# Define _CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES - eliminates the warning by changing the strcpy call to strcpy_s, which prevents buffer overruns
target_compile_definitions(trinity-compile-option-interface