summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2020-05-10 23:38:48 +0100
committerGitHub <noreply@github.com>2020-05-10 23:38:48 +0100
commitd08f72ebb0cdd9382748ba58000a3b12684a149f (patch)
tree2569d98b6a5b9ab17c23badb22451d514c5f0685
parent898caead46faa50985c0de009eeec497f617165a (diff)
parent63f9fbeea52787b41110157310aa1e1aebc364d1 (diff)
downloadlibgit2-d08f72ebb0cdd9382748ba58000a3b12684a149f.tar.gz
Merge pull request #5500 from phkelley/enable-control-flow-guard
MSVC: Enable Control Flow Guard (CFG)
-rw-r--r--CMakeLists.txt10
1 files changed, 10 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 826415893..381954790 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -137,6 +137,11 @@ IF (MSVC)
# /Gd - explicitly set cdecl calling convention
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /Gd")
+ IF (NOT (MSVC_VERSION LESS 1900))
+ # /guard:cf - Enable Control Flow Guard
+ SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /guard:cf")
+ ENDIF()
+
IF (STATIC_CRT)
SET(CRT_FLAG_DEBUG "/MTd")
SET(CRT_FLAG_RELEASE "/MT")
@@ -183,6 +188,11 @@ IF (MSVC)
# /VERSION - Embed version information in PE header
SET(CMAKE_EXE_LINKER_FLAGS "/DYNAMICBASE /NXCOMPAT /LARGEADDRESSAWARE /VERSION:${LIBGIT2_VERSION_MAJOR}.${LIBGIT2_VERSION_MINOR}")
+ IF (NOT (MSVC_VERSION LESS 1900))
+ # /GUARD:CF - Enable Control Flow Guard
+ SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /GUARD:CF")
+ ENDIF()
+
# /DEBUG - Create a PDB
# /LTCG - Link time code generation (whole program optimization)
# /OPT:REF /OPT:ICF - Fold out duplicate code at link step