Skip to content

Automated workflow to compile Swift Toolchain, for making Android apps with Swift.

License

Notifications You must be signed in to change notification settings

jt9897253/swift-everywhere-toolchain

 
 

Repository files navigation

swift-everywhere-toolchain

Requirements

  • 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)

Important

Keep tools like CMake and ninja up to date.

Using pre-built toolchain

Build of complete toolchain takes ~1.5h. Instead of building it you can just download and use already pre-built package from Releases page.

Setup and Build

  1. 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
  2. Make sure that Xcode Build Tools properly configured.

    xcode-select --print-path
  3. Clone this repository.

    git clone https://github.com/vgorloff/swift-everywhere-toolchain.git
    cd swift-everywhere-toolchain
  4. 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 file NDK_VERSION at the root of cloned repository.

  5. Start a build.

    node main.js
  6. Once the build completed, toolchain will be saved to folder ToolChain/swift-android-toolchain and compressed into archive ToolChain/swift-android-toolchain.tar.gz.

Usage

Please refer file Assets/Readme.md to see how to compile Swift files or build Swift packages using Toolchain.

Sample Projects

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.

About

Automated workflow to compile Swift Toolchain, for making Android apps with Swift.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 45.1%
  • Ruby 43.3%
  • Shell 8.4%
  • Swift 2.7%
  • Other 0.5%