- macOS 11.3
- Xcode 12.5
- Android Studio 4.1.3
- Android NDK 21.4.7075529
- Node 14.16.1 (node -v). Newer versions may also work, but not tested.
- CMake 3.20.2 (cmake --version)
- Ninja 1.10.2 (ninja --version)
- autoconf 2.71 (autoconf --version)
- aclocal 1.16.3 (aclocal --version)
- glibtool 2.4.6 (glibtool --version)
- pkg-config 0.29.2 (pkg-config --version)
- Toolchain build may fail if macOS headers installed under
/usr/include
. This usually happens if you previously installed package/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
. See details in Xcode Command Line Tools notes. See following SuperUser question about how to uninstall package. - Toolchain build may fail if the command line tools are present in
/Library/Developer/CommandLineTools
. Remove them if you are not using them. See: macos - How do I uninstall the command line tools for Xcode? - Ask Different
Keep tools like CMake
and ninja
up to date.
Build of complete toolchain takes ~1.5h. Instead of building it you can just download and use already pre-built package from Releases page.
-
Install CMake, Ninja, Autotools and git-lfs. Check that all requirements are installed.
brew install cmake ninja autoconf automake libtool pkg-config git-lfs which cmake which ninja which autoconf which aclocal which glibtool which pkg-config which git-lfs
-
Make sure that
Xcode Build Tools
properly configured.xcode-select --print-path
-
Clone this repository.
git clone https://github.com/vgorloff/swift-everywhere-toolchain.git cd swift-everywhere-toolchain
-
Create a symbolic link to NDK installation directory.
sudo mkdir -p /usr/local/ndk sudo ln -vsi ~/Library/Android/sdk/ndk/$VERSION /usr/local/ndk/$VERSION
The placeholder
$VERSION
needs to be replaced with a version mentioned in fileNDK_VERSION
at the root of cloned repository. -
Start a build.
node main.js
-
Once the build completed, toolchain will be saved to folder
ToolChain/swift-android-toolchain
and compressed into archiveToolChain/swift-android-toolchain.tar.gz
.
Please refer file Assets/Readme.md to see how to compile Swift files or build Swift packages using Toolchain.
Sample projects can be found in a separate swift-everywhere-samples repository. Please look into Readme.md
in that repository to get information about how to configure and build sample projects.