diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9ca46da5c1f08..6ece20e7139ad 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -15,8 +15,13 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Run a multi-line script + - name: Build Linux installable archive run: ./ci-linux.sh + - name: Upload Linux installable archive + uses: actions/upload-artifact@v1 + with: + name: linux-installable + path: ../swiftwasm-linux.tar.gz macos_build: timeout-minutes: 0 @@ -24,5 +29,42 @@ jobs: steps: - uses: actions/checkout@v1 - - name: Run a multi-line script + - name: Build macOS installable archive run: ./ci-mac.sh + - name: Upload macOS installable archive + uses: actions/upload-artifact@v1 + with: + name: macos-installable + path: ../swiftwasm-mac.tar.gz + + package: + name: Build SwiftWasm packages + needs: + - linux_build + - macos_build + runs-on: ubuntu-18.04 + steps: + - name: Download installable Linux archive + uses: actions/download-artifact@v1 + with: + name: linux-installable + - name: Download installable macOS archive + uses: actions/download-artifact@v1 + with: + name: macos-installable + - name: Build the packages + shell: bash + run: | + git clone https://github.com/swiftwasm/swiftwasm-package-sdk.git + cd swiftwasm-package-sdk + ./download-prebuilts.sh + + cp ../linux-installable/swiftwasm-linux.tar.gz prebuilt/swiftwasm.tar.gz + cp ../macos-installable/swiftwasm-mac.tar.gz prebuilt/swiftwasm-mac.tar.gz + ./build-packages.sh + + cd output + tar xf swiftwasm-sdk-linux.tar.xz + + cd swiftwasm-sdk + ./swiftwasm example/hello.swift hello.wasm diff --git a/build-linux.sh b/build-linux.sh index 285a5b05a3c9c..30285c85a2dc9 100755 --- a/build-linux.sh +++ b/build-linux.sh @@ -16,7 +16,7 @@ export sourcedir=$PWD/.. --install-destdir="$sourcedir/install" \ --install-prefix="/opt/swiftwasm-sdk" \ --install-swift \ - --installable-package="$sourcedir/swiftwasm.tar.gz" \ + --installable-package="$sourcedir/swiftwasm-linux.tar.gz" \ --llvm-targets-to-build "X86;WebAssembly" \ --stdlib-deployment-targets "wasm-wasm32" \ --wasm-icu-data "todo-icu-data" \ diff --git a/stdlib/private/StdlibUnittest/SymbolLookup.swift b/stdlib/private/StdlibUnittest/SymbolLookup.swift index 2e9c627487a4f..6967c11327e0e 100644 --- a/stdlib/private/StdlibUnittest/SymbolLookup.swift +++ b/stdlib/private/StdlibUnittest/SymbolLookup.swift @@ -12,7 +12,7 @@ #if os(macOS) || os(iOS) || os(tvOS) || os(watchOS) import Darwin -#elseif os(Linux) || os(FreeBSD) || os(PS4) || os(Android) || os(Cygwin) || os(Haiku) +#elseif os(Linux) || os(FreeBSD) || os(PS4) || os(Android) || os(Cygwin) || os(Haiku) || os(Wasm) import Glibc #elseif os(Windows) import MSVCRT @@ -23,7 +23,7 @@ #if os(macOS) || os(iOS) || os(watchOS) || os(tvOS) let RTLD_DEFAULT = UnsafeMutableRawPointer(bitPattern: -2) -#elseif os(Linux) +#elseif os(Linux) || os(Wasm) let RTLD_DEFAULT = UnsafeMutableRawPointer(bitPattern: 0) #elseif os(Android) #if arch(arm) || arch(i386) @@ -43,6 +43,8 @@ public func pointerToSwiftCoreSymbol(name: String) -> UnsafeMutableRawPointer? { #if os(Windows) return unsafeBitCast(GetProcAddress(hStdlibCore, name), to: UnsafeMutableRawPointer?.self) +#elseif os(Wasm) + fatalError("\(#function) is not supported on WebAssembly") #else return dlsym(RTLD_DEFAULT, name) #endif