diff --git a/.github/actions/build-swift-project-macos/action.yml b/.github/actions/build-swift-project-macos/action.yml new file mode 100644 index 0000000..20fe020 --- /dev/null +++ b/.github/actions/build-swift-project-macos/action.yml @@ -0,0 +1,46 @@ +name: Build Swift Project + +inputs: + checkout-scheme: + description: The schema passed to utils/update-checkout + required: true + +runs: + using: "composite" + steps: + - uses: actions/checkout@v4 + with: + repository: swiftlang/swift + path: swift-project/swift + - name: Install dependencies + run: brew install ninja sccache + shell: bash + - name: Update checkout + run: | + utils/update-checkout --clone --scheme $CHECKOUT_SCHEME \ + --skip-history \ + --skip-repository swift-foundation-icu + shell: bash + working-directory: ./swift-project/swift + env: + CHECKOUT_SCHEME: ${{ inputs.checkout-scheme }} + - name: Run sccache-cache + uses: mozilla-actions/sccache-action@v0.0.9 + - name: Build Swift + run: | + utils/build-script --skip-build-benchmarks \ + --swift-darwin-supported-archs "$(uname -m)" \ + --release --swift-disable-dead-stripping \ + --bootstrapping=hosttools \ + --sccache + shell: bash + working-directory: ./swift-project/swift + env: + SCCACHE_GHA_ENABLED: "true" + - name: Create symbolic links to build directories + run: | + mkdir -p build/Default + ln -s ../Ninja-ReleaseAssert/swift-macosx-arm64 build/Default/swift + ln -s ../Ninja-ReleaseAssert/llvm-macosx-arm64 build/Default/llvm + shell: bash + working-directory: ./swift-project diff --git a/.github/workflows/swift.yml b/.github/workflows/swift.yml new file mode 100644 index 0000000..d6f4a43 --- /dev/null +++ b/.github/workflows/swift.yml @@ -0,0 +1,25 @@ +# This workflow will build a Swift project +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-swift + +name: Swift + +on: + push: + branches: ["main"] + pull_request: + branches: ["main"] + +jobs: + build: + runs-on: macos-26 + + steps: + - uses: actions/checkout@v4 + with: + path: Compute + - uses: ./Compute/.github/actions/build-swift-project-macos + with: + checkout-scheme: release/6.2 + - name: Build + run: swift build + working-directory: ./Compute diff --git a/Package.swift b/Package.swift index d2f0c38..a66f1a3 100644 --- a/Package.swift +++ b/Package.swift @@ -87,7 +87,14 @@ let package = Package( .target( name: "Compute", dependencies: ["ComputeCxx"], - swiftSettings: [.enableExperimentalFeature("Extern"), .unsafeFlags(["-enable-library-evolution"])] + swiftSettings: [ + .enableExperimentalFeature("Extern"), + .unsafeFlags([ + "-enable-library-evolution", + // When -enable-library-evolution is specified verify-emitted-module-interface command fails + "-no-verify-emitted-module-interface", + ]), + ] ), .testTarget( name: "ComputeTests",