Swift Toolchain and SDK Build Tool
Swift for Windows build helper tool. Also a regular Toolchain and SDK snapshots (master and 5.3 branches).
Project Goals
Swift is a large project consisting of many parts. When it comes to changing or investigate something located in, for example, Swift Foundation library, it is crucial to have quick and robust way to rebuild only that part.
The goals of this project are to:
- Provide a tool to build and experiment with Swift (Toolchain and SDK) on Windows in convenient way on local developer machine
- Provide binary snapshots of dev and release versions of vanilla Swift, as well as customized version by Readdle
- Provide convenient code/script blocks to integrate Swift build process in arbitrary CI/CD flow
Requirements
- Windows 10 RedStone 4 (10.0.17763.0) or newer
- Developer Mode. Enable in Settings > Update & Security > For developers. Required to create symlinks without elevation.
- Git. https://git-scm.com/download/win
- Python 2. https://www.python.org/downloads/release/python-2718/. Not used by latest Swift master branch, but still required for 5.3 and older versions. IMPORTANT: Should be installed to C:\Python27.
- Python 3. https://www.python.org/downloads/release/python-385/
- Visual Studio 2019. Any edition. For minimal build system use Build Tools: https://aka.ms/vs/16/release/vs_buildtools.exe . Required components are:
- MSVC v142 - VS 2019 C++ x64/x86 build tools
- Windows 10 SDK
- C++ CMake tools for Windows
- C++ ATL for v142 build tools
Getting Started
- Run elevated Command Prompt. Elevation is required to install clang modules into Visual Studio directory. If you somehow omit this step (e.g. by commenting corresponding script line), elevation is not needed, but make sure you have modues installed already (either manually, or by previous build tool run).
- Clone this repository (e.g. to
C:\swift-windows-gha
) and CD into it. Note: don't put it deeply into directory structure, or you will probably get build errors due to file path length restrictions. - Run
scripts\configure.cmd
. - Answer to all questions with defaults by pressing Enter.
- Run
scripts\build.cmd
.
Just toolchain alone contains more than 5000 sources to build, so be patient. Build takes about 40 minutes on 3.2GHz 8-core CPU, more than a hour on VM under MacBook Pro 2017, and about 6 hours on GitHub Actions cloud agent.
In the end you will get Library
folder at the default output path, which contains all built products as well as some intermediates.