swiftwasm / swiftwasm-build

Patches, build scripts, and CI configuration for the SwiftWasm toolchain

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SwiftWasm toolchain build

This repository contains the patches, build scripts, and CI configuration for the SwiftWasm toolchain.

Building the toolchain

$ mkdir swiftwasm-source
$ cd swiftwasm-source
$ git clone https://github.com/swiftwasm/swiftwasm-build
$ cd swiftwasm-build
# Install WebAssembly specific dependencies into ../build-sdk
$ ./tools/build/install-build-sdk.sh main
# Checkout the Swift repositories in the parent directory (swiftwasm-source) and apply patches
$ ./tools/git-swift-workspace --scheme main
# Build the toolchain (this will take a while)
$ ./tools/build/build-toolchain.sh main

See SwiftWasm book for more details about dependencies you need to install and how to build on Docker.

Project structure

  • schemes/<scheme> - Scheme is the concept used in Swift's utils/update-checkout script to describe a set of build sources.
  • schemes/<scheme>/manifest.json - The manifest file for the scheme, which describes the base source revisions to check out.
  • schemes/<scheme>/swift - Patches to be applied on top of the checked out Swift repository. This is where the SwiftWasm-specific patches live. Most of them are ready to be upstreamed, but patches marked with HACK need modification or another solution.
  • tools/git-swift-workspace - A tool to check out the Swift repositories and apply patches.
  • tools/git-swift-update-patch - A tool to help daily patch maintenance.
  • tools/build - Scheme agnostic build scripts.

Contributing

See docs/upstreaming.md for more details.

About

Patches, build scripts, and CI configuration for the SwiftWasm toolchain


Languages

Language:Python 58.3%Language:Shell 31.9%Language:Swift 6.8%Language:CMake 1.9%Language:Ruby 0.9%Language:C 0.2%