Last active
April 5, 2025 16:31
-
-
Save kkebo/439b685b34cc3a5b91dc1aeb4ad7b193 to your computer and use it in GitHub Desktop.
swift-corelibs-foundation を wasm32-unknown-wasi 向けにビルドするためのスクリプト
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -ex | |
# 元ファイル: https://github.com/swiftwasm/swiftwasm-build/blob/main/schemes/main/build/build-foundation.sh | |
# swiftly でツールチェーンをインストール | |
# swift sdk install で Wasm の Swift SDK をインストール | |
# swift-collections, swift-foundation, swift-foundation-icu は最新の main ブランチをあらかじめクローンしておく | |
# libxml2 は https://github.com/swiftwasm/libxml2-wasm/releases/download/2.0.0/libxml2-wasm32-unknown-wasi.tar.gz からダウンロード | |
DESTINATION_TOOLCHAIN="$HOME/.swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2025-03-28-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2025-03-28-a-wasm32-unknown-wasi/wasm32-unknown-wasi/swift.xctoolchain" | |
LLVM_BIN_DIR="$HOME/.local/share/swiftly/toolchains/main-snapshot-2025-03-28/usr/bin" | |
CLANG_BIN_DIR="$HOME/.local/share/swiftly/toolchains/main-snapshot-2025-03-28/usr/bin" | |
SWIFT_BIN_DIR="$HOME/.local/share/swiftly/toolchains/main-snapshot-2025-03-28/usr/bin" | |
WASI_SYSROOT_PATH="$HOME/.swiftpm/swift-sdks/swift-wasm-DEVELOPMENT-SNAPSHOT-2025-03-28-a-wasm32-unknown-wasi.artifactbundle/DEVELOPMENT-SNAPSHOT-2025-03-28-a-wasm32-unknown-wasi/wasm32-unknown-wasi/WASI.sdk" | |
TRIPLE="wasm32-unknown-wasi" | |
SOURCE_PATH="$HOME" | |
LIBXML2_PATH="$HOME/downloads/libxml2-wasm32-unknown-wasi" | |
FOUNDATION_BUILD="build" | |
swift_extra_flags="" | |
c_extra_flags="" | |
cmake -G Ninja \ | |
-D CMAKE_SYSROOT="$WASI_SYSROOT_PATH" \ | |
-D CMAKE_Swift_COMPILER="$SWIFT_BIN_DIR/swiftc" \ | |
-D CMAKE_STAGING_PREFIX="$DESTINATION_TOOLCHAIN/usr" \ | |
-D CMAKE_SYSTEM_NAME=WASI \ | |
-D CMAKE_SYSTEM_PROCESSOR=wasm32 \ | |
-D CMAKE_C_COMPILER_TARGET="$TRIPLE" \ | |
-D CMAKE_CXX_COMPILER_TARGET="$TRIPLE" \ | |
-D CMAKE_Swift_COMPILER_TARGET="$TRIPLE" \ | |
-D CMAKE_C_COMPILER="$CLANG_BIN_DIR/clang" \ | |
-D CMAKE_CXX_COMPILER="$CLANG_BIN_DIR/clang++" \ | |
-D CMAKE_AR="$LLVM_BIN_DIR/llvm-ar" \ | |
-D CMAKE_RANLIB="$LLVM_BIN_DIR/llvm-ranlib" \ | |
-D LIBXML2_INCLUDE_DIR="$LIBXML2_PATH/include/libxml2" \ | |
-D LIBXML2_LIBRARY="$LIBXML2_PATH/lib" \ | |
-D BUILD_SHARED_LIBS=OFF \ | |
-D FOUNDATION_BUILD_TOOLS=OFF \ | |
-D CMAKE_Swift_COMPILER_FORCED=ON \ | |
-D CMAKE_C_COMPILER_FORCED=ON \ | |
-D CMAKE_CXX_COMPILER_FORCED=ON \ | |
-D CMAKE_Swift_FLAGS="-sdk $WASI_SYSROOT_PATH -resource-dir $DESTINATION_TOOLCHAIN/usr/lib/swift_static $swift_extra_flags" \ | |
-D CMAKE_C_FLAGS="-resource-dir $DESTINATION_TOOLCHAIN/usr/lib/swift_static/clang -B $LLVM_BIN_DIR $c_extra_flags" \ | |
-D _SwiftCollections_SourceDIR="$SOURCE_PATH/swift-collections" \ | |
-D _SwiftFoundation_SourceDIR="$SOURCE_PATH/swift-foundation" \ | |
-D _SwiftFoundationICU_SourceDIR="$SOURCE_PATH/swift-foundation-icu" \ | |
-D SwiftFoundation_MACRO="$SWIFT_BIN_DIR/../lib/swift/host/plugins" \ | |
-B "$FOUNDATION_BUILD" \ | |
"${SOURCE_PATH}/swift-corelibs-foundation" | |
cmake --build build |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment