commit 5b51f41ceed6604b388b63d73360a22d1ea95749 (tree) parent 700bb19a9053e236df6a9f15d435c427391e3ecf Author: Sahnvour <sahnvour@pm.me> Date: Thu, 10 Oct 2019 22:44:52 +0200 stage1: override cmake's default compilation flags to statically link the CRT on windows we want to use /MT instead of /MD for a fully static executable Diffstat:
| M | CMakeLists.txt | | | 6 | +++++- |
| A | cmake/c_flag_overrides.cmake | | | 13 | +++++++++++++ |
| A | cmake/cxx_flag_overrides.cmake | | | 13 | +++++++++++++ |
3 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt @@ -10,10 +10,14 @@ if(NOT CMAKE_INSTALL_PREFIX) "Directory to install zig to" FORCE) endif() +set(CMAKE_USER_MAKE_RULES_OVERRIDE + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/c_flag_overrides.cmake) +set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX + ${CMAKE_CURRENT_SOURCE_DIR}/cmake/cxx_flag_overrides.cmake) + project(zig C CXX) set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH}) - set(ZIG_VERSION_MAJOR 0) set(ZIG_VERSION_MINOR 5) set(ZIG_VERSION_PATCH 0) diff --git a/cmake/c_flag_overrides.cmake b/cmake/c_flag_overrides.cmake @@ -0,0 +1,13 @@ +if(MSVC) + set(CMAKE_C_FLAGS_DEBUG_INIT + "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1") + + set(CMAKE_C_FLAGS_MINSIZEREL_INIT + "/MT /O1 /Ob1 /D NDEBUG") + + set(CMAKE_C_FLAGS_RELEASE_INIT + "/MT /O2 /Ob2 /D NDEBUG") + + set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT + "/MT /Zi /O2 /Ob1 /D NDEBUG") +endif() diff --git a/cmake/cxx_flag_overrides.cmake b/cmake/cxx_flag_overrides.cmake @@ -0,0 +1,13 @@ +if(MSVC) + set(CMAKE_CXX_FLAGS_DEBUG_INIT + "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1") + + set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT + "/MT /O1 /Ob1 /D NDEBUG") + + set(CMAKE_CXX_FLAGS_RELEASE_INIT + "/MT /O2 /Ob2 /D NDEBUG") + + set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT + "/MT /Zi /O2 /Ob1 /D NDEBUG") +endif()