summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-04-26 01:18:17 +0200
committerLéo Lam <leo@leolam.fr>2021-04-27 12:54:18 +0200
commitae9ac510e2dbed6d7adec40dff33d82bb0f1ff3e (patch)
tree9e52f37d53d120a1f3feedd2620f8428d67b313c
parentd0484a9ea9331f2cedb080f06944d737343414f1 (diff)
CMake: Do not enable LTO by default for MSVC
LTO is supposed to be enabled by default for VS Release builds according to the VS prop files but a build log from JMC reveals that /GL and /LTCG are not actually passed to cl.exe/link.exe for some reason... LTO also leads to *extremely* and unacceptably slow build times when using link.exe, so let's disable it by default to actually match the project files.
-rw-r--r--CMakeLists.txt18
1 files changed, 9 insertions, 9 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 45193e813e..e1565844e4 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -332,10 +332,15 @@ if(CMAKE_SYSTEM_NAME MATCHES "Darwin")
endif()
if(ENABLE_LTO)
- check_and_add_flag(LTO -flto)
- if(CMAKE_CXX_COMPILER_ID STREQUAL GNU)
- set(CMAKE_AR gcc-ar)
- set(CMAKE_RANLIB gcc-ranlib)
+ if(CMAKE_C_COMPILER_ID MATCHES "MSVC")
+ add_compile_options(/GL)
+ string(APPEND CMAKE_EXE_LINKER_FLAGS " /LTCG")
+ else()
+ check_and_add_flag(LTO -flto)
+ if(CMAKE_CXX_COMPILER_ID STREQUAL GNU)
+ set(CMAKE_AR gcc-ar)
+ set(CMAKE_RANLIB gcc-ranlib)
+ endif()
endif()
endif()
@@ -362,11 +367,6 @@ if(NOT CMAKE_BUILD_TYPE)
"Build type (Release/Debug/RelWithDebInfo/MinSizeRel)" FORCE)
endif()
-if(CMAKE_BUILD_TYPE MATCHES "Release|RelWithDebInfo" AND CMAKE_C_COMPILER_ID MATCHES "MSVC")
- add_compile_options(/GL)
- string(APPEND CMAKE_EXE_LINKER_FLAGS " /LTCG")
-endif()
-
if(ENABLE_GPROF)
check_and_add_flag(HAVE_PG -pg)
if(NOT FLAG_C_HAVE_PG)