From d164e446b6ce6c462f6de87b94ce17390f7761c6 Mon Sep 17 00:00:00 2001 From: "Christoph M. Becker" Date: Sat, 7 Sep 2024 15:34:51 +0200 Subject: [PATCH] Use computed CMake generators So far these have been hard-coded, but to properly support vs17, we need to compute them and use the computed values. --- .github/workflows/freetype_cmake.yml | 2 +- .github/workflows/libavif.yml | 6 +++--- .github/workflows/libjpeg.yml | 2 +- .github/workflows/liblzma.yml | 2 +- .github/workflows/libmemcached.yml | 2 +- .github/workflows/librdkafka.yml | 2 +- .github/workflows/libssh2.yml | 2 +- .github/workflows/libtidy.yml | 2 +- .github/workflows/libzip.yml | 4 ++-- .github/workflows/libzstd.yml | 2 +- .github/workflows/nghttp2.yml | 2 +- .github/workflows/pslib.yml | 2 +- .github/workflows/wineditline.yml | 2 +- scripts/compute-virtuals.ps1 | 11 +++++++++++ 14 files changed, 27 insertions(+), 16 deletions(-) diff --git a/.github/workflows/freetype_cmake.yml b/.github/workflows/freetype_cmake.yml index 63769e5..6105f5f 100644 --- a/.github/workflows/freetype_cmake.yml +++ b/.github/workflows/freetype_cmake.yml @@ -32,7 +32,7 @@ jobs: id: virtuals run: powershell winlib-builder/scripts/compute-virtuals -version ${{github.event.inputs.php}} -arch ${{matrix.arch}} - name: Configure freetype - run: cd freetype && md build && cd build && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} .. + run: cd freetype && md build && cd build && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} .. - name: Build freetype run: cd freetype\build && cmake --build . --config RelWithDebInfo - name: Install freetype diff --git a/.github/workflows/libavif.yml b/.github/workflows/libavif.yml index 94a7f92..7c87131 100644 --- a/.github/workflows/libavif.yml +++ b/.github/workflows/libavif.yml @@ -40,10 +40,10 @@ jobs: uses: ilammy/setup-nasm@v1 - name: Configure aom for x64 if: matrix.arch == 'x64' - run: cd libavif\ext\aom && md build.libavif && cd build.libavif && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DENABLE_NASM=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE4_1=1 -DENABLE_SSE4_2=1 -DENABLE_AVX=1 -DENABLE_AVX2=1 .. + run: cd libavif\ext\aom && md build.libavif && cd build.libavif && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DENABLE_NASM=1 -DENABLE_SSE2=1 -DENABLE_SSE3=1 -DENABLE_SSSE3=1 -DENABLE_SSE4_1=1 -DENABLE_SSE4_2=1 -DENABLE_AVX=1 -DENABLE_AVX2=1 .. - name: Configure aom for x86 if: matrix.arch == 'x86' - run: cd libavif\ext\aom && md build.libavif && cd build.libavif && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DENABLE_NASM=1 -DENABLE_SSE2=0 -DENABLE_SSE3=0 -DENABLE_SSSE3=0 -DENABLE_SSE4_1=0 -DENABLE_SSE4_2=0 -DENABLE_AVX=0 -DENABLE_AVX2=0 .. + run: cd libavif\ext\aom && md build.libavif && cd build.libavif && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -DENABLE_DOCS=0 -DENABLE_EXAMPLES=0 -DENABLE_TESTDATA=0 -DENABLE_TESTS=0 -DENABLE_TOOLS=0 -DENABLE_NASM=1 -DENABLE_SSE2=0 -DENABLE_SSE3=0 -DENABLE_SSSE3=0 -DENABLE_SSE4_1=0 -DENABLE_SSE4_2=0 -DENABLE_AVX=0 -DENABLE_AVX2=0 .. - name: Build aom run: cd libavif\ext\aom\build.libavif && cmake --build . --config Release - name: Install aom @@ -53,7 +53,7 @@ jobs: xcopy Release\aom.lib .\aom_a.lib* xcopy .\aom_a.lib ..\..\..\..\install\lib\ - name: Configure libavif - run: cd libavif && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DAVIF_CODEC_AOM=1 -DAVIF_LOCAL_AOM=1 -DAVIF_ENABLE_WERROR=0 -DBUILD_SHARED_LIBS=0 . + run: cd libavif && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DAVIF_CODEC_AOM=1 -DAVIF_LOCAL_AOM=1 -DAVIF_ENABLE_WERROR=0 -DBUILD_SHARED_LIBS=0 . - name: Build libavif run: cd libavif && cmake --build . --config RelWithDebInfo - name: Install libavif diff --git a/.github/workflows/libjpeg.yml b/.github/workflows/libjpeg.yml index f1496bf..8e2094f 100644 --- a/.github/workflows/libjpeg.yml +++ b/.github/workflows/libjpeg.yml @@ -32,7 +32,7 @@ jobs: id: virtuals run: powershell winlib-builder/scripts/compute-virtuals -version ${{github.event.inputs.php}} -arch ${{matrix.arch}} - name: Configure libjpeg - run: cd libjpeg && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DWITH_JPEG8=1 -DWITH_CRT_DLL=1 -DENABLE_SHARED=0 -DWITH_TURBOJPEG=0 . + run: cd libjpeg && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DWITH_JPEG8=1 -DWITH_CRT_DLL=1 -DENABLE_SHARED=0 -DWITH_TURBOJPEG=0 . - name: Build libjpeg run: cd libjpeg && cmake --build . --config RelWithDebInfo - name: Install libjpeg diff --git a/.github/workflows/liblzma.yml b/.github/workflows/liblzma.yml index 8f29b16..31d5483 100644 --- a/.github/workflows/liblzma.yml +++ b/.github/workflows/liblzma.yml @@ -32,7 +32,7 @@ jobs: id: virtuals run: powershell winlib-builder/scripts/compute-virtuals -version ${{github.event.inputs.php}} -arch ${{matrix.arch}} - name: Configure liblzma - run: cd liblzma && md build && cd build && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} .. + run: cd liblzma && md build && cd build && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} .. - name: Build liblzma run: cd liblzma\build && cmake --build . --config RelWithDebInfo - name: Install liblzma diff --git a/.github/workflows/libmemcached.yml b/.github/workflows/libmemcached.yml index 4b1d797..bf902bd 100644 --- a/.github/workflows/libmemcached.yml +++ b/.github/workflows/libmemcached.yml @@ -39,7 +39,7 @@ jobs: run: choco install winflexbison3 - run: path - name: Configure libmemcached - run: cd libmemcached && md build && cd build && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} .. + run: cd libmemcached && md build && cd build && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} .. - name: Build libmemcached run: cd libmemcached\build && cmake --build . --config RelWithDebInfo - name: Install libmemcached diff --git a/.github/workflows/librdkafka.yml b/.github/workflows/librdkafka.yml index 8db384d..dc5a171 100644 --- a/.github/workflows/librdkafka.yml +++ b/.github/workflows/librdkafka.yml @@ -40,7 +40,7 @@ jobs: - name: Patch librdkafka run: cd librdkafka && git apply --ignore-whitespace ..\winlib-builder\patches\librdkafka.patch - name: Configure librdkafka - run: cd librdkafka && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DWITH_ZSTD=ON -DWITH_SSL=ON -DWITH_ZLIB=ON -DCMAKE_PREFIX_PATH:PATH=${{github.workspace}}\deps -DZLIB_LIBRARY:PATH=${{github.workspace}}\deps\lib\zlib_a.lib -DZSTD_LIBRARY:PATH=${{github.workspace}}\deps\lib\libzstd_a.lib . + run: cd librdkafka && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DWITH_ZSTD=ON -DWITH_SSL=ON -DWITH_ZLIB=ON -DCMAKE_PREFIX_PATH:PATH=${{github.workspace}}\deps -DZLIB_LIBRARY:PATH=${{github.workspace}}\deps\lib\zlib_a.lib -DZSTD_LIBRARY:PATH=${{github.workspace}}\deps\lib\libzstd_a.lib . - name: Build librdkafka run: cd librdkafka && cmake --build . --config RelWithDebInfo - name: Install librdkafka diff --git a/.github/workflows/libssh2.yml b/.github/workflows/libssh2.yml index a19f6ca..6883183 100644 --- a/.github/workflows/libssh2.yml +++ b/.github/workflows/libssh2.yml @@ -38,7 +38,7 @@ jobs: - name: Fetch dependencies run: powershell winlib-builder/scripts/fetch-deps -lib libssh2 -version ${{github.event.inputs.php}} -vs ${{steps.virtuals.outputs.vs}} -arch ${{matrix.arch}} -stability ${{github.event.inputs.stability}} - name: Configure libssh2 - run: cd libssh2 && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DCRYPTO_BACKEND=OpenSSL -DOPENSSL_ROOT_DIR:PATH=${{github.workspace}}/deps -DENABLE_ZLIB_COMPRESSION=ON -DZLIB_INCLUDE_DIR:PATH=${{github.workspace}}/deps/include -DZLIB_LIBRARY:FILEPATH=${{github.workspace}}/deps/lib/zlib_a.lib -DBUILD_SHARED_LIBS=ON . + run: cd libssh2 && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DCRYPTO_BACKEND=OpenSSL -DOPENSSL_ROOT_DIR:PATH=${{github.workspace}}/deps -DENABLE_ZLIB_COMPRESSION=ON -DZLIB_INCLUDE_DIR:PATH=${{github.workspace}}/deps/include -DZLIB_LIBRARY:FILEPATH=${{github.workspace}}/deps/lib/zlib_a.lib -DBUILD_SHARED_LIBS=ON . - name: Build libssh2 run: cd libssh2 && cmake --build . --config RelWithDebInfo - name: Install libssh2 diff --git a/.github/workflows/libtidy.yml b/.github/workflows/libtidy.yml index 9321ce9..6655376 100644 --- a/.github/workflows/libtidy.yml +++ b/.github/workflows/libtidy.yml @@ -38,7 +38,7 @@ jobs: - name: Fetch dependencies run: powershell winlib-builder/scripts/fetch-deps -lib libtidy -version ${{github.event.inputs.php}} -vs ${{steps.virtuals.outputs.vs}} -arch ${{matrix.arch}} -stability ${{github.event.inputs.stability}} - name: Configure libtidy - run: cd libtidy && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} . + run: cd libtidy && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} . - name: Build libtidy run: cd libtidy && cmake --build . --config RelWithDebInfo - name: Install libtidy diff --git a/.github/workflows/libzip.yml b/.github/workflows/libzip.yml index 186421a..a2429f7 100644 --- a/.github/workflows/libzip.yml +++ b/.github/workflows/libzip.yml @@ -39,10 +39,10 @@ jobs: run: powershell winlib-builder/scripts/fetch-deps -lib libzip -version ${{github.event.inputs.php}} -vs ${{steps.virtuals.outputs.vs}} -arch ${{matrix.arch}} -stability ${{github.event.inputs.stability}} - name: Configure libzip for PHP < 8.0 if: github.event.inputs.php < 8.0 - run: cd libzip && md build && cd build && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DZLIB_INCLUDE_DIR:PATH=${{github.workspace}}\deps\include -DZLIB_LIBRARY:PATH=${{github.workspace}}\deps\lib\zlib_a.lib -DBZIP2_INCLUDE_DIR:PATH=${{github.workspace}}\deps\include -DBZIP2_LIBRARIES:PATH=${{github.workspace}}\deps\lib\libbz2_a.lib -DBUILD_TOOLS=OFF -DBUILD_REGRESS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOC=OFF .. + run: cd libzip && md build && cd build && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DZLIB_INCLUDE_DIR:PATH=${{github.workspace}}\deps\include -DZLIB_LIBRARY:PATH=${{github.workspace}}\deps\lib\zlib_a.lib -DBZIP2_INCLUDE_DIR:PATH=${{github.workspace}}\deps\include -DBZIP2_LIBRARIES:PATH=${{github.workspace}}\deps\lib\libbz2_a.lib -DBUILD_TOOLS=OFF -DBUILD_REGRESS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOC=OFF .. - name: Configure libzip for PHP >= 8.0 if: github.event.inputs.php >= 8.0 - run: cd libzip && md build && cd build && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DZLIB_INCLUDE_DIR:PATH=${{github.workspace}}\deps\include -DZLIB_LIBRARY:PATH=${{github.workspace}}\deps\lib\zlib_a.lib -DBZIP2_INCLUDE_DIR:PATH=${{github.workspace}}\deps\include -DBZIP2_LIBRARIES:PATH=${{github.workspace}}\deps\lib\libbz2_a.lib -DLIBLZMA_INCLUDE_DIR:PATH=${{github.workspace}}\deps\include -DLIBLZMA_LIBRARY:PATH=${{github.workspace}}\deps\lib\liblzma_a.lib -DBUILD_TOOLS=OFF -DBUILD_REGRESS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOC=OFF .. + run: cd libzip && md build && cd build && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} -DZLIB_INCLUDE_DIR:PATH=${{github.workspace}}\deps\include -DZLIB_LIBRARY:PATH=${{github.workspace}}\deps\lib\zlib_a.lib -DBZIP2_INCLUDE_DIR:PATH=${{github.workspace}}\deps\include -DBZIP2_LIBRARIES:PATH=${{github.workspace}}\deps\lib\libbz2_a.lib -DLIBLZMA_INCLUDE_DIR:PATH=${{github.workspace}}\deps\include -DLIBLZMA_LIBRARY:PATH=${{github.workspace}}\deps\lib\liblzma_a.lib -DBUILD_TOOLS=OFF -DBUILD_REGRESS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOC=OFF .. - name: Build libzip run: cd libzip\build && cmake --build . --config RelWithDebInfo - name: Install libzip diff --git a/.github/workflows/libzstd.yml b/.github/workflows/libzstd.yml index ef11401..189b965 100644 --- a/.github/workflows/libzstd.yml +++ b/.github/workflows/libzstd.yml @@ -38,7 +38,7 @@ jobs: - name: Patch libzstd run: cd libzstd && git apply --ignore-whitespace ..\winlib-builder\patches\libzstd.patch - name: Configure libzstd - run: cd libzstd\build\cmake && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} . + run: cd libzstd\build\cmake && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} . - name: Build libzstd run: cd libzstd\build\cmake && cmake --build . --config RelWithDebInfo - name: Install libzstd diff --git a/.github/workflows/nghttp2.yml b/.github/workflows/nghttp2.yml index 198bb9c..e111da4 100644 --- a/.github/workflows/nghttp2.yml +++ b/.github/workflows/nghttp2.yml @@ -38,7 +38,7 @@ jobs: - name: Fetch dependencies run: powershell winlib-builder/scripts/fetch-deps -lib nghttp2 -version ${{github.event.inputs.php}} -vs ${{steps.virtuals.outputs.vs}} -arch ${{matrix.arch}} -stability ${{github.event.inputs.stability}} - name: Configure nghttp2 - run: cd nghttp2 && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} . + run: cd nghttp2 && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} . - name: Build nghttp2 run: cd nghttp2 && cmake --build . --config RelWithDebInfo --target nghttp2 - name: Install nghttp2 diff --git a/.github/workflows/pslib.yml b/.github/workflows/pslib.yml index 8f7e549..a77b534 100644 --- a/.github/workflows/pslib.yml +++ b/.github/workflows/pslib.yml @@ -36,7 +36,7 @@ jobs: id: virtuals run: powershell winlib-builder/scripts/compute-virtuals -version ${{github.event.inputs.php}} -arch ${{matrix.arch}} - name: Configure pslib - run: cd pslib && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} . + run: cd pslib && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} . - name: Build pslib run: cd pslib && cmake --build . --config RelWithDebInfo - name: Install pslib diff --git a/.github/workflows/wineditline.yml b/.github/workflows/wineditline.yml index 4265b19..54c24d6 100644 --- a/.github/workflows/wineditline.yml +++ b/.github/workflows/wineditline.yml @@ -32,7 +32,7 @@ jobs: id: virtuals run: powershell winlib-builder/scripts/compute-virtuals -version ${{github.event.inputs.php}} -arch ${{matrix.arch}} - name: Configure wineditline - run: cd wineditline && md build && cd build && cmake -G "Visual Studio 16 2019" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} .. + run: cd wineditline && md build && cd build && cmake -G "${{steps.virtuals.outputs.cmakegen}}" -A ${{steps.virtuals.outputs.msarch}} -T ${{steps.virtuals.outputs.msts}} .. - name: Build wineditline run: cd wineditline\build && cmake --build . --config RelWithDebInfo - name: Install wineditline diff --git a/scripts/compute-virtuals.ps1 b/scripts/compute-virtuals.ps1 index fc531e6..4fd90fa 100644 --- a/scripts/compute-virtuals.ps1 +++ b/scripts/compute-virtuals.ps1 @@ -78,6 +78,16 @@ if (-not $msarch) { throw "no suitable MS arch available" } +$cmakegens = @{ + "vc15" = "Visual Studio 15 2017" + "vc16" = "Visual Studio 16 2019" + "vs17" = "Visual Studio 17 2022" +} +$cmakegen = $cmakegens.$vs +if (-not $cmakegen) { + throw "no suitable CMake generator available" +} + & { Write-Output "vs=$vs" Write-Output "vsnum=$vsnum" @@ -86,4 +96,5 @@ if (-not $msarch) { Write-Output "msts=$msts" Write-Output "msarch=$msarch" Write-Output "winsdk=$winsdk" + Write-Output "cmakegen=$cmakegen" } | Out-File -Append -FilePath $env:GITHUB_OUTPUT