1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-23 18:17:46 +00:00
sapphire/cmake/compiler.cmake

55 lines
1.7 KiB
CMake
Raw Normal View History

2018-12-31 17:30:45 +01:00
if( UNIX )
# override policy CMP0069 to NEW
set( CMAKE_POLICY_DEFAULT_CMP0069 NEW )
cmake_policy( SET CMP0069 NEW )
2018-12-31 17:30:45 +01:00
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -fPIC" )
set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -O3" )
# enable parallel builds for GCC/Clang with Make
if(${CMAKE_GENERATOR} MATCHES "Make")
set( CMAKE_MAKE_PROGRAM "${CMAKE_MAKE_PROGRAM} -j$(nproc)" )
endif()
# enable Link Time Optimization (LTO)
include( CheckIPOSupported )
check_ipo_supported( RESULT result )
if( result )
set( CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE )
else()
message( WARNING "IPO is not supported on this platform." )
endif()
else()
2018-12-31 17:30:45 +01:00
add_definitions( -D_WIN32_WINNT=0x601 )
add_definitions( -D_CRT_SECURE_NO_WARNINGS )
add_definitions( -DNOMINMAX )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHc" )
message( STATUS "Enabling Build with Multiple Processes.." )
2018-12-31 17:30:45 +01:00
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj" )
2019-01-06 23:34:19 +01:00
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /wd4834" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /std:c++17" )
2019-01-06 23:34:19 +01:00
2018-12-31 17:30:45 +01:00
set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )
set( CMAKE_CXX_EXTENSIONS ON )
if( CMAKE_BUILD_TYPE STREQUAL "Debug" )
2017-10-22 10:43:33 -07:00
# disabling SAFESEH
2018-12-31 17:30:45 +01:00
message( STATUS "Disabling Safe Exception Handlers.." )
set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SAFESEH:NO" )
2017-10-22 10:43:33 -07:00
# edit and continue
2018-12-31 17:30:45 +01:00
message( STATUS "Enabling Edit and Continue.." )
add_definitions( /Zi )
# incremental linking
2018-12-31 17:30:45 +01:00
message( STATUS "Enabling Incremental Linking.." )
set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /INCREMENTAL" )
endif()
endif()
2018-10-26 21:14:30 +11:00
# force standalone asio
2019-01-02 15:09:59 +01:00
add_definitions( -DASIO_STANDALONE )