From 5b51f41ceed6604b388b63d73360a22d1ea95749 Mon Sep 17 00:00:00 2001 From: Sahnvour Date: Thu, 10 Oct 2019 22:44:52 +0200 Subject: [PATCH] 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 --- CMakeLists.txt | 6 +++++- cmake/c_flag_overrides.cmake | 13 +++++++++++++ cmake/cxx_flag_overrides.cmake | 13 +++++++++++++ 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 cmake/c_flag_overrides.cmake create mode 100644 cmake/cxx_flag_overrides.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 5d918f2b14..fbc34f8051 100644 --- 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 new file mode 100644 index 0000000000..0eed5308ba --- /dev/null +++ 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 new file mode 100644 index 0000000000..82fb7b39d0 --- /dev/null +++ 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()