|
@@ -701,21 +701,14 @@ include(CheckCSourceCompiles) |
|
|
|
|
|
if(MSVC) |
|
|
# Visual Studio |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D WIN32_LEAN_AND_MEAN /MP") |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /D WIN32_LEAN_AND_MEAN") |
|
|
# EHa enables SEH exceptions (used for catching segfaults) |
|
|
set(CMAKE_CXX_FLAGS_RELEASE "/EHa /Ox /GL /FD /MD /GS- /Zi /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0 /TP") |
|
|
set(CMAKE_CXX_FLAGS_RELEASE "/EHa /Ox /MD /GS- /Zi /fp:fast /D NDEBUG /D _HAS_ITERATOR_DEBUGGING=0") |
|
|
if(CMAKE_SIZEOF_VOID_P EQUAL 4) |
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /arch:SSE") |
|
|
endif() |
|
|
|
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
|
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF") |
|
|
else() |
|
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/LTCG /INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF") |
|
|
endif() |
|
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") |
|
|
|
|
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "/INCREMENTAL:NO /DEBUG /OPT:REF /OPT:ICF /SUBSYSTEM:WINDOWS /ENTRY:mainCRTStartup") |
|
|
|
|
|
set(CMAKE_CXX_FLAGS_SEMIDEBUG "/MDd /Zi /Ob0 /O1 /RTC1") |
|
|
|
|
@@ -726,6 +719,19 @@ if(MSVC) |
|
|
# Flags for C files (sqlite) |
|
|
# /MD = dynamically link to MSVCRxxx.dll |
|
|
set(CMAKE_C_FLAGS_RELEASE "/O2 /Ob2 /MD") |
|
|
|
|
|
# Flags that cannot be shared between cl and clang-cl |
|
|
# https://clang.llvm.org/docs/UsersManual.html#clang-cl |
|
|
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang") |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fuse-ld=lld") |
|
|
|
|
|
# Disable pragma-pack warning |
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wno-pragma-pack") |
|
|
else() |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /MP") |
|
|
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /TP /FD /GL") |
|
|
set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /LTCG") |
|
|
endif() |
|
|
else() |
|
|
# GCC or compatible compilers such as Clang |
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") |
|
|