Skip to content

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

Notifications You must be signed in to change notification settings

swiftwasm/swiftwasm-build

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Resources

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published