diff options
author | Shauren <shauren.trinity@gmail.com> | 2024-06-01 11:45:39 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2024-06-01 11:45:39 +0200 |
commit | 1083e89da3f8182d377a48d0c46cf2308795f974 (patch) | |
tree | e7eaddf4845d043550ef365de64a611c60b7dc1b /cmake/compiler/msvc | |
parent | 19232ed2b662e8404dd0fdb672ab940e711ac4bc (diff) |
Build: Remove unneccessary /MP compile option when using ninja
Diffstat (limited to 'cmake/compiler/msvc')
-rw-r--r-- | cmake/compiler/msvc/settings.cmake | 34 |
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 |