Skip to content

Commit

Permalink
Merge pull request #94 from omochi/swift-sdk
Browse files Browse the repository at this point in the history
swift sdk
  • Loading branch information
omochi authored Apr 29, 2024
2 parents db6291d + 72c1c62 commit f74e97b
Show file tree
Hide file tree
Showing 4 changed files with 16 additions and 18 deletions.
11 changes: 5 additions & 6 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ jobs:
test-linux:
runs-on: ubuntu-22.04
env:
SWIFT: swift-DEVELOPMENT-SNAPSHOT-2024-04-02-a
SWIFT_WASM: swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-03-a
SWIFT: swift-DEVELOPMENT-SNAPSHOT-2024-04-27-a
SWIFT_WASM: swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-28-a
steps:
- uses: actions/checkout@v4
- run: bin/ci/check-package.sh
Expand Down Expand Up @@ -51,9 +51,8 @@ jobs:
- run: echo /home/runner/${{ env.SWIFT }}-ubuntu22.04/usr/bin >> ${GITHUB_PATH}
- run: swift --version
- run: >
swift experimental-sdk install
https://github.com/swiftwasm/swift/releases/download/${{ env.SWIFT_WASM }}/${{ env.SWIFT_WASM }}-ubuntu22.04_x86_64.artifactbundle.zip
swift sdk install
https://github.com/swiftwasm/swift/releases/download/${{ env.SWIFT_WASM }}/${{ env.SWIFT_WASM }}-wasm32-unknown-wasi.artifactbundle.zip
- run: curl -L -O https://github.com/omochi/carton-build/releases/download/snapshot-2024-04-16/carton.tar.gz
working-directory: /home/runner
- run: tar xzf carton.tar.gz
Expand All @@ -67,7 +66,7 @@ jobs:
- run: swift test

- run: >
swift build --experimental-swift-sdk wasm32-unknown-wasi
swift build --swift-sdk wasm32-unknown-wasi
--build-tests
-Xswiftc -static-stdlib
-Xswiftc -Xclang-linker -Xswiftc -mexec-model=reactor
Expand Down
2 changes: 1 addition & 1 deletion BrowserTests/bin/build
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ cd "$(dirname "$0")/.."

set -x

swift build --experimental-swift-sdk wasm32-unknown-wasi \
swift build --swift-sdk wasm32-unknown-wasi \
--disable-build-manifest-caching \
-Xswiftc -static-stdlib \
-Xswiftc -Xclang-linker -Xswiftc -mexec-model=reactor \
Expand Down
3 changes: 1 addition & 2 deletions bin/test
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ cd "$(dirname "$0")/.."

set -x

swift build --experimental-swift-sdk wasm32-unknown-wasi \
swift build --swift-sdk wasm32-unknown-wasi \
--build-tests \
-Xswiftc -static-stdlib \
-Xswiftc -Xclang-linker -Xswiftc -mexec-model=reactor \
Expand All @@ -17,4 +17,3 @@ swift build --experimental-swift-sdk wasm32-unknown-wasi \
CartonFrontend test \
--prebuilt-test-bundle-path .build/debug/swift-reactPackageTests.wasm \
--environment browser

18 changes: 9 additions & 9 deletions docs/configure.ja.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ $ swift run carton dev
### Wasm に対応した Swift の入手

まずは、Wasm に対応したコンパイラを手に入れます。
[Swiftのダウンロードページ](https://www.swift.org/download)の、 Snapshots セクションのうち、 Trunk Development (main) の部分を参照します。 Xcode の行に書いてある Universal というリンクからインストーラをダウンロードできます。この時ダウンロードしたファイル名に含まれる、 Swift の git タグを確認しておいてください。例えば `swift-DEVELOPMENT-SNAPSHOT-2024-04-02-a-osx.pkg` の場合は、末尾の `-osx.pkg` を取り除いた `swift-DEVELOPMENT-SNAPSHOT-2024-04-02-a` がタグです。
[Swiftのダウンロードページ](https://www.swift.org/download)の、 Snapshots セクションのうち、 Trunk Development (main) の部分を参照します。 Xcode の行に書いてある Universal というリンクからインストーラをダウンロードできます。この時ダウンロードしたファイル名に含まれる、 Swift の git タグを確認しておいてください。例えば `swift-DEVELOPMENT-SNAPSHOT-2024-04-27-a-osx.pkg` の場合は、末尾の `-osx.pkg` を取り除いた `swift-DEVELOPMENT-SNAPSHOT-2024-04-27-a` がタグです。

インストールウィザードにおいて、インストール先を選ぶ場面では「自分だけにインストール」を選んでください。

Expand All @@ -81,7 +81,7 @@ plutil -extract CFBundleIdentifier raw \
通常、バンドルIDは以下のような形式の文字列です。

```
org.swift.59202404021a
org.swift.59202404271a
```

これをどこかに記録しておいてください。
Expand All @@ -92,37 +92,37 @@ org.swift.59202404021a
下記のように `TOOLCHAINS` 環境変数に対してバンドルIDを指定します。

```sh
export TOOLCHAINS=org.swift.59202404021a
export TOOLCHAINS=org.swift.59202404271a
```

### Wasm SDK の入手

Swift コンパイラツールチェーンに対して、 Wasm SDK を追加します。

[Swift for Wasm の Release ページ](https://github.com/swiftwasm/swift/releases) から、あなたがインストールした Swift に対応する Swift for Wasm を探します。個別のリリースページには `apple/swift` のバージョンが書かれているので、これが Swift の git タグと一致しているリリースを探します。例えばタグが `swift-DEVELOPMENT-SNAPSHOT-2024-04-02-a` であれば、以下のリリースが対応しています。
[Swift for Wasm の Release ページ](https://github.com/swiftwasm/swift/releases) から、あなたがインストールした Swift に対応する Swift for Wasm を探します。個別のリリースページには `apple/swift` のバージョンが書かれているので、これが Swift の git タグと一致しているリリースを探します。例えばタグが `swift-DEVELOPMENT-SNAPSHOT-2024-04-27-a` であれば、以下のリリースが対応しています。

[https://github.com/swiftwasm/swift/releases/tag/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-03-a](https://github.com/swiftwasm/swift/releases/tag/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-03-a)
[https://github.com/swiftwasm/swift/releases/tag/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-28-a](https://github.com/swiftwasm/swift/releases/tag/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-28-a)

一般的には、 Swift のスナップショットの次の日付になっているスナップショットが対応しているようです。

対応しているリリースページがわかったら、 Assets のセクションから、あなたの mac 向けの artifact bundle を探します。これが Wasm SDK です。 CPU アーキテクチャは arm64 と x86_64 の2つがあるので適切な方を選んでください。 pkg と artifact bundle を間違えないようにしてください。 pkg はコンパイラ本体で、 SDK ではありません。artifact bundle が SDK です
対応しているリリースページがわかったら、 Assets のセクションから、Wasm 向けの Swift SDK を含む artifact bundle を探します。ファイル名の末尾が `wasm32-unknown-wasi.artifactbundle.zip` となっているものを選びます。 似た名前の `wasm32-unknown-wasip1-threads.artifactbundle.zip` もありますが、こちらは違うので注意しましょう

そのリンクを右クリックして、 SDK のダウンロードURLを取得します。例えば以下のような URL でしょう。

[https://github.com/swiftwasm/swift/releases/download/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-03-a/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-03-a-macos_arm64.artifactbundle.zip](https://github.com/swiftwasm/swift/releases/download/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-03-a/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-03-a-macos_arm64.artifactbundle.zip)
[https://github.com/swiftwasm/swift/releases/download/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-28-a/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-28-a-wasm32-unknown-wasi.artifactbundle.zip](https://github.com/swiftwasm/swift/releases/download/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-28-a/swift-wasm-DEVELOPMENT-SNAPSHOT-2024-04-28-a-wasm32-unknown-wasi.artifactbundle.zip)

この URL を 以下の SDK インストール用のコマンドに渡すことでインストールします。

```sh
$ swift experimental-sdk install <SDK download URL>
$ swift sdk install <SDK download URL>
```

### Wasm アプリケーションのビルド

以下のコマンドでビルドします。

```sh
$ swift build --experimental-swift-sdk wasm32-unknown-wasi \
$ swift build --swift-sdk wasm32-unknown-wasi \
--disable-build-manifest-caching \
-Xswiftc -static-stdlib \
-Xswiftc -Xclang-linker -Xswiftc -mexec-model=reactor \
Expand Down

0 comments on commit f74e97b

Please sign in to comment.