Build: Remove unneccessary /MP compile option when using ninja

This commit is contained in:
Shauren
2024-06-01 11:45:39 +02:00
parent 19232ed2b6
commit 1083e89da3
2 changed files with 22 additions and 14 deletions

View File

@@ -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

View File

@@ -1,7 +1,7 @@
# output generic information about the core and buildtype chosen
message("")
message("* TrinityCore revision : ${rev_hash} ${rev_date} (${rev_branch} branch)")
if(UNIX)
if(NOT "${CMAKE_MAKE_PROGRAM}" MATCHES "MSBuild")
message("* TrinityCore buildtype : ${CMAKE_BUILD_TYPE}")
endif()
message("")