Skip to content

Commit 0cb1c16

Browse files
authored
Merge pull request #3467 from ziglang/windows-static-linking
Fully static stage1 compiler on windows
2 parents f80c01f + 93295f3 commit 0cb1c16

File tree

5 files changed

+36
-7
lines changed

5 files changed

+36
-7
lines changed

CMakeLists.txt

+5-1
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,14 @@ if(NOT CMAKE_INSTALL_PREFIX)
1010
"Directory to install zig to" FORCE)
1111
endif()
1212

13+
set(CMAKE_USER_MAKE_RULES_OVERRIDE
14+
${CMAKE_CURRENT_SOURCE_DIR}/cmake/c_flag_overrides.cmake)
15+
set(CMAKE_USER_MAKE_RULES_OVERRIDE_CXX
16+
${CMAKE_CURRENT_SOURCE_DIR}/cmake/cxx_flag_overrides.cmake)
17+
1318
project(zig C CXX)
1419
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
1520

16-
1721
set(ZIG_VERSION_MAJOR 0)
1822
set(ZIG_VERSION_MINOR 5)
1923
set(ZIG_VERSION_PATCH 0)

ci/azure/windows_install

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ set -e
66
pacman -Su --needed --noconfirm
77
pacman -S --needed --noconfirm wget p7zip python3-pip
88
pip install s3cmd
9-
wget -nv "https://ziglang.org/deps/llvm%2bclang-9.0.0-win64-msvc-release.tar.xz"
10-
tar xf llvm+clang-9.0.0-win64-msvc-release.tar.xz
9+
wget -nv "https://ziglang.org/deps/llvm%2bclang-9.0.0-win64-msvc-mt.tar.xz"
10+
tar xf llvm+clang-9.0.0-win64-msvc-mt.tar.xz

ci/azure/windows_script.bat

+3-4
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,14 @@ SET "MSYSTEM=%PREVMSYSTEM%"
1111

1212
SET "ZIGBUILDDIR=%SRCROOT%\build"
1313
SET "ZIGINSTALLDIR=%ZIGBUILDDIR%\dist"
14-
SET "ZIGPREFIXPATH=%SRCROOT%\llvm+clang-9.0.0-win64-msvc-release"
14+
SET "ZIGPREFIXPATH=%SRCROOT%\llvm+clang-9.0.0-win64-msvc-mt"
1515

1616
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" x64
1717

1818
mkdir %ZIGBUILDDIR%
1919
cd %ZIGBUILDDIR%
20-
REM Here we use MinSizeRel instead of Release to work around https://github.com/ziglang/zig/issues/3024
21-
cmake.exe .. -Thost=x64 -G"Visual Studio 16 2019" -A x64 "-DCMAKE_INSTALL_PREFIX=%ZIGINSTALLDIR%" "-DCMAKE_PREFIX_PATH=%ZIGPREFIXPATH%" -DCMAKE_BUILD_TYPE=MinSizeRel || exit /b
22-
msbuild /maxcpucount /p:Configuration=MinSizeRel INSTALL.vcxproj || exit /b
20+
cmake.exe .. -Thost=x64 -G"Visual Studio 16 2019" -A x64 "-DCMAKE_INSTALL_PREFIX=%ZIGINSTALLDIR%" "-DCMAKE_PREFIX_PATH=%ZIGPREFIXPATH%" -DCMAKE_BUILD_TYPE=Release || exit /b
21+
msbuild /maxcpucount /p:Configuration=Release INSTALL.vcxproj || exit /b
2322

2423
"%ZIGINSTALLDIR%\bin\zig.exe" build test || exit /b
2524

cmake/c_flag_overrides.cmake

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
if(MSVC)
2+
set(CMAKE_C_FLAGS_DEBUG_INIT
3+
"/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1")
4+
5+
set(CMAKE_C_FLAGS_MINSIZEREL_INIT
6+
"/MT /O1 /Ob1 /D NDEBUG")
7+
8+
set(CMAKE_C_FLAGS_RELEASE_INIT
9+
"/MT /O2 /Ob1 /D NDEBUG")
10+
11+
set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT
12+
"/MT /Zi /O2 /Ob1 /D NDEBUG")
13+
endif()

cmake/cxx_flag_overrides.cmake

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
if(MSVC)
2+
set(CMAKE_CXX_FLAGS_DEBUG_INIT
3+
"/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1")
4+
5+
set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT
6+
"/MT /O1 /Ob1 /D NDEBUG")
7+
8+
set(CMAKE_CXX_FLAGS_RELEASE_INIT
9+
"/MT /O2 /Ob1 /D NDEBUG")
10+
11+
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT
12+
"/MT /Zi /O2 /Ob1 /D NDEBUG")
13+
endif()

0 commit comments

Comments
 (0)