diff --git a/.github/workflows/swift-toolchain.yml b/.github/workflows/swift-toolchain.yml index 53df98144..81be15578 100644 --- a/.github/workflows/swift-toolchain.yml +++ b/.github/workflows/swift-toolchain.yml @@ -293,7 +293,7 @@ jobs: cxx: cl cxxflags: ${{ needs.context.outputs.WINDOWS_CMAKE_CXX_FLAGS }} os: Windows - extra_flags: + extra_flags: - arch: arm64 cc: cl @@ -301,7 +301,7 @@ jobs: cxx: cl cxxflags: ${{ needs.context.outputs.WINDOWS_CMAKE_CXX_FLAGS }} os: Windows - extra_flags: + extra_flags: - arch: x86 cc: cl @@ -309,7 +309,7 @@ jobs: cxx: cl cxxflags: ${{ needs.context.outputs.WINDOWS_CMAKE_CXX_FLAGS }} os: Windows - extra_flags: + extra_flags: - arch: arm64 cc: clang @@ -317,7 +317,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a - arch: armv7 cc: clang @@ -325,7 +325,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a - arch: i686 cc: clang @@ -333,7 +333,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=x86 - arch: x86_64 cc: clang @@ -341,7 +341,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86_64 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=x86_64 name: ${{ matrix.os }} ${{ matrix.arch }} SQLite3 @@ -361,7 +361,6 @@ jobs: run: Copy-Item ${{ github.workspace }}\SourceCache\swift-build\cmake\SQLite\CMakeLists.txt -destination ${{ github.workspace }}\SourceCache\sqlite-3.43.2\CMakeLists.txt - uses: compnerd/gha-setup-vsdevenv@main - if: matrix.os == 'Windows' with: host_arch: amd64 components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64' @@ -375,9 +374,15 @@ jobs: variant: sccache append-timestamp: false + - uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r26b + - name: Configure SQLite run: | - $NINJA_PATH = "$(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -products * -nologo -latest -property installationPath)\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" + $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} + cmake -B ${{ github.workspace }}/BinaryCache/sqlite-3.43.2 ` -D BUILD_SHARED_LIBS=NO ` -D CMAKE_BUILD_TYPE=Release ` @@ -390,6 +395,8 @@ jobs: -D CMAKE_MT=mt ` -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/sqlite-3.43.2/usr ` -D CMAKE_SYSTEM_NAME=${{ matrix.os }} ` + -D CMAKE_ANDROID_NDK=$NDKPATH ` + -D CMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} ` ${{ matrix.extra_flags }} ` -G Ninja ` -S ${{ github.workspace }}/SourceCache/sqlite-3.43.2 @@ -520,7 +527,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a - arch: armv7 BUILD_TOOLS: NO @@ -530,7 +537,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a - arch: i686 BUILD_TOOLS: NO @@ -540,7 +547,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=x86 - arch: x86_64 BUILD_TOOLS: NO @@ -550,7 +557,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86_64 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=x86_64 name: ${{ matrix.os }} ${{ matrix.arch }} ICU @@ -580,7 +587,6 @@ jobs: Copy-Item ${{ github.workspace }}\SourceCache\swift-installer-scripts\shared\ICU\icupkg.inc.cmake -destination ${{ github.workspace }}\SourceCache\icu\icu4c\icupkg.inc.cmake - uses: compnerd/gha-setup-vsdevenv@main - if: matrix.os == 'Windows' with: host_arch: amd64 components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64' @@ -594,9 +600,15 @@ jobs: variant: sccache append-timestamp: false + - uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r26b + - name: Configure ICU run: | - $NINJA_PATH = "$(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -products * -nologo -latest -property installationPath)\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" + $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} + cmake -B ${{ github.workspace }}/BinaryCache/icu-69.1 ` -D BUILD_SHARED_LIBS=NO ` -D BUILD_TOOLS=${{ matrix.BUILD_TOOLS }} ` @@ -613,6 +625,8 @@ jobs: -D MSVC_C_ARCHITECTURE_ID=${{ matrix.arch }} ` -D CMAKE_SYSTEM_NAME=${{ matrix.os }} ` -D ICU_TOOLS_DIR=${{ github.workspace }}/BinaryCache/icu-tools-69.1/usr/bin ` + -D CMAKE_ANDROID_NDK=$NDKPATH ` + -D CMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} ` ${{ matrix.extra_flags }} ` -G Ninja ` -S ${{ github.workspace }}/SourceCache/icu/icu4c @@ -1075,7 +1089,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a - arch: armv7 cc: clang @@ -1083,7 +1097,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a - arch: i686 cc: clang @@ -1091,7 +1105,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=x86 - arch: x86_64 cc: clang @@ -1099,7 +1113,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86_64 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=x86_64 name: ${{ matrix.os }} ${{ matrix.arch }} zlib @@ -1112,7 +1126,6 @@ jobs: show-progress: false - uses: compnerd/gha-setup-vsdevenv@main - if: matrix.os == 'Windows' with: host_arch: amd64 components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64' @@ -1126,9 +1139,15 @@ jobs: variant: sccache append-timestamp: false + - uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r26b + - name: Configure zlib run: | - $NINJA_PATH = "$(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -products * -nologo -latest -property installationPath)\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" + $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} + cmake -B ${{ github.workspace }}/BinaryCache/zlib-1.3 ` -D BUILD_SHARED_LIBS=NO ` -D CMAKE_BUILD_TYPE=Release ` @@ -1141,6 +1160,9 @@ jobs: -D CMAKE_MT=mt ` -D CMAKE_INSTALL_PREFIX=${{ github.workspace }}/BuildRoot/Library/zlib-1.3/usr ` -D CMAKE_SYSTEM_NAME=${{ matrix.os }} ` + -D CMAKE_ANDROID_NDK=$NDKPATH ` + -D CMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} ` + -D CMAKE_POSITION_INDEPENDENT_CODE=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` ${{ matrix.extra_flags }} ` -G Ninja ` -S ${{ github.workspace }}/SourceCache/zlib ` @@ -1193,7 +1215,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a - arch: armv7 cc: clang @@ -1201,7 +1223,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a - arch: i686 cc: clang @@ -1209,7 +1231,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=x86 - arch: x86_64 cc: clang @@ -1217,7 +1239,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86_64 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=x86_64 name: ${{ matrix.os }} ${{ matrix.arch }} curl @@ -1235,7 +1257,6 @@ jobs: path: ${{ github.workspace }}/BuildRoot/Library/zlib-1.3/usr - uses: compnerd/gha-setup-vsdevenv@main - if: matrix.os == 'Windows' with: host_arch: amd64 components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64' @@ -1249,9 +1270,15 @@ jobs: variant: sccache append-timestamp: false + - uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r26b + - name: Configure curl run: | - $NINJA_PATH = "$(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -products * -nologo -latest -property installationPath)\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" + $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} + cmake -B ${{ github.workspace }}/BinaryCache/curl-7.77.0 ` -D BUILD_SHARED_LIBS=NO ` -D CMAKE_BUILD_TYPE=Release ` @@ -1344,7 +1371,10 @@ jobs: -D USE_WIN32_LARGE_FILES=${{ matrix.os == 'Windows' && 'YES' || 'NO' }} ` -D USE_WIN32_LDAP=NO ` -D ZLIB_ROOT=${{ github.workspace }}/BuildRoot/Library/zlib-1.3/usr ` - -D ZLIB_LIBRARY=${{ github.workspace }}/BuildRoot/Library/zlib-1.3/usr/lib/zlibstatic.lib + -D ZLIB_LIBRARY=${{ github.workspace }}/BuildRoot/Library/zlib-1.3/usr/lib/zlibstatic.lib ` + -D CMAKE_POSITION_INDEPENDENT_CODE=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` + -D CMAKE_ANDROID_NDK=$NDKPATH ` + -D CMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} - name: Build curl run: cmake --build ${{ github.workspace }}/BinaryCache/curl-7.77.0 - name: Install curl @@ -1393,7 +1423,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a - arch: armv7 cc: clang @@ -1401,7 +1431,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a - arch: i686 cc: clang @@ -1409,7 +1439,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=x86 - arch: x86_64 cc: clang @@ -1417,7 +1447,7 @@ jobs: cxx: clang++ cxxflags: ${{ needs.context.outputs.ANDROID_CMAKE_CXX_FLAGS }} os: Android - extra_flags: -DCMAKE_POSITION_INDEPENDENT_CODE=YES -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86_64 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DCMAKE_ANDROID_ARCH_ABI=x86_64 name: ${{ matrix.os }} ${{ matrix.arch }} libxml2 @@ -1430,7 +1460,6 @@ jobs: show-progress: false - uses: compnerd/gha-setup-vsdevenv@main - if: matrix.os == 'Windows' with: host_arch: amd64 components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64' @@ -1444,9 +1473,15 @@ jobs: variant: sccache append-timestamp: false + - uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r26b + - name: Configure libxml2 run: | - $NINJA_PATH = "$(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -products * -nologo -latest -property installationPath)\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" + $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} + cmake -B ${{ github.workspace }}/BinaryCache/libxml2-2.11.5 ` -D BUILD_SHARED_LIBS=NO ` -D CMAKE_BUILD_TYPE=Release ` @@ -1468,7 +1503,10 @@ jobs: -D LIBXML2_WITH_PYTHON=NO ` -D LIBXML2_WITH_TESTS=NO ` -D LIBXML2_WITH_THREADS=YES ` - -D LIBXML2_WITH_ZLIB=NO + -D LIBXML2_WITH_ZLIB=NO ` + -D CMAKE_POSITION_INDEPENDENT_CODE=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` + -D CMAKE_ANDROID_NDK=$NDKPATH ` + -D CMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} - name: Build libxml2 run: cmake --build ${{ github.workspace }}/BinaryCache/libxml2-2.11.5 - name: Install libxml2 @@ -1514,7 +1552,7 @@ jobs: os: Windows llvm_flags: linker_flags: '-D CMAKE_EXE_LINKER_FLAGS="${{ needs.context.outputs.WINDOWS_CMAKE_EXE_LINKER_FLAGS }}" -D CMAKE_SHARED_LINKER_FLAGS="${{ needs.context.outputs.WINDOWS_CMAKE_SHARED_LINKER_FLAGS }}"' - extra_flags: + extra_flags: - arch: x86 cpu: 'i686' @@ -1528,7 +1566,7 @@ jobs: os: Windows llvm_flags: linker_flags: '-D CMAKE_EXE_LINKER_FLAGS="${{ needs.context.outputs.WINDOWS_CMAKE_EXE_LINKER_FLAGS }}" -D CMAKE_SHARED_LINKER_FLAGS="${{ needs.context.outputs.WINDOWS_CMAKE_SHARED_LINKER_FLAGS }}"' - extra_flags: + extra_flags: - arch: arm64 cpu: 'aarch64' @@ -1542,7 +1580,7 @@ jobs: os: Android llvm_flags: -DCMAKE_SYSTEM_PROCESSOR=aarch64 -DLLVM_HOST_TRIPLE=aarch64-unknown-linux-android${{ needs.context.outputs.ANDROID_API_LEVEL }} linker_flags: '-D CMAKE_EXE_LINKER_FLAGS="${{ needs.context.outputs.ANDROID_CMAKE_EXE_LINKER_FLAGS }}" -D CMAKE_SHARED_LINKER_FLAGS="${{ needs.context.outputs.ANDROID_CMAKE_SHARED_LINKER_FLAGS }}"' - extra_flags: -D CMAKE_ANDROID_NDK=$NDKPATH -D SWIFT_ANDROID_NDK_PATH=$NDKPATH -DSWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT=YES -DLLVM_ENABLE_LIBCXX=YES -DSWIFT_USE_LINKER=lld -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DSWIFT_USE_LINKER=lld -DCMAKE_ANDROID_ARCH_ABI=arm64-v8a - arch: armv7 cpu: armv7 @@ -1556,7 +1594,7 @@ jobs: os: Android llvm_flags: -DCMAKE_SYSTEM_PROCESSOR=armv7-a -DLLVM_HOST_TRIPLE=armv7a-unknown-linux-androideabi${{ needs.context.outputs.ANDROID_API_LEVEL }} linker_flags: '-D CMAKE_EXE_LINKER_FLAGS="${{ needs.context.outputs.ANDROID_CMAKE_EXE_LINKER_FLAGS }}" -D CMAKE_SHARED_LINKER_FLAGS="${{ needs.context.outputs.ANDROID_CMAKE_SHARED_LINKER_FLAGS }}"' - extra_flags: -D CMAKE_ANDROID_NDK=$NDKPATH -D SWIFT_ANDROID_NDK_PATH=$NDKPATH -DSWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT=YES -DLLVM_ENABLE_LIBCXX=YES -DSWIFT_USE_LINKER=lld -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DSWIFT_USE_LINKER=lld -DCMAKE_ANDROID_ARCH_ABI=armeabi-v7a - arch: i686 cpu: i686 @@ -1570,7 +1608,7 @@ jobs: os: Android llvm_flags: -DCMAKE_SYSTEM_PROCESSOR=i686 -DLLVM_HOST_TRIPLE=i686-unknown-linux-android${{ needs.context.outputs.ANDROID_API_LEVEL }} linker_flags: '-D CMAKE_EXE_LINKER_FLAGS="${{ needs.context.outputs.ANDROID_CMAKE_EXE_LINKER_FLAGS }}" -D CMAKE_SHARED_LINKER_FLAGS="${{ needs.context.outputs.ANDROID_CMAKE_SHARED_LINKER_FLAGS }}"' - extra_flags: -D CMAKE_ANDROID_NDK=$NDKPATH -D SWIFT_ANDROID_NDK_PATH=$NDKPATH -DSWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT=YES -DLLVM_ENABLE_LIBCXX=YES -DSWIFT_USE_LINKER=lld -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DSWIFT_USE_LINKER=lld -DCMAKE_ANDROID_ARCH_ABI=x86 - arch: x86_64 cpu: 'x86_64' @@ -1584,7 +1622,7 @@ jobs: os: Android llvm_flags: -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DLLVM_HOST_TRIPLE=x86_64-unknown-linux-android${{ needs.context.outputs.ANDROID_API_LEVEL }} linker_flags: '-D CMAKE_EXE_LINKER_FLAGS="${{ needs.context.outputs.ANDROID_CMAKE_EXE_LINKER_FLAGS }}" -D CMAKE_SHARED_LINKER_FLAGS="${{ needs.context.outputs.ANDROID_CMAKE_SHARED_LINKER_FLAGS }}"' - extra_flags: -D CMAKE_ANDROID_NDK=$NDKPATH -D SWIFT_ANDROID_NDK_PATH=$NDKPATH -DSWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT=YES -DLLVM_ENABLE_LIBCXX=YES -DSWIFT_USE_LINKER=lld -DCMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} -DCMAKE_ANDROID_ARCH_ABI=x86_64 "-DCMAKE_MAKE_PROGRAM=$NINJA_PATH" + extra_flags: -DSWIFT_USE_LINKER=lld -DCMAKE_ANDROID_ARCH_ABI=x86_64 name: ${{ matrix.os }} ${{ matrix.arch }} SDK @@ -1670,7 +1708,6 @@ jobs: show-progress: false - uses: compnerd/gha-setup-vsdevenv@main - if: matrix.os == 'Windows' with: host_arch: amd64 components: 'Microsoft.VisualStudio.Component.VC.Tools.x86.x64;Microsoft.VisualStudio.Component.VC.Tools.ARM64' @@ -1684,24 +1721,15 @@ jobs: release-asset-name: installer-amd64.exe release-tag-name: '20231016.0' - - name: Download Android NDK - if: matrix.os == 'Android' - run: | - $NDKURL = "https://dl.google.com/android/repository/android-ndk-r26b-windows.zip" - $NDKHash = "A478D43D4A45D0D345CDA6BE50D79642B92FB175868D9DC0DFC86181D80F691E" - curl.exe -sL $NDKURL -o $env:TEMP\android-ndk-r26b-windows.zip - $SHA256 = Get-FileHash -Path $env:TEMP\android-ndk-r26b-windows.zip -Algorithm SHA256 - if ($SHA256.Hash -ne $NDKHash) { - throw "NDK SHA256 mismatch ($($SHA256.Hash) vs $$NDKHash)" - } - - Expand-Archive -Path $env:TEMP\android-ndk-r26b-windows.zip -DestinationPath ${{ github.workspace }}\BuildRoot\Library -Force + - uses: nttld/setup-ndk@v1 + id: setup-ndk + with: + ndk-version: r26b - name: Configure LLVM run: | - $NINJA_PATH = "$(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -products * -nologo -latest -property installationPath)\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" $CLANG_CL = "cl" - $NDKPATH = cygpath -m ${{ github.workspace }}/BuildRoot/Library/android-ndk-r26b + $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} Remove-Item env:\SDKROOT cmake -B ${{ github.workspace }}/BinaryCache/llvm ` @@ -1715,6 +1743,11 @@ jobs: -D CMAKE_SYSTEM_NAME=${{ matrix.os }} ` ${{ matrix.llvm_flags }} ` ${{ matrix.extra_flags }} ` + -D CMAKE_ANDROID_NDK=$NDKPATH ` + -D SWIFT_ANDROID_NDK_PATH=$NDKPATH ` + -D CMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} ` + -D SWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` + -D LLVM_ENABLE_LIBCXX=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` -G Ninja ` -S ${{ github.workspace }}/SourceCache/llvm-project/llvm ` -D LLVM_ENABLE_ASSERTIONS=YES @@ -1723,11 +1756,8 @@ jobs: run: | # Workaround CMake 3.20 issue $CLANG_CL = cygpath -m ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/clang-cl.exe - $SWIFTC = cygpath -m ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/swiftc.exe - $NDKPATH = cygpath -m ${{ github.workspace }}/BuildRoot/Library/android-ndk-r26b - $NINJA_PATH = "$(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -products * -nologo -latest -property installationPath)\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" - + $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} $CMAKE_CPU = if ("${{ matrix.cpu }}" -eq "armv7") { "armv7-a" } else { "${{ matrix.cpu }}" } Remove-Item env:\SDKROOT @@ -1752,6 +1782,11 @@ jobs: -D MSVC_CXX_ARCHITECTURE_ID=${{ matrix.arch }} ` ${{ matrix.linker_flags }} ` ${{ matrix.extra_flags }} ` + -D CMAKE_ANDROID_NDK=$NDKPATH ` + -D SWIFT_ANDROID_NDK_PATH=$NDKPATH ` + -D CMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} ` + -D SWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` + -D LLVM_ENABLE_LIBCXX=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` -G Ninja ` -S ${{ github.workspace }}/SourceCache/swift ` -D LLVM_DIR=${{ github.workspace }}/BinaryCache/llvm/lib/cmake/llvm ` @@ -1781,12 +1816,10 @@ jobs: # Workaround CMake 3.20 issue $CLANG_CL = cygpath -m ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/clang-cl.exe $SWIFTC = cygpath -m ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/swiftc.exe - $NDKPATH = cygpath -m ${{ github.workspace }}/BuildRoot/Library/android-ndk-r26b - $NINJA_PATH = "$(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -products * -nologo -latest -property installationPath)\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" $WIN_OVERLAY_PATH = cygpath -m ${{ github.workspace }}/BinaryCache/swift/stdlib/windows-vfs-overlay.yaml $OVERLAY_FLAGS = if ("${{ matrix.os }}" -eq "Windows") { "-vfsoverlay ${WIN_OVERLAY_PATH} -strict-implicit-module-context -Xcc -Xclang -Xcc -fbuiltin-headers-in-system-modules" } else { "" } - + $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} $CMAKE_CPU = if ("${{ matrix.cpu }}" -eq "armv7") { "armv7-a" } else { "${{ matrix.cpu }}" } Remove-Item env:\SDKROOT @@ -1811,6 +1844,11 @@ jobs: -D MSVC_CXX_ARCHITECTURE_ID=${{ matrix.arch }} ` ${{ matrix.linker_flags }} ` ${{ matrix.extra_flags }} ` + -D CMAKE_ANDROID_NDK=$NDKPATH ` + -D SWIFT_ANDROID_NDK_PATH=$NDKPATH ` + -D CMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} ` + -D SWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` + -D LLVM_ENABLE_LIBCXX=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` -G Ninja ` -S ${{ github.workspace }}/SourceCache/swift-corelibs-libdispatch ` -D BUILD_TESTING=NO ` @@ -1825,12 +1863,10 @@ jobs: # Workaround CMake 3.20 issue $CLANG_CL = cygpath -m ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/clang-cl.exe $SWIFTC = cygpath -m ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/swiftc.exe - $NDKPATH = cygpath -m ${{ github.workspace }}/BuildRoot/Library/android-ndk-r26b - $NINJA_PATH = "$(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -products * -nologo -latest -property installationPath)\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" - + $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} $WIN_OVERLAY_PATH = cygpath -m ${{ github.workspace }}/BinaryCache/swift/stdlib/windows-vfs-overlay.yaml $OVERLAY_FLAGS = if ("${{ matrix.os }}" -eq "Windows") { "-vfsoverlay ${WIN_OVERLAY_PATH} -strict-implicit-module-context -Xcc -Xclang -Xcc -fbuiltin-headers-in-system-modules" } else { "" } - + $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} $CMAKE_CPU = if ("${{ matrix.cpu }}" -eq "armv7") { "armv7-a" } else { "${{ matrix.cpu }}" } $DEFINITION_FLAG = if ("${{ matrix.os }}" -eq "Windows") { "/D" } else { "-D" } @@ -1866,6 +1902,11 @@ jobs: -D MSVC_CXX_ARCHITECTURE_ID=${{ matrix.arch }} ` ${{ matrix.linker_flags }} ` ${{ matrix.extra_flags }} ` + -D CMAKE_ANDROID_NDK=$NDKPATH ` + -D SWIFT_ANDROID_NDK_PATH=$NDKPATH ` + -D CMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} ` + -D SWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` + -D LLVM_ENABLE_LIBCXX=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` -G Ninja ` -S ${{ github.workspace }}/SourceCache/swift-corelibs-foundation ` -D dispatch_DIR=${{ github.workspace }}/BinaryCache/libdispatch/cmake/modules ` @@ -1893,12 +1934,10 @@ jobs: # Workaround CMake 3.20 issue $CLANG_CL = cygpath -m ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/clang-cl.exe $SWIFTC = cygpath -m ${{ github.workspace }}/BuildRoot/Library/Developer/Toolchains/unknown-Asserts-development.xctoolchain/usr/bin/swiftc.exe - $NDKPATH = cygpath -m ${{ github.workspace }}/BuildRoot/Library/android-ndk-r26b - $NINJA_PATH = "$(& "${env:ProgramFiles(x86)}\Microsoft Visual Studio\Installer\vswhere.exe" -products * -nologo -latest -property installationPath)\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" $WIN_OVERLAY_PATH = cygpath -m ${{ github.workspace }}/BinaryCache/swift/stdlib/windows-vfs-overlay.yaml $OVERLAY_FLAGS = if ("${{ matrix.os }}" -eq "Windows") { "-vfsoverlay ${WIN_OVERLAY_PATH} -strict-implicit-module-context -Xcc -Xclang -Xcc -fbuiltin-headers-in-system-modules" } else { "" } - + $NDKPATH = cygpath -m ${{ steps.setup-ndk.outputs.ndk-path }} $CMAKE_CPU = if ("${{ matrix.cpu }}" -eq "armv7") { "armv7-a" } else { "${{ matrix.cpu }}" } Remove-Item env:\SDKROOT @@ -1922,6 +1961,11 @@ jobs: -D CMAKE_SYSTEM_PROCESSOR=${CMAKE_CPU} ` ${{ matrix.linker_flags }} ` ${{ matrix.extra_flags }} ` + -D CMAKE_ANDROID_NDK=$NDKPATH ` + -D SWIFT_ANDROID_NDK_PATH=$NDKPATH ` + -D CMAKE_ANDROID_API=${{ needs.context.outputs.ANDROID_API_LEVEL }} ` + -D SWIFT_BUILD_CLANG_OVERLAYS_SKIP_BUILTIN_FLOAT=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` + -D LLVM_ENABLE_LIBCXX=${{ matrix.os == 'Android' && 'YES' || 'NO' }} ` -G Ninja ` -S ${{ github.workspace }}/SourceCache/swift-corelibs-xctest ` -D dispatch_DIR=${{ github.workspace }}/BinaryCache/libdispatch/cmake/modules `