aboutsummaryrefslogtreecommitdiff
path: root/cmake/compiler
diff options
context:
space:
mode:
authorNaios <naios-dev@live.de>2016-03-17 16:22:50 +0100
committerNaios <naios-dev@live.de>2016-03-19 23:19:57 +0100
commit6eba8493e2ed7f475c169243f0daf530799fd20a (patch)
tree072543f6d5b31380994157f1be768dca2ea3a6df /cmake/compiler
parent90274d0337e5bf62d7e0ab4d08f04419d6f81446 (diff)
CMake: Disable incremental linking in msvc debug builds
* Requested by Shauren (cherry picked from commit fbc23c0713e98cb16d601c64e2e3e2a7716d2ab8)
Diffstat (limited to 'cmake/compiler')
-rw-r--r--cmake/compiler/msvc/settings.cmake12
1 files changed, 12 insertions, 0 deletions
diff --git a/cmake/compiler/msvc/settings.cmake b/cmake/compiler/msvc/settings.cmake
index f4ed0e12786..52c19b336cb 100644
--- a/cmake/compiler/msvc/settings.cmake
+++ b/cmake/compiler/msvc/settings.cmake
@@ -85,3 +85,15 @@ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /Zm500")
# 'function' : member function does not override any base class virtual member function
# 'virtual_function' : no override available for virtual member function from base 'class'; function is hidden
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /we4263 /we4264")
+
+# Disable incremental linking in debug builds.
+# To prevent linking getting stuck (which might be fixed in a later VS version).
+macro(DisableIncrementalLinking variable)
+ string(REGEX REPLACE "/INCREMENTAL *" "" ${variable} "${${variable}}")
+ set(${variable} "${${variable}} /INCREMENTAL:NO")
+endmacro()
+
+DisableIncrementalLinking(CMAKE_EXE_LINKER_FLAGS_DEBUG)
+DisableIncrementalLinking(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO)
+DisableIncrementalLinking(CMAKE_SHARED_LINKER_FLAGS_DEBUG)
+DisableIncrementalLinking(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO)