diff --git a/.github/workflows/swift-toolchain.yml b/.github/workflows/swift-toolchain.yml index 3603ec372..0d13b5783 100644 --- a/.github/workflows/swift-toolchain.yml +++ b/.github/workflows/swift-toolchain.yml @@ -3325,6 +3325,28 @@ jobs: with: setup-vs-dev-env: true host-arch: ${{ matrix.arch }} + - name: Compute workspace hash + id: workspace_hash + run: | + $stringAsStream = [System.IO.MemoryStream]::new() + $writer = [System.IO.StreamWriter]::new($stringAsStream) + $writer.write("${{ github.workspace }}") + $writer.Flush() + $stringAsStream.Position = 0 + $hash = (Get-FileHash -Algorithm SHA256 -InputStream $stringAsStream).Hash + echo "hash=$hash" >> $env:GITHUB_OUTPUT + - name: Setup sccache + uses: ./SourceCache/ci-build/.github/actions/setup-sccache + with: + s3-bucket: ${{ vars.SCCACHE_S3_BUCKET }} + aws-region: ${{ vars.SCCACHE_AWS_REGION }} + aws-arn: ${{ vars.SCCACHE_AWS_ARN }} + disk-max-size: 100M + disk-cache-key: ${{ steps.workspace_hash.outputs.hash }}-${{ matrix.os }}-${{ matrix.arch }}-devtools + # FIXME(compnerd): workaround CMake 3.30+ issue + - uses: lukka/get-cmake@aa1df13cce8c30d2cb58efa871271c5a764623f8 # main + with: + cmakeVersion: 3.29.9 - uses: actions/download-artifact@v4 with: @@ -3501,357 +3523,286 @@ jobs: path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/Windows.platform - name: Configure swift-argument-parser - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-argument-parser ` - -D BUILD_SHARED_LIBS=YES ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-argument-parser + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-argument-parser + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-argument-parser + bin-dir: ${{ github.workspace }}/BinaryCache/swift-argument-parser + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "YES"; + 'BUILD_TESTING' = "NO"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + } - name: Build swift-argument-parser run: cmake --build ${{ github.workspace }}/BinaryCache/swift-argument-parser - name: Configure swift-collections - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-collections ` - -D BUILD_SHARED_LIBS=YES ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-collections + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-collections + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-collections + bin-dir: ${{ github.workspace }}/BinaryCache/swift-collections + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("C", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "YES"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + } - name: Build swift-collections run: cmake --build ${{ github.workspace }}/BinaryCache/swift-collections - name: Configure swift-asn1 - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-asn1 ` - -D BUILD_SHARED_LIBS=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-asn1 + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-asn1 + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-asn1 + bin-dir: ${{ github.workspace }}/BinaryCache/swift-asn1 + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "NO"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + } - name: Build swift-asn1 run: cmake --build ${{ github.workspace }}/BinaryCache/swift-asn1 - name: Configure swift-crypto - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-crypto ` - -D BUILD_SHARED_LIBS=NO ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_ASM_COMPILER=${CLANG_CL} ` - -D CMAKE_ASM_FLAGS="--target=${{ matrix.triple }}" ` - -D CMAKE_ASM_COMPILE_OPTIONS_MSVC_RUNTIME_LIBRARY_MultiThreadedDLL="/MD" ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-crypto ` - -D SwiftASN1_DIR=${{ github.workspace }}/BinaryCache/swift-asn1/cmake/modules - + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-crypto + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-crypto + bin-dir: ${{ github.workspace }}/BinaryCache/swift-crypto + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("ASM", "C", "CXX", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "NO"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + 'SwiftASN1_DIR' = "${{ github.workspace }}/BinaryCache/swift-asn1/cmake/modules"; + } - name: Build swift-crypto run: cmake --build ${{ github.workspace }}/BinaryCache/swift-crypto - name: Configure swift-llbuild - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-llbuild ` - -D BUILD_SHARED_LIBS=YES ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-llbuild ` - -D LLBUILD_SUPPORT_BINDINGS=Swift ` - -D SQLite3_LIBRARY=${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/lib/SQLite3.lib ` - -D SQLite3_INCLUDE_DIR=${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/include + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-llbuild + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-llbuild + bin-dir: ${{ github.workspace }}/BinaryCache/swift-llbuild + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("CXX", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "YES"; + 'LLBUILD_SUPPORT_BINDINGS' = "Swift"; + 'SQLite3_INCLUDE_DIR' = "${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/include"; + 'SQLite3_LIBRARY' = "${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/lib/SQLite3.lib"; + } - name: Build swift-llbuild run: cmake --build ${{ github.workspace }}/BinaryCache/swift-llbuild - name: Configure swift-system - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-system ` - -D BUILD_SHARED_LIBS=NO ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-system + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-system + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-system + bin-dir: ${{ github.workspace }}/BinaryCache/swift-system + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("C", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "NO"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + } - name: Build swift-system run: cmake --build ${{ github.workspace }}/BinaryCache/swift-system - name: Configure swift-subprocess - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-subprocess ` - -D BUILD_SHARED_LIBS=NO ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - -D CMAKE_STATIC_LIBRARY_PREFIX_Swift="lib" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-subprocess + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-subprocess + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-subprocess + bin-dir: ${{ github.workspace }}/BinaryCache/swift-subprocess + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("C", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "NO"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + } - name: Build swift-subprocess run: cmake --build ${{ github.workspace }}/BinaryCache/swift-subprocess - name: Configure swift-tools-support-core - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-tools-support-core ` - -D BUILD_SHARED_LIBS=YES ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-tools-support-core ` - -D SwiftSystem_DIR=${{ github.workspace }}/BinaryCache/swift-system/cmake/modules ` - -D SQLite3_LIBRARY=${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/lib/SQLite3.lib ` - -D SQLite3_INCLUDE_DIR=${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/include + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-tools-support-core + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-tools-support-core + bin-dir: ${{ github.workspace }}/BinaryCache/swift-tools-support-core + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("C", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "YES"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + 'Foundation_DIR' = "${{ github.workspace }}/BinaryCache/foundation/cmake/modules"; + 'XCTest_DIR' = "${{ github.workspace }}/BinaryCache/xctest/cmake/modules"; + } - name: Build swift-tools-support-core run: cmake --build ${{ github.workspace }}/BinaryCache/swift-tools-support-core - name: Configure swift-driver - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-driver ` - -D BUILD_SHARED_LIBS=YES ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-driver ` - -D ArgumentParser_DIR=${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules ` - -D LLBuild_DIR=${{ github.workspace }}/BinaryCache/swift-llbuild/cmake/modules ` - -D SwiftSystem_DIR=${{ github.workspace }}/BinaryCache/swift-system/cmake/modules ` - -D SQLite3_LIBRARY=${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/lib/SQLite3.lib ` - -D SQLite3_INCLUDE_DIR=${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/include ` - -D TSC_DIR=${{ github.workspace }}/BinaryCache/swift-tools-support-core/cmake/modules + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-driver + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-driver + bin-dir: ${{ github.workspace }}/BinaryCache/swift-driver + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("C", "CXX", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "YES"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + 'TSC_DIR'="${{ github.workspace }}/BinaryCache/swift-tools-support-core/cmake/modules"; + 'LLBuild_DIR'="${{ github.workspace }}/BinaryCache/swift-llbuild/cmake/modules"; + 'ArgumentParser_DIR'="${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules"; + 'SQLite3_INCLUDE_DIR'="${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/include"; + 'SQLite3_LIBRARY'="${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/lib/SQLite3.lib"; + 'SWIFT_DRIVER_BUILD_TOOLS' = "NO"; + } - name: Build swift-driver run: cmake --build ${{ github.workspace }}/BinaryCache/swift-driver - name: Configure swift-certificates - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-certificates ` - -D BUILD_SHARED_LIBS=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-certificates ` - -D SwiftASN1_DIR=${{ github.workspace }}/BinaryCache/swift-asn1/cmake/modules ` - -D SwiftCrypto_DIR=${{ github.workspace }}/BinaryCache/swift-crypto/cmake/modules + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-certificates + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-certificates + bin-dir: ${{ github.workspace }}/BinaryCache/swift-certificates + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "NO"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + 'SwiftCrypto_DIR'="${{ github.workspace }}/BinaryCache/swift-crypto/cmake/modules"; + 'SwiftASN1_DIR'="${{ github.workspace }}/BinaryCache/swift-asn1/cmake/modules"; + } - name: Build swift-certificates run: cmake --build ${{ github.workspace }}/BinaryCache/swift-certificates - name: Configure swift-build - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - if ("${{ matrix.arch }}" -eq "arm64") { - # We use the lld linker to work around erratum 843419 on Cortex-A53 - # CPUs. Otherwise, this causes link.exe to fail with LNK1322. - # See https://github.com/swiftlang/swift/issues/79740 for details. - $ArchSpecificFlags = "-use-ld=lld-link" - } - - # `CMAKE_SHARED_LINKER_FLAGS` and `CMAKE_SHARED_LINKER_FLAGS_RELEASE` - # are set to empty string here to work around the fact that this - # project uses either swift.exe or link.exe as the linker. - # swift.exe cannot properly parse the link.exe flags directly. - # This should be fixed with CMake 4.0 by passing the linker flags with - # a `LINKER:` prefix, while setting `CMP0181` to `NEW`. - cmake -B ${{ github.workspace }}/BinaryCache/swift-build ` - -D BUILD_SHARED_LIBS=YES ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${ArchSpecificFlags} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -D CMAKE_SHARED_LINKER_FLAGS="" ` - -D CMAKE_SHARED_LINKER_FLAGS_RELEASE="" ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-build ` - -D ArgumentParser_DIR=${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules ` - -D LLBuild_DIR=${{ github.workspace }}/BinaryCache/swift-llbuild/cmake/modules ` - -D SwiftDriver_DIR=${{ github.workspace }}/BinaryCache/swift-driver/cmake/modules ` - -D SwiftSystem_DIR=${{ github.workspace }}/BinaryCache/swift-system/cmake/modules ` - -D TSC_DIR=${{ github.workspace }}/BinaryCache/swift-tools-support-core/cmake/modules ` - -D SQLite3_INCLUDE_DIR=${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/include ` - -D SQLite3_LIBRARY=${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/lib/SQLite3.lib + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-build + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-build + bin-dir: ${{ github.workspace }}/BinaryCache/swift-build + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("C", "CXX", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "YES"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + 'ArgumentParser_DIR' = "${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules"; + 'LLBuild_DIR' = "${{ github.workspace }}/BinaryCache/swift-llbuild/cmake/modules"; + 'SwiftDriver_DIR' = "${{ github.workspace }}/BinaryCache/swift-driver/cmake/modules"; + 'SwiftSystem_DIR' = "${{ github.workspace }}/BinaryCache/swift-system/cmake/modules"; + 'TSC_DIR' = "${{ github.workspace }}/BinaryCache/swift-tools-support-core/cmake/modules"; + 'SQLite3_INCLUDE_DIR' = "${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/include"; + 'SQLite3_LIBRARY' = "${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/lib/SQLite3.lib"; + 'CMAKE_Swift_FLAGS' = "${{ matrix.arch == 'arm64' && '-use-ld=lld-link' || '' }}"; + } - name: Build swift-build run: cmake --build ${{ github.workspace }}/BinaryCache/swift-build @@ -3862,201 +3813,178 @@ jobs: (Get-Content $module).Replace('', "${bindir}") | Set-Content $module - name: Configure swift-package-manager - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-package-manager ` - -D BUILD_SHARED_LIBS=YES ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-package-manager ` - -D ArgumentParser_DIR=${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules ` - -D LLBuild_DIR=${{ github.workspace }}/BinaryCache/swift-llbuild/cmake/modules ` - -D SQLite3_INCLUDE_DIR=${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/include ` - -D SQLite3_LIBRARY=${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/lib/SQLite3.lib ` - -D SwiftASN1_DIR=${{ github.workspace }}/BinaryCache/swift-asn1/cmake/modules ` - -D SwiftBuild_DIR=${{ github.workspace }}/BinaryCache/swift-build/cmake/modules ` - -D SwiftCertificates_DIR=${{ github.workspace }}/BinaryCache/swift-certificates/cmake/modules ` - -D SwiftCollections_DIR=${{ github.workspace }}/BinaryCache/swift-collections/cmake/modules ` - -D SwiftCrypto_DIR=${{ github.workspace }}/BinaryCache/swift-crypto/cmake/modules ` - -D SwiftDriver_DIR=${{ github.workspace }}/BinaryCache/swift-driver/cmake/modules ` - -D SwiftSyntax_DIR=${{ github.workspace }}/BinaryCache/swift-syntax/cmake/modules ` - -D SwiftSystem_DIR=${{ github.workspace }}/BinaryCache/swift-system/cmake/modules ` - -D TSC_DIR=${{ github.workspace }}/BinaryCache/swift-tools-support-core/cmake/modules + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-package-manager + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-package-manager + bin-dir: ${{ github.workspace }}/BinaryCache/swift-package-manager + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("C", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "YES"; + 'CMAKE_Swift_FLAGS' = @("-DCRYPTO_v2"); + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + 'SwiftSystem_DIR' = "${{ github.workspace }}/BinaryCache/swift-system/cmake/modules"; + 'TSC_DIR' = "${{ github.workspace }}/BinaryCache/swift-tools-support-core/cmake/modules"; + 'LLBuild_DIR' = "${{ github.workspace }}/BinaryCache/swift-llbuild/cmake/modules"; + 'ArgumentParser_DIR' = "${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules"; + 'SwiftDriver_DIR' = "${{ github.workspace }}/BinaryCache/swift-driver/cmake/modules"; + 'SwiftBuild_DIR' = "${{ github.workspace }}/BinaryCache/swift-build/cmake/modules"; + 'SwiftCrypto_DIR' = "${{ github.workspace }}/BinaryCache/swift-crypto/cmake/modules"; + 'SwiftCollections_DIR' = "${{ github.workspace }}/BinaryCache/swift-collections/cmake/modules"; + 'SwiftASN1_DIR' = "${{ github.workspace }}/BinaryCache/swift-asn1/cmake/modules"; + 'SwiftCertificates_DIR' = "${{ github.workspace }}/BinaryCache/swift-certificates/cmake/modules"; + 'SwiftSyntax_DIR' = "${{ github.workspace }}/BinaryCache/swift-syntax/cmake/modules" + 'SQLite3_INCLUDE_DIR' = "${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/include"; + 'SQLite3_LIBRARY' = "${{ github.workspace }}/BinaryCache/Library/sqlite-${{ inputs.swift_toolchain_sqlite_version }}/usr/lib/SQLite3.lib"; + } - name: Build swift-package-manager run: cmake --build ${{ github.workspace }}/BinaryCache/swift-package-manager - name: Configure Markdown - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-markdown ` - -D BUILD_SHARED_LIBS=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-markdown ` - -D ArgumentParser_DIR=${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules ` - -D cmark-gfm_DIR=${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/lib/cmake + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-markdown + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-markdown + bin-dir: ${{ github.workspace }}/BinaryCache/swift-markdown + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("C", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "NO"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + 'ArgumentParser_DIR' = "${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules"; + 'cmark-gfm_DIR' = "${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/lib/cmake"; + } - name: Build Markdown run: cmake --build ${{ github.workspace }}/BinaryCache/swift-markdown - - name: Configure Format - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-format ` - -D BUILD_SHARED_LIBS=YES ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-format ` - -D ArgumentParser_DIR=${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules ` - -D cmark-gfm_DIR=${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/lib/cmake ` - -D SwiftMarkdown_DIR=${{ github.workspace }}/BinaryCache/swift-markdown/cmake/modules ` - -D SwiftSyntax_DIR=${{ github.workspace }}/BinaryCache/swift-syntax/cmake/modules + - name: Configure swift-format + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-format + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-format + bin-dir: ${{ github.workspace }}/BinaryCache/swift-format + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + msvc-compilers: '@("C")' + built-compilers: '@("Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "YES"; + 'ArgumentParser_DIR' = "${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules"; + 'SwiftMarkdown_DIR' = "${{ github.workspace }}/BinaryCache/swift-markdown/cmake/modules"; + 'SwiftSyntax_DIR' = "${{ github.workspace }}/BinaryCache/swift-syntax/cmake/modules"; + 'cmark-gfm_DIR' = "${{ github.workspace }}/BinaryCache/Library/cmark-gfm-${{ inputs.swift_cmark_version }}/usr/lib/cmake"; + } - name: Build swift-format run: cmake --build ${{ github.workspace }}/BinaryCache/swift-format - name: Configure swift-lmdb - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/swift-lmdb ` - -D BUILD_SHARED_LIBS=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/swift-lmdb + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: swift-lmdb + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/swift-lmdb + bin-dir: ${{ github.workspace }}/BinaryCache/swift-lmdb + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + msvc-compilers: '@("C")' - name: Build swift-lmdb run: cmake --build ${{ github.workspace }}/BinaryCache/swift-lmdb - - name: Configure IndexStoreDB - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/indexstore-db ` - -D BUILD_SHARED_LIBS=NO ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }} -I${env:SDKROOT}/usr/include -I${env:SDKROOT}/usr/include/Block" ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/indexstore-db ` - -D LMDB_DIR=${{ github.workspace }}/BinaryCache/swift-lmdb/cmake/modules + - name: Configure indexstore-db + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: indexstore-db + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/indexstore-db + bin-dir: ${{ github.workspace }}/BinaryCache/indexstore-db + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("C", "CXX", "Swift")' + cmake-defines: | + @{ + 'BUILD_SHARED_LIBS' = "NO"; + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + 'CMAKE_C_FLAGS' = @( + "-I${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk/usr/include", + "-I${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk/usr/include/Block"); + 'CMAKE_CXX_FLAGS' = @( + "-I${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk/usr/include", + "-I${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk/usr/include/Block"); + 'LMDB_DIR' = "${{ github.workspace }}/BinaryCache/swift-lmdb/cmake/modules"; + } - name: Build indexstore-db run: cmake --build ${{ github.workspace }}/BinaryCache/indexstore-db - - name: Configure SourceKit-LSP - run: | - # Workaround CMake 3.20 issue - $CLANG_CL = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BinaryCache/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr/bin/swiftc.exe - - cmake -B ${{ github.workspace }}/BinaryCache/sourcekit-lsp ` - -D BUILD_SHARED_LIBS=YES ` - -D BUILD_TESTING=NO ` - -D CMAKE_BUILD_TYPE=Release ` - -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr ` - -D CMAKE_C_COMPILER=${CLANG_CL} ` - -D CMAKE_C_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_C_FLAGS="${{ inputs.WINDOWS_CMAKE_C_FLAGS }}" ` - -D CMAKE_CXX_COMPILER=${CLANG_CL} ` - -D CMAKE_CXX_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_CXX_FLAGS="${{ inputs.WINDOWS_CMAKE_CXX_FLAGS }}" ` - -D CMAKE_Swift_COMPILER=${SWIFTC} ` - -D CMAKE_Swift_COMPILER_TARGET=${{ matrix.triple }} ` - -D CMAKE_Swift_COMPILER_WORKS=YES ` - -D CMAKE_Swift_FLAGS="-sdk ${env:SDKROOT} ${{ inputs.CMAKE_Swift_FLAGS }}" ` - -D CMAKE_Swift_FLAGS_RELEASE="-O" ` - ${{ matrix.cmake_linker_flags }} ` - -D CMAKE_SYSTEM_NAME=Windows ` - -D CMAKE_SYSTEM_PROCESSOR=${{ matrix.cpu }} ` - -G Ninja ` - -S ${{ github.workspace }}/SourceCache/sourcekit-lsp ` - -D ArgumentParser_DIR=${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules ` - -D IndexStoreDB_DIR=${{ github.workspace }}/BinaryCache/indexstore-db/cmake/modules ` - -D LLBuild_DIR=${{ github.workspace }}/BinaryCache/swift-llbuild/cmake/modules ` - -D SwiftASN1_DIR=${{ github.workspace }}/BinaryCache/swift-asn1/cmake/modules ` - -D SwiftCollections_DIR=${{ github.workspace }}/BinaryCache/swift-collections/cmake/modules ` - -D SwiftCrypto_DIR=${{ github.workspace }}/BinaryCache/swift-crypto/cmake/modules ` - -D SwiftPM_DIR=${{ github.workspace }}/BinaryCache/swift-package-manager/cmake/modules ` - -D SwiftSyntax_DIR=${{ github.workspace }}/BinaryCache/swift-syntax/cmake/modules ` - -D SwiftSystem_DIR=${{ github.workspace }}/BinaryCache/swift-system/cmake/modules ` - -D TSC_DIR=${{ github.workspace }}/BinaryCache/swift-tools-support-core/cmake/modules ` - -D LMDB_DIR=${{ github.workspace }}/BinaryCache/swift-lmdb/cmake/modules - - name: Build SourceKit-LSP - run: cmake --build ${{ github.workspace }}/BinaryCache/SourceKit-LSP + - name: Configure sourcekit-lsp + uses: ./SourceCache/ci-build/.github/actions/configure-cmake-project + with: + project-name: sourcekit-lsp + swift-version: ${{ inputs.swift_version }} + enable-caching: true + debug-info: ${{ inputs.debug_info }} + build-os: ${{ inputs.build_os }} + build-arch: ${{ inputs.build_arch }} + os: ${{ matrix.os }} + arch: ${{ matrix.arch }} + src-dir: ${{ github.workspace }}/SourceCache/sourcekit-lsp + bin-dir: ${{ github.workspace }}/BinaryCache/sourcekit-lsp + install-dir: ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/${{ inputs.swift_version }}+Asserts/usr + swift-sdk-path: ${{ github.workspace }}/BinaryCache/Library/Developer/Platforms/${{ matrix.os }}.platform/Developer/SDKs/${{ matrix.os }}.sdk + built-compilers: '@("C", "Swift")' + cmake-defines: | + @{ + 'CMAKE_STATIC_LIBRARY_PREFIX_Swift' = "lib"; + 'SwiftSyntax_DIR' = "${{ github.workspace }}/BinaryCache/swift-syntax/cmake/modules"; + 'TSC_DIR' = "${{ github.workspace }}/BinaryCache/swift-tools-support-core/cmake/modules"; + 'LLBuild_DIR' = "${{ github.workspace }}/BinaryCache/swift-llbuild/cmake/modules"; + 'ArgumentParser_DIR' = "${{ github.workspace }}/BinaryCache/swift-argument-parser/cmake/modules"; + 'SwiftASN1_DIR' = "${{ github.workspace }}/BinaryCache/swift-asn1/cmake/modules"; + 'SwiftCrypto_DIR' = "${{ github.workspace }}/BinaryCache/swift-crypto/cmake/modules"; + 'SwiftCollections_DIR' = "${{ github.workspace }}/BinaryCache/swift-collections/cmake/modules"; + 'SwiftBuild_DIR' = "${{ github.workspace }}/BinaryCache/swift-build/cmake/modules"; + 'SwiftPM_DIR' = "${{ github.workspace }}/BinaryCache/swift-package-manager/cmake/modules"; + 'LMDB_DIR' = "${{ github.workspace }}/BinaryCache/swift-lmdb/cmake/modules"; + 'IndexStoreDB_DIR' = "${{ github.workspace }}/BinaryCache/indexstore-db/cmake/modules"; + } + - name: Build sourcekit-lsp + run: cmake --build ${{ github.workspace }}/BinaryCache/sourcekit-lsp - name: Install swift-argument-parser run: cmake --build ${{ github.workspace }}/BinaryCache/swift-argument-parser --target install