From 8b5e5def6314fcdc833d37d2b867546825c54378 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Wed, 3 Dec 2025 13:27:19 -0800 Subject: [PATCH 01/13] Update scripts SHA 2025-12-03. --- vcpkg-init/vcpkg-scripts-sha.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vcpkg-init/vcpkg-scripts-sha.txt b/vcpkg-init/vcpkg-scripts-sha.txt index fd1cad96f5..d310561e36 100644 --- a/vcpkg-init/vcpkg-scripts-sha.txt +++ b/vcpkg-init/vcpkg-scripts-sha.txt @@ -1 +1 @@ -3af1d1e60af2b2abf55760538cd607829029b07a +4c4abc2e8727221ede31021349386dac674309b0 From 80c2e3df0ba390515577facb90ee847f33889e66 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Wed, 3 Dec 2025 13:45:52 -0800 Subject: [PATCH 02/13] Fix asset caching test for new required Ninja version in vcpkg_find_acquire_program. --- .../portfile.cmake | 4 ++++ .../vcpkg.json | 4 ++++ .../e2e-ports/vcpkg-test-x-script/vcpkg.json | 7 +++++-- .../end-to-end-tests-dir/asset-caching.ps1 | 17 +++-------------- 4 files changed, 16 insertions(+), 16 deletions(-) create mode 100644 azure-pipelines/e2e-ports/vcpkg-test-x-script-prerequisites/portfile.cmake create mode 100644 azure-pipelines/e2e-ports/vcpkg-test-x-script-prerequisites/vcpkg.json diff --git a/azure-pipelines/e2e-ports/vcpkg-test-x-script-prerequisites/portfile.cmake b/azure-pipelines/e2e-ports/vcpkg-test-x-script-prerequisites/portfile.cmake new file mode 100644 index 0000000000..b7ae024bf9 --- /dev/null +++ b/azure-pipelines/e2e-ports/vcpkg-test-x-script-prerequisites/portfile.cmake @@ -0,0 +1,4 @@ +# This makes sure the correct version of Ninja according to vcpkg_find_acquire_program is available +# before we test x-script. +vcpkg_find_acquire_program(NINJA) +set(VCPKG_POLICY_EMPTY_PACKAGE enabled) diff --git a/azure-pipelines/e2e-ports/vcpkg-test-x-script-prerequisites/vcpkg.json b/azure-pipelines/e2e-ports/vcpkg-test-x-script-prerequisites/vcpkg.json new file mode 100644 index 0000000000..ba1a80f40c --- /dev/null +++ b/azure-pipelines/e2e-ports/vcpkg-test-x-script-prerequisites/vcpkg.json @@ -0,0 +1,4 @@ +{ + "name": "vcpkg-test-x-script-prerequisites", + "version": "1.0.0" +} diff --git a/azure-pipelines/e2e-ports/vcpkg-test-x-script/vcpkg.json b/azure-pipelines/e2e-ports/vcpkg-test-x-script/vcpkg.json index 9dfc969999..a5ee6a1da8 100644 --- a/azure-pipelines/e2e-ports/vcpkg-test-x-script/vcpkg.json +++ b/azure-pipelines/e2e-ports/vcpkg-test-x-script/vcpkg.json @@ -1,4 +1,7 @@ { - "name": "vcpkg-test-x-script", - "version-string": "1.0.0" + "name": "vcpkg-test-x-script", + "version": "1.0.0", + "dependencies": [ + "vcpkg-test-x-script-prerequisites" + ] } diff --git a/azure-pipelines/end-to-end-tests-dir/asset-caching.ps1 b/azure-pipelines/end-to-end-tests-dir/asset-caching.ps1 index cc6e1956b1..ef7e956088 100644 --- a/azure-pipelines/end-to-end-tests-dir/asset-caching.ps1 +++ b/azure-pipelines/end-to-end-tests-dir/asset-caching.ps1 @@ -1,19 +1,10 @@ . $PSScriptRoot/../end-to-end-tests-prelude.ps1 -# Testing x-script -Refresh-TestRoot $env:VCPKG_FORCE_DOWNLOADED_BINARIES = "ON" -Run-Vcpkg @commonArgs fetch cmake -Throw-IfFailed -Run-Vcpkg @commonArgs fetch ninja -Throw-IfFailed -if ($IsWindows) -{ - Run-Vcpkg @commonArgs fetch powershell-core - Throw-IfFailed -} -Remove-Item env:VCPKG_FORCE_DOWNLOADED_BINARIES +# Testing x-script +Run-Vcpkg @commonArgs install vcpkg-test-x-script-prerequisites --x-binarysource=clear "--overlay-ports=$PSScriptRoot/../e2e-ports" +Throw-IfFailed $helloPath = Join-Path $DefaultDownloadsRoot 'hello-world.txt' if (Test-Path $helloPath) { Remove-Item $helloPath @@ -21,8 +12,6 @@ if (Test-Path $helloPath) { Run-Vcpkg @commonArgs install vcpkg-test-x-script --x-binarysource=clear "--overlay-ports=$PSScriptRoot/../e2e-ports" "--x-asset-sources=x-script,$TestScriptAssetCacheExe {url} {sha512} {dst};x-block-origin" Throw-IfFailed - -$env:VCPKG_FORCE_DOWNLOADED_BINARIES = "ON" $assetCacheRegex = [regex]::Escape($AssetCache) # Testing asset cache miss (not configured) + x-block-origin enabled From 6fda3dda91416762793f90e590124b20c4ba14b2 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Wed, 3 Dec 2025 14:18:01 -0800 Subject: [PATCH 03/13] Fix some builds being cross that we didn't want to be cross. --- .github/workflows/build.yaml | 6 +++--- .github/workflows/pr.yaml | 4 ++-- .../e2e-assets/ci-skipped-features/baseline.txt | 1 - .../e2e-assets/ci-skipped-ports/baseline.fail.txt | 2 -- .../e2e-assets/ci-skipped-ports/baseline.skip.txt | 2 -- azure-pipelines/e2e-assets/ci/ci.baseline.txt | 2 -- azure-pipelines/e2e-assets/ci/ci.pass.baseline.txt | 2 -- .../e2e-assets/format-feature-baseline/ci.baseline.txt | 2 -- .../format-feature-baseline/expected/ci.baseline.txt | 2 -- .../expected/prefix-feature-blocks.txt | 2 -- .../format-feature-baseline/prefix-feature-blocks.txt | 2 -- .../end-to-end-tests-dir/native-platform-dep.ps1 | 8 ++++++-- azure-pipelines/end-to-end-tests.ps1 | 8 ++++++-- azure-pipelines/overlay-triplets/arm64-linux-e2e.cmake | 5 +++++ .../{x64-osx-e2e.cmake => arm64-osx-e2e.cmake} | 4 ++-- .../overlay-triplets/compilertracking/arm64-linux.cmake | 8 ++++++++ .../compilertracking/{x64-osx.cmake => arm64-osx.cmake} | 4 ++-- 17 files changed, 34 insertions(+), 30 deletions(-) create mode 100644 azure-pipelines/overlay-triplets/arm64-linux-e2e.cmake rename azure-pipelines/overlay-triplets/{x64-osx-e2e.cmake => arm64-osx-e2e.cmake} (58%) create mode 100644 azure-pipelines/overlay-triplets/compilertracking/arm64-linux.cmake rename azure-pipelines/overlay-triplets/compilertracking/{x64-osx.cmake => arm64-osx.cmake} (72%) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b9d9d9a96a..b042507361 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -12,13 +12,13 @@ jobs: fail-fast: false matrix: include: - - os: windows-2022 + - os: windows-2025 preset: windows-ci - - os: ubuntu-22.04 + - os: ubuntu-24.04 preset: linux-ci - os: ubuntu-24.04-arm preset: linux-arm64-ci - - os: macos-14 + - os: macos-26 preset: macos-ci runs-on: ${{ matrix.os }} timeout-minutes: 120 diff --git a/.github/workflows/pr.yaml b/.github/workflows/pr.yaml index b4f0c5bf03..b916ec4311 100644 --- a/.github/workflows/pr.yaml +++ b/.github/workflows/pr.yaml @@ -15,7 +15,7 @@ jobs: uses: ./.github/workflows/build.yaml format: - runs-on: windows-2022 + runs-on: windows-2025 timeout-minutes: 60 steps: - uses: actions/checkout@v4 @@ -72,7 +72,7 @@ jobs: path: out/format.patch json-schema: - runs-on: windows-2022 + runs-on: windows-2025 timeout-minutes: 10 steps: - uses: actions/checkout@v4 diff --git a/azure-pipelines/e2e-assets/ci-skipped-features/baseline.txt b/azure-pipelines/e2e-assets/ci-skipped-features/baseline.txt index 305d93a05e..79248be831 100644 --- a/azure-pipelines/e2e-assets/ci-skipped-features/baseline.txt +++ b/azure-pipelines/e2e-assets/ci-skipped-features/baseline.txt @@ -1,5 +1,4 @@ skipped-depends:arm64-osx=skip skipped-depends:x64-linux=skip -skipped-depends:x64-osx=skip skipped-depends:x64-windows=skip skipped-depends:x86-windows=skip diff --git a/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.fail.txt b/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.fail.txt index bf2f223a58..39f3e77f58 100644 --- a/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.fail.txt +++ b/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.fail.txt @@ -3,7 +3,6 @@ always-skip:cross=fail always-skip:arm64-linux=fail always-skip:arm64-osx=fail always-skip:x64-linux=fail -always-skip:x64-osx=fail always-skip:x64-windows=fail always-skip:x86-windows=fail @@ -12,6 +11,5 @@ always-skip:x86-windows=fail maybe-skip:arm64-linux=fail maybe-skip:arm64-osx=fail maybe-skip:x64-linux=fail -maybe-skip:x64-osx=fail maybe-skip:x64-windows=fail maybe-skip:x86-windows=fail diff --git a/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.skip.txt b/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.skip.txt index e5777db05c..d11c601404 100644 --- a/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.skip.txt +++ b/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.skip.txt @@ -1,13 +1,11 @@ # actual test always-skip:arm64-osx=skip always-skip:x64-linux=skip -always-skip:x64-osx=skip always-skip:x64-windows=skip always-skip:x86-windows=skip # don't build cached artifact maybe-transitive-cascade:arm64-osx=skip maybe-transitive-cascade:x64-linux=skip -maybe-transitive-cascade:x64-osx=skip maybe-transitive-cascade:x64-windows=skip maybe-transitive-cascade:x86-windows=skip diff --git a/azure-pipelines/e2e-assets/ci/ci.baseline.txt b/azure-pipelines/e2e-assets/ci/ci.baseline.txt index 991685359f..f931ae27a0 100644 --- a/azure-pipelines/e2e-assets/ci/ci.baseline.txt +++ b/azure-pipelines/e2e-assets/ci/ci.baseline.txt @@ -1,5 +1,4 @@ not-sup-host-b:arm64-osx=fail -not-sup-host-b:x64-osx=fail not-sup-host-b:x86-windows=fail not-sup-host-b:x64-windows=fail not-sup-host-b:arm64-windows=fail @@ -8,7 +7,6 @@ not-sup-host-b:arm64-linux=fail dep-on-feature-not-sup:arm64-osx=fail -dep-on-feature-not-sup:x64-osx=fail dep-on-feature-not-sup:x86-windows=fail dep-on-feature-not-sup:x64-windows=fail dep-on-feature-not-sup:arm64-windows=fail diff --git a/azure-pipelines/e2e-assets/ci/ci.pass.baseline.txt b/azure-pipelines/e2e-assets/ci/ci.pass.baseline.txt index 5b326225dc..71e49316f4 100644 --- a/azure-pipelines/e2e-assets/ci/ci.pass.baseline.txt +++ b/azure-pipelines/e2e-assets/ci/ci.pass.baseline.txt @@ -1,5 +1,4 @@ not-sup-host-b:arm64-osx=pass -not-sup-host-b:x64-osx=pass not-sup-host-b:x86-windows=pass not-sup-host-b:x64-windows=pass not-sup-host-b:arm64-windows=pass @@ -8,7 +7,6 @@ not-sup-host-b:arm64-linux=pass dep-on-feature-not-sup:arm64-osx=pass -dep-on-feature-not-sup:x64-osx=pass dep-on-feature-not-sup:x86-windows=pass dep-on-feature-not-sup:x64-windows=pass dep-on-feature-not-sup:arm64-windows=pass diff --git a/azure-pipelines/e2e-assets/format-feature-baseline/ci.baseline.txt b/azure-pipelines/e2e-assets/format-feature-baseline/ci.baseline.txt index 991685359f..f931ae27a0 100644 --- a/azure-pipelines/e2e-assets/format-feature-baseline/ci.baseline.txt +++ b/azure-pipelines/e2e-assets/format-feature-baseline/ci.baseline.txt @@ -1,5 +1,4 @@ not-sup-host-b:arm64-osx=fail -not-sup-host-b:x64-osx=fail not-sup-host-b:x86-windows=fail not-sup-host-b:x64-windows=fail not-sup-host-b:arm64-windows=fail @@ -8,7 +7,6 @@ not-sup-host-b:arm64-linux=fail dep-on-feature-not-sup:arm64-osx=fail -dep-on-feature-not-sup:x64-osx=fail dep-on-feature-not-sup:x86-windows=fail dep-on-feature-not-sup:x64-windows=fail dep-on-feature-not-sup:arm64-windows=fail diff --git a/azure-pipelines/e2e-assets/format-feature-baseline/expected/ci.baseline.txt b/azure-pipelines/e2e-assets/format-feature-baseline/expected/ci.baseline.txt index e392fa30b4..3a267dee20 100644 --- a/azure-pipelines/e2e-assets/format-feature-baseline/expected/ci.baseline.txt +++ b/azure-pipelines/e2e-assets/format-feature-baseline/expected/ci.baseline.txt @@ -2,7 +2,6 @@ not-sup-host-b:arm64-linux=fail not-sup-host-b:arm64-osx=fail not-sup-host-b:arm64-windows=fail not-sup-host-b:x64-linux=fail -not-sup-host-b:x64-osx=fail not-sup-host-b:x64-windows=fail not-sup-host-b:x86-windows=fail @@ -11,6 +10,5 @@ dep-on-feature-not-sup:arm64-linux=fail dep-on-feature-not-sup:arm64-osx=fail dep-on-feature-not-sup:arm64-windows=fail dep-on-feature-not-sup:x64-linux=fail -dep-on-feature-not-sup:x64-osx=fail dep-on-feature-not-sup:x64-windows=fail dep-on-feature-not-sup:x86-windows=fail diff --git a/azure-pipelines/e2e-assets/format-feature-baseline/expected/prefix-feature-blocks.txt b/azure-pipelines/e2e-assets/format-feature-baseline/expected/prefix-feature-blocks.txt index 60020c1d6a..eb5b33c8b5 100644 --- a/azure-pipelines/e2e-assets/format-feature-baseline/expected/prefix-feature-blocks.txt +++ b/azure-pipelines/e2e-assets/format-feature-baseline/expected/prefix-feature-blocks.txt @@ -2,7 +2,6 @@ cmake:arm64-osx=pass cmake:arm64-windows-static-md=pass cmake:arm64-windows=pass cmake:x64-linux=pass -cmake:x64-osx=pass cmake:x64-windows-release=pass cmake:x64-windows-static-md=pass cmake:x64-windows-static=pass @@ -13,7 +12,6 @@ cmake-user:arm64-uwp=pass cmake-user:arm64-windows-static-md=pass cmake-user:arm64-windows=pass cmake-user:x64-linux=pass -cmake-user:x64-osx=pass cmake-user:x64-windows-release=pass cmake-user:x64-windows-static-md=pass cmake-user:x64-windows-static=pass diff --git a/azure-pipelines/e2e-assets/format-feature-baseline/prefix-feature-blocks.txt b/azure-pipelines/e2e-assets/format-feature-baseline/prefix-feature-blocks.txt index 12f64db850..ddbed88f34 100644 --- a/azure-pipelines/e2e-assets/format-feature-baseline/prefix-feature-blocks.txt +++ b/azure-pipelines/e2e-assets/format-feature-baseline/prefix-feature-blocks.txt @@ -3,7 +3,6 @@ cmake:arm64-osx=pass cmake:arm64-windows-static-md=pass cmake:arm64-windows=pass cmake:x64-linux=pass -cmake:x64-osx=pass cmake:x64-windows-release=pass cmake:x64-windows-static-md=pass cmake:x64-windows-static=pass @@ -13,7 +12,6 @@ cmake-user:arm64-windows=pass cmake-user:arm64-windows-static-md=pass cmake-user:x64-linux=pass cmake[d,e,f]:x64-windows=pass -cmake-user:x64-osx=pass cmake-user:x64-windows-release=pass cmake-user:x64-windows-static-md=pass cmake-user:x64-windows-static=pass diff --git a/azure-pipelines/end-to-end-tests-dir/native-platform-dep.ps1 b/azure-pipelines/end-to-end-tests-dir/native-platform-dep.ps1 index b2e24ad520..e07b9cfa10 100644 --- a/azure-pipelines/end-to-end-tests-dir/native-platform-dep.ps1 +++ b/azure-pipelines/end-to-end-tests-dir/native-platform-dep.ps1 @@ -1,9 +1,13 @@ . "$PSScriptRoot/../end-to-end-tests-prelude.ps1" if ($IsLinux) { - $host_triplet = 'x64-linux-e2e' + if ([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'Arm64') { + $host_triplet = 'arm64-linux-e2e' + } else { + $host_triplet = 'x64-linux-e2e' + } } elseif ($IsMacOS) { - $host_triplet = 'x64-osx-e2e' + $host_triplet = 'arm64-osx-e2e' } elseif ($IsWindows) { $host_triplet = 'x64-windows-e2e' } else { diff --git a/azure-pipelines/end-to-end-tests.ps1 b/azure-pipelines/end-to-end-tests.ps1 index 8d71ff51e7..b7b9dc3e65 100755 --- a/azure-pipelines/end-to-end-tests.ps1 +++ b/azure-pipelines/end-to-end-tests.ps1 @@ -47,9 +47,13 @@ if ($PSVersionTable.PSVersion.Major -lt 7) { Import-Module Pester -Force -MinimumVersion '5.6.1' -MaximumVersion '5.99' if ($IsLinux) { - $Triplet = 'x64-linux' + if ([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'Arm64') { + $Triplet = 'arm64-linux' + } else { + $Triplet = 'x64-linux' + } } elseif ($IsMacOS) { - $Triplet = 'x64-osx' + $Triplet = 'arm64-osx' } else { $Triplet = 'x86-windows' } diff --git a/azure-pipelines/overlay-triplets/arm64-linux-e2e.cmake b/azure-pipelines/overlay-triplets/arm64-linux-e2e.cmake new file mode 100644 index 0000000000..07452e099c --- /dev/null +++ b/azure-pipelines/overlay-triplets/arm64-linux-e2e.cmake @@ -0,0 +1,5 @@ +set(VCPKG_TARGET_ARCHITECTURE arm64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) + +set(VCPKG_CMAKE_SYSTEM_NAME Linux) diff --git a/azure-pipelines/overlay-triplets/x64-osx-e2e.cmake b/azure-pipelines/overlay-triplets/arm64-osx-e2e.cmake similarity index 58% rename from azure-pipelines/overlay-triplets/x64-osx-e2e.cmake rename to azure-pipelines/overlay-triplets/arm64-osx-e2e.cmake index 8cd8c90b4a..62325a6967 100644 --- a/azure-pipelines/overlay-triplets/x64-osx-e2e.cmake +++ b/azure-pipelines/overlay-triplets/arm64-osx-e2e.cmake @@ -1,6 +1,6 @@ -set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Darwin) -set(VCPKG_OSX_ARCHITECTURES x86_64) +set(VCPKG_OSX_ARCHITECTURES arm64) diff --git a/azure-pipelines/overlay-triplets/compilertracking/arm64-linux.cmake b/azure-pipelines/overlay-triplets/compilertracking/arm64-linux.cmake new file mode 100644 index 0000000000..0e02ad953e --- /dev/null +++ b/azure-pipelines/overlay-triplets/compilertracking/arm64-linux.cmake @@ -0,0 +1,8 @@ +set(VCPKG_TARGET_ARCHITECTURE arm64) +set(VCPKG_CRT_LINKAGE dynamic) +set(VCPKG_LIBRARY_LINKAGE static) + +set(VCPKG_CMAKE_SYSTEM_NAME Linux) +if(PORT STREQUAL "vcpkg-hello-world-2") + set(VCPKG_DISABLE_COMPILER_TRACKING 1) +endif() diff --git a/azure-pipelines/overlay-triplets/compilertracking/x64-osx.cmake b/azure-pipelines/overlay-triplets/compilertracking/arm64-osx.cmake similarity index 72% rename from azure-pipelines/overlay-triplets/compilertracking/x64-osx.cmake rename to azure-pipelines/overlay-triplets/compilertracking/arm64-osx.cmake index 39c0bd909d..af806f070c 100644 --- a/azure-pipelines/overlay-triplets/compilertracking/x64-osx.cmake +++ b/azure-pipelines/overlay-triplets/compilertracking/arm64-osx.cmake @@ -1,9 +1,9 @@ -set(VCPKG_TARGET_ARCHITECTURE x64) +set(VCPKG_TARGET_ARCHITECTURE arm64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE static) set(VCPKG_CMAKE_SYSTEM_NAME Darwin) -set(VCPKG_OSX_ARCHITECTURES x86_64) +set(VCPKG_OSX_ARCHITECTURES arm64) if(PORT STREQUAL "vcpkg-hello-world-2") set(VCPKG_DISABLE_COMPILER_TRACKING 1) endif() From 573f6c66886aab2a8f587ea8b05fb258c8cd584c Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Wed, 3 Dec 2025 14:31:37 -0800 Subject: [PATCH 04/13] Fix mono test prerequisites. --- .github/workflows/build.yaml | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index b042507361..f3a027e673 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -70,11 +70,15 @@ jobs: path: ${{ github.workspace }}/vcpkg-root repository: microsoft/vcpkg ref: ${{ steps.vcpkg_sha.outputs.VCPKG_SHA }} - - name: Install Mono (for NuGet export) - if: matrix.preset == 'linux-arm64-ci' + - name: Install Mono (Linux) (for NuGet export) + if: matrix.preset == 'linux-arm64' || matrix.preset == 'linux-arm64-ci' run: | sudo apt update sudo apt install -y mono-complete + - name: Install Mono (macOS) (for NuGet export) + if: matrix.preset == 'macos-arm64' + run: | + brew install mono - name: Run vcpkg end-to-end tests shell: pwsh run: | From 8b755ce078c6d6657309cb9e7fc66ca77fc39079 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Wed, 3 Dec 2025 14:57:46 -0800 Subject: [PATCH 05/13] *facepalm* --- .github/workflows/build.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index f3a027e673..c3d70cc5d3 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -71,12 +71,12 @@ jobs: repository: microsoft/vcpkg ref: ${{ steps.vcpkg_sha.outputs.VCPKG_SHA }} - name: Install Mono (Linux) (for NuGet export) - if: matrix.preset == 'linux-arm64' || matrix.preset == 'linux-arm64-ci' + if: matrix.preset == 'linux-ci' || matrix.preset == 'linux-arm64-ci' run: | sudo apt update sudo apt install -y mono-complete - name: Install Mono (macOS) (for NuGet export) - if: matrix.preset == 'macos-arm64' + if: matrix.preset == 'macos-ci' run: | brew install mono - name: Run vcpkg end-to-end tests From 6e3a1e545a9b506015d28f3fa4e7f8b6fd5f6544 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Wed, 3 Dec 2025 16:14:55 -0800 Subject: [PATCH 06/13] More triplet changes. --- .../integrate-install.ps1 | 4 ++-- .../post-build-checks.ps1 | 18 +++++++-------- .../end-to-end-tests-dir/tool-ports.ps1 | 22 +++++++++---------- azure-pipelines/end-to-end-tests.ps1 | 2 +- .../{x86-windows.cmake => x64-windows.cmake} | 2 +- 5 files changed, 24 insertions(+), 24 deletions(-) rename azure-pipelines/overlay-triplets/compilertracking/{x86-windows.cmake => x64-windows.cmake} (81%) diff --git a/azure-pipelines/end-to-end-tests-dir/integrate-install.ps1 b/azure-pipelines/end-to-end-tests-dir/integrate-install.ps1 index 2f152576ee..ce15bea07c 100644 --- a/azure-pipelines/end-to-end-tests-dir/integrate-install.ps1 +++ b/azure-pipelines/end-to-end-tests-dir/integrate-install.ps1 @@ -13,7 +13,7 @@ if (-not $IsLinux -and -not $IsMacOS) { foreach ($project in @("Project1", "NoProps")) { $Script:CurrentTest = "msbuild $iiroot\$project.vcxproj" Write-Host $Script:CurrentTest - Run-Vcpkg @commonArgs env "msbuild $iiroot\$project.vcxproj /p:VCPKG_ROOT=$VcpkgRoot /p:VcpkgRoot=$TestingRoot /p:IntDir=$TestingRoot\int\ /p:OutDir=$TestingRoot\out\ " + Run-Vcpkg @commonArgs env "msbuild $iiroot\$project.vcxproj /p:VCPKG_ROOT=$VcpkgRoot /p:VcpkgRoot=$TestingRoot /p:IntDir=$TestingRoot\int\ /p:OutDir=$TestingRoot\out\ /p:Platform=Win32" Throw-IfFailed Remove-Item -Recurse -Force $TestingRoot\int Remove-Item -Recurse -Force $TestingRoot\out @@ -25,7 +25,7 @@ if (-not $IsLinux -and -not $IsMacOS) { Throw-IfFailed foreach ($project in @("VcpkgTriplet", "VcpkgTriplet2", "VcpkgUseStatic", "VcpkgUseStatic2")) { $Script:CurrentTest = "msbuild $iiroot\$project.vcxproj" - Run-Vcpkg @commonArgs env "msbuild $iiroot\$project.vcxproj /p:VCPKG_ROOT=$VcpkgRoot /p:VcpkgRoot=$TestingRoot /p:IntDir=$TestingRoot\int\ /p:OutDir=$TestingRoot\out\ " + Run-Vcpkg @commonArgs env "msbuild $iiroot\$project.vcxproj /p:VCPKG_ROOT=$VcpkgRoot /p:VcpkgRoot=$TestingRoot /p:IntDir=$TestingRoot\int\ /p:OutDir=$TestingRoot\out\ /p:Platform=Win32" Throw-IfFailed Remove-Item -Recurse -Force $TestingRoot\int Remove-Item -Recurse -Force $TestingRoot\out diff --git a/azure-pipelines/end-to-end-tests-dir/post-build-checks.ps1 b/azure-pipelines/end-to-end-tests-dir/post-build-checks.ps1 index 4d19871fde..4daf38b511 100644 --- a/azure-pipelines/end-to-end-tests-dir/post-build-checks.ps1 +++ b/azure-pipelines/end-to-end-tests-dir/post-build-checks.ps1 @@ -310,7 +310,7 @@ if ($IsWindows) { Throw-IfNotFailed $expected = @" $($PortfilePath): warning: The following executables were found in `${CURRENT_PACKAGES_DIR}/bin or `${CURRENT_PACKAGES_DIR}/debug/bin. Executables are not valid distribution targets. If these executables are build tools, consider using ``vcpkg_copy_tools``. To suppress this message, add set(VCPKG_POLICY_ALLOW_EXES_IN_BIN enabled) -$($packagesRoot)$($NativeSlash)test-exe_x86-windows: note: the executables are relative to `${CURRENT_PACKAGES_DIR} here +$($packagesRoot)$($NativeSlash)test-exe_x64-windows: note: the executables are relative to `${CURRENT_PACKAGES_DIR} here note: bin/test_exe.exe "@ @@ -322,7 +322,7 @@ note: bin/test_exe.exe Throw-IfNotFailed $expected = @" $($PortfilePath): warning: The following executables were found in `${CURRENT_PACKAGES_DIR}/bin or `${CURRENT_PACKAGES_DIR}/debug/bin. Executables are not valid distribution targets. If these executables are build tools, consider using ``vcpkg_copy_tools``. To suppress this message, add set(VCPKG_POLICY_ALLOW_EXES_IN_BIN enabled) -$($packagesRoot)$($NativeSlash)test-exe_x86-windows: note: the executables are relative to `${CURRENT_PACKAGES_DIR} here +$($packagesRoot)$($NativeSlash)test-exe_x64-windows: note: the executables are relative to `${CURRENT_PACKAGES_DIR} here note: debug/bin/test_exe.exe note: bin/test_exe.exe "@ @@ -368,7 +368,7 @@ if ($IsWindows) { $expected = @" $($PortfilePath): warning: mismatching number of debug and release binaries. This often indicates incorrect handling of debug or release in portfile.cmake or the build system. If the intent is to only ever produce release components for this triplet, the triplet should have set(VCPKG_BUILD_TYPE release) added to its .cmake file. To suppress this message, add set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) -$($packagesRoot)$($NativeSlash)test-dll_x86-windows: note: the binaries are relative to `${CURRENT_PACKAGES_DIR} here +$($packagesRoot)$($NativeSlash)test-dll_x64-windows: note: the binaries are relative to `${CURRENT_PACKAGES_DIR} here note: The following are debug binaries: note: debug/lib/test_dll.lib note: debug/bin/test_dll.dll @@ -382,7 +382,7 @@ note: Release binaries were not found. $expected = @" $($PortfilePath): warning: mismatching number of debug and release binaries. This often indicates incorrect handling of debug or release in portfile.cmake or the build system. If the intent is to only ever produce release components for this triplet, the triplet should have set(VCPKG_BUILD_TYPE release) added to its .cmake file. To suppress this message, add set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) -$($packagesRoot)$($NativeSlash)test-dll_x86-windows: note: the binaries are relative to `${CURRENT_PACKAGES_DIR} here +$($packagesRoot)$($NativeSlash)test-dll_x64-windows: note: the binaries are relative to `${CURRENT_PACKAGES_DIR} here note: Debug binaries were not found. note: The following are release binaries: note: lib/test_dll.lib @@ -396,7 +396,7 @@ note: bin/test_dll.dll $expected = @" $($PortfilePath): warning: mismatching number of debug and release binaries. This often indicates incorrect handling of debug or release in portfile.cmake or the build system. If the intent is to only ever produce release components for this triplet, the triplet should have set(VCPKG_BUILD_TYPE release) added to its .cmake file. To suppress this message, add set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) -$($packagesRoot)$($NativeSlash)test-dll_x86-windows: note: the binaries are relative to `${CURRENT_PACKAGES_DIR} here +$($packagesRoot)$($NativeSlash)test-dll_x64-windows: note: the binaries are relative to `${CURRENT_PACKAGES_DIR} here note: The following are debug binaries: note: debug/lib/test_dll.lib note: debug/lib/test_dll2.lib @@ -414,7 +414,7 @@ note: bin/test_dll.dll $expected = @" $($PortfilePath): warning: mismatching number of debug and release binaries. This often indicates incorrect handling of debug or release in portfile.cmake or the build system. If the intent is to only ever produce release components for this triplet, the triplet should have set(VCPKG_BUILD_TYPE release) added to its .cmake file. To suppress this message, add set(VCPKG_POLICY_MISMATCHED_NUMBER_OF_BINARIES enabled) -$($packagesRoot)$($NativeSlash)test-dll_x86-windows: note: the binaries are relative to `${CURRENT_PACKAGES_DIR} here +$($packagesRoot)$($NativeSlash)test-dll_x64-windows: note: the binaries are relative to `${CURRENT_PACKAGES_DIR} here note: The following are debug binaries: note: debug/lib/test_dll.lib note: debug/bin/test_dll.dll @@ -567,11 +567,11 @@ if ($IsWindows) { Copy-Item -Recurse "$PSScriptRoot/../e2e-assets/test-dll-port-template" "$TestingRoot/wrong-architecture/test-dll" Run-Vcpkg env "$TestingRoot/wrong-architecture/test-dll/build.cmd" --Triplet x64-windows $PortfilePath = "$TestingRoot/wrong-architecture$($NativeSlash)test-dll$($NativeSlash)portfile.cmake" - $buildOutput = Run-VcpkgAndCaptureOutput @commonArgs install --overlay-ports="$TestingRoot/wrong-architecture" test-dll --no-binarycaching --enforce-port-checks + $buildOutput = Run-VcpkgAndCaptureOutput @commonArgs install --overlay-ports="$TestingRoot/wrong-architecture" test-dll:x86-windows --no-binarycaching --enforce-port-checks Throw-IfNotFailed $expected = @" $($PortfilePath): warning: The triplet requests that binaries are built for x86, but the following binaries were built for a different architecture. This usually means toolchain information is incorrectly conveyed to the binaries' build system. To suppress this message, add set(VCPKG_POLICY_SKIP_ARCHITECTURE_CHECK enabled) -$($packagesRoot)$($NativeSlash)test-dll_$($Triplet): note: the binaries are relative to `${CURRENT_PACKAGES_DIR} here +$($packagesRoot)$($NativeSlash)test-dll_x86-windows: note: the binaries are relative to `${CURRENT_PACKAGES_DIR} here note: debug/lib/test_dll.lib is built for x64 note: lib/test_dll.lib is built for x64 note: debug/bin/test_dll.dll is built for x64 @@ -582,7 +582,7 @@ note: bin/test_dll.dll is built for x64 throw 'Did not detect DLL with wrong architecture.' } - $buildOutput = Run-VcpkgAndCaptureOutput @commonArgs install --overlay-ports="$TestingRoot/wrong-architecture" 'test-dll[policy-skip-architecture-check]' --no-binarycaching --enforce-port-checks + $buildOutput = Run-VcpkgAndCaptureOutput @commonArgs install --overlay-ports="$TestingRoot/wrong-architecture" 'test-dll[policy-skip-architecture-check]:x86-windows' --no-binarycaching --enforce-port-checks Throw-IfFailed if ($buildOutput.Contains("warning: The following files were built for an incorrect architecture. To suppress this message, add set(VCPKG_POLICY_SKIP_ARCHITECTURE_CHECK enabled) to portfile.cmake.")) { throw 'VCPKG_POLICY_SKIP_ARCHITECTURE_CHECK didn''t suppress' diff --git a/azure-pipelines/end-to-end-tests-dir/tool-ports.ps1 b/azure-pipelines/end-to-end-tests-dir/tool-ports.ps1 index 5237db2023..d3ddd83f0f 100644 --- a/azure-pipelines/end-to-end-tests-dir/tool-ports.ps1 +++ b/azure-pipelines/end-to-end-tests-dir/tool-ports.ps1 @@ -4,17 +4,17 @@ $commonArgs += @("--x-binarysource=clear", "--overlay-ports=$PSScriptRoot/../e2e $hostTriplet = "$Triplet" $env:VCPKG_DEFAULT_HOST_TRIPLET = "$hostTriplet" -if ($IsMacOS) -{ - $targetTriplet = "x64-osx-e2e" -} -elseif ($ISLinux) -{ - $targetTriplet = "x64-linux-e2e" -} -else -{ - $targetTriplet = "x64-windows-e2e" + +if ($IsLinux) { + if ([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'Arm64') { + $targetTriplet = 'arm64-linux-e2e' + } else { + $targetTriplet = 'x64-linux-e2e' + } +} elseif ($IsMacOS) { + $targetTriplet = 'arm64-osx-e2e' +} else { + $targetTriplet = 'x64-windows-e2e' } $env:VCPKG_FEATURE_FLAGS="-compilertracking" diff --git a/azure-pipelines/end-to-end-tests.ps1 b/azure-pipelines/end-to-end-tests.ps1 index b7b9dc3e65..0a36c67df3 100755 --- a/azure-pipelines/end-to-end-tests.ps1 +++ b/azure-pipelines/end-to-end-tests.ps1 @@ -55,7 +55,7 @@ if ($IsLinux) { } elseif ($IsMacOS) { $Triplet = 'arm64-osx' } else { - $Triplet = 'x86-windows' + $Triplet = 'x64-windows' } New-Item -Path $WorkingRoot -ItemType Directory -Force | Out-Null diff --git a/azure-pipelines/overlay-triplets/compilertracking/x86-windows.cmake b/azure-pipelines/overlay-triplets/compilertracking/x64-windows.cmake similarity index 81% rename from azure-pipelines/overlay-triplets/compilertracking/x86-windows.cmake rename to azure-pipelines/overlay-triplets/compilertracking/x64-windows.cmake index 011a14b457..b95c7b6be5 100644 --- a/azure-pipelines/overlay-triplets/compilertracking/x86-windows.cmake +++ b/azure-pipelines/overlay-triplets/compilertracking/x64-windows.cmake @@ -1,4 +1,4 @@ -set(VCPKG_TARGET_ARCHITECTURE x86) +set(VCPKG_TARGET_ARCHITECTURE x64) set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) From 19435aa7a1366f52b5ddaa3ba6fd7aa7ab3a2fa7 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Wed, 3 Dec 2025 16:56:13 -0800 Subject: [PATCH 07/13] Fix arm64-linux CI test. --- azure-pipelines/e2e-assets/ci-skipped-ports/baseline.skip.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.skip.txt b/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.skip.txt index d11c601404..a531299461 100644 --- a/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.skip.txt +++ b/azure-pipelines/e2e-assets/ci-skipped-ports/baseline.skip.txt @@ -1,11 +1,13 @@ # actual test always-skip:arm64-osx=skip always-skip:x64-linux=skip +always-skip:arm64-linux=skip always-skip:x64-windows=skip always-skip:x86-windows=skip # don't build cached artifact maybe-transitive-cascade:arm64-osx=skip maybe-transitive-cascade:x64-linux=skip +maybe-transitive-cascade:arm64-linux=skip maybe-transitive-cascade:x64-windows=skip maybe-transitive-cascade:x86-windows=skip From adc58f1082f116f815de300469f18195e5bca14e Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Wed, 3 Dec 2025 17:25:32 -0800 Subject: [PATCH 08/13] Fix community triplet handling. --- azure-pipelines/end-to-end-tests-dir/ci.ps1 | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/azure-pipelines/end-to-end-tests-dir/ci.ps1 b/azure-pipelines/end-to-end-tests-dir/ci.ps1 index 21e0388bc0..4720a09d88 100644 --- a/azure-pipelines/end-to-end-tests-dir/ci.ps1 +++ b/azure-pipelines/end-to-end-tests-dir/ci.ps1 @@ -145,7 +145,12 @@ if (-not ($Output -match 'maybe-cross-cascade:[^:]+: cascade\n')) { # test cross build; skipping always-skip and host maybe-skip Remove-Item -Recurse -Force $installRoot -ErrorAction SilentlyContinue New-Item -ItemType Directory -Path $installRoot -Force | Out-Null -Copy-Item "$env:VCPKG_ROOT/triplets/$Triplet.cmake" "$installRoot/cross.cmake" +$tripletFile = "$env:VCPKG_ROOT/triplets/$Triplet.cmake"; +if (-not (Test-Path $tripletFile)) { + $tripletFile = "$env:VCPKG_ROOT/triplets/community/$Triplet.cmake" +} + +Copy-Item $tripletFile "$installRoot/cross.cmake" $Output = Run-VcpkgAndCaptureOutput ci --dry-run --skip-failures --triplet cross --overlay-triplets $installRoot @directoryArgs --x-builtin-ports-root="$PSScriptRoot/../e2e-assets/ci-skipped-ports" --binarysource=clear --ci-baseline="$PSScriptRoot/../e2e-assets/ci-skipped-ports/baseline.fail.txt" Throw-IfFailed if (-not ($Output -match 'always-built:cross: \*:')) { From 063f0b8a368fc8dfe89844d14be3a5e606fc924f Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Wed, 3 Dec 2025 17:59:50 -0800 Subject: [PATCH 09/13] More arm64-linux. --- azure-pipelines/e2e-assets/ci-skipped-features/baseline.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/azure-pipelines/e2e-assets/ci-skipped-features/baseline.txt b/azure-pipelines/e2e-assets/ci-skipped-features/baseline.txt index 79248be831..aeb2e64bc1 100644 --- a/azure-pipelines/e2e-assets/ci-skipped-features/baseline.txt +++ b/azure-pipelines/e2e-assets/ci-skipped-features/baseline.txt @@ -1,4 +1,5 @@ skipped-depends:arm64-osx=skip skipped-depends:x64-linux=skip +skipped-depends:arm64-linux=skip skipped-depends:x64-windows=skip skipped-depends:x86-windows=skip From 2e3f9685612b81cd07d940bfff155f00e8d498ac Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Thu, 4 Dec 2025 11:11:49 -0800 Subject: [PATCH 10/13] more more arm64 linux --- .../e2e-ports/hash-additional/hash-additional-e2e.cmake | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/azure-pipelines/e2e-ports/hash-additional/hash-additional-e2e.cmake b/azure-pipelines/e2e-ports/hash-additional/hash-additional-e2e.cmake index 44245302ab..6006cdeb9a 100644 --- a/azure-pipelines/e2e-ports/hash-additional/hash-additional-e2e.cmake +++ b/azure-pipelines/e2e-ports/hash-additional/hash-additional-e2e.cmake @@ -1,4 +1,8 @@ -set(VCPKG_TARGET_ARCHITECTURE x64) +if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64") + set(VCPKG_TARGET_ARCHITECTURE arm64) +else() + set(VCPKG_TARGET_ARCHITECTURE x64) +endif() set(VCPKG_CRT_LINKAGE dynamic) set(VCPKG_LIBRARY_LINKAGE dynamic) if(APPLE) From e2e1a8ef690969df6b6a4873487677494c9db2d2 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Thu, 4 Dec 2025 12:01:17 -0800 Subject: [PATCH 11/13] Fix hash-additional-e2e for arm64-linux. --- .../additional_abi_file.txt | 1 - .../hash-additional-e2e.cmake | 9 ------- .../vcpkg-test-hash-additional/portfile.cmake | 3 --- .../vcpkg-test-hash-additional/vcpkg.json | 5 ---- .../hash-additional/hash-additional-e2e.cmake | 13 ---------- .../vcpkg-test-hash-additional/portfile.cmake | 7 +++--- .../end-to-end-tests-dir/hash-additional.ps1 | 25 +++++++++++++++++-- 7 files changed, 27 insertions(+), 36 deletions(-) delete mode 100644 azure-pipelines/e2e-ports/hash-additional-fail/additional_abi_file.txt delete mode 100644 azure-pipelines/e2e-ports/hash-additional-fail/hash-additional-e2e.cmake delete mode 100644 azure-pipelines/e2e-ports/hash-additional-fail/vcpkg-test-hash-additional/portfile.cmake delete mode 100644 azure-pipelines/e2e-ports/hash-additional-fail/vcpkg-test-hash-additional/vcpkg.json delete mode 100644 azure-pipelines/e2e-ports/hash-additional/hash-additional-e2e.cmake diff --git a/azure-pipelines/e2e-ports/hash-additional-fail/additional_abi_file.txt b/azure-pipelines/e2e-ports/hash-additional-fail/additional_abi_file.txt deleted file mode 100644 index 06a80ccf08..0000000000 --- a/azure-pipelines/e2e-ports/hash-additional-fail/additional_abi_file.txt +++ /dev/null @@ -1 +0,0 @@ -Just for testing! \ No newline at end of file diff --git a/azure-pipelines/e2e-ports/hash-additional-fail/hash-additional-e2e.cmake b/azure-pipelines/e2e-ports/hash-additional-fail/hash-additional-e2e.cmake deleted file mode 100644 index 423af3ed52..0000000000 --- a/azure-pipelines/e2e-ports/hash-additional-fail/hash-additional-e2e.cmake +++ /dev/null @@ -1,9 +0,0 @@ -set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE dynamic) -if(APPLE) -set(VCPKG_CMAKE_SYSTEM_NAME Darwin) -elseif(UNIX) -set(VCPKG_CMAKE_SYSTEM_NAME Linux) -endif() -set(VCPKG_HASH_ADDITIONAL_FILES "additional_abi_file.txt") # relatives path should fail. diff --git a/azure-pipelines/e2e-ports/hash-additional-fail/vcpkg-test-hash-additional/portfile.cmake b/azure-pipelines/e2e-ports/hash-additional-fail/vcpkg-test-hash-additional/portfile.cmake deleted file mode 100644 index 295b336cd4..0000000000 --- a/azure-pipelines/e2e-ports/hash-additional-fail/vcpkg-test-hash-additional/portfile.cmake +++ /dev/null @@ -1,3 +0,0 @@ -# should fail earlier than running the portfile - -set(VCPKG_POLICY_EMPTY_PACKAGE enabled) diff --git a/azure-pipelines/e2e-ports/hash-additional-fail/vcpkg-test-hash-additional/vcpkg.json b/azure-pipelines/e2e-ports/hash-additional-fail/vcpkg-test-hash-additional/vcpkg.json deleted file mode 100644 index 02eab5fa85..0000000000 --- a/azure-pipelines/e2e-ports/hash-additional-fail/vcpkg-test-hash-additional/vcpkg.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "vcpkg-test-hash-additional", - "version": "0", - "description": "" -} diff --git a/azure-pipelines/e2e-ports/hash-additional/hash-additional-e2e.cmake b/azure-pipelines/e2e-ports/hash-additional/hash-additional-e2e.cmake deleted file mode 100644 index 6006cdeb9a..0000000000 --- a/azure-pipelines/e2e-ports/hash-additional/hash-additional-e2e.cmake +++ /dev/null @@ -1,13 +0,0 @@ -if(CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "aarch64" OR CMAKE_HOST_SYSTEM_PROCESSOR STREQUAL "arm64") - set(VCPKG_TARGET_ARCHITECTURE arm64) -else() - set(VCPKG_TARGET_ARCHITECTURE x64) -endif() -set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE dynamic) -if(APPLE) -set(VCPKG_CMAKE_SYSTEM_NAME Darwin) -elseif(UNIX) -set(VCPKG_CMAKE_SYSTEM_NAME Linux) -endif() -set(VCPKG_HASH_ADDITIONAL_FILES "${CMAKE_CURRENT_LIST_DIR}/additional_abi_file.txt") diff --git a/azure-pipelines/e2e-ports/hash-additional/vcpkg-test-hash-additional/portfile.cmake b/azure-pipelines/e2e-ports/hash-additional/vcpkg-test-hash-additional/portfile.cmake index ef699645c3..a93d39acf1 100644 --- a/azure-pipelines/e2e-ports/hash-additional/vcpkg-test-hash-additional/portfile.cmake +++ b/azure-pipelines/e2e-ports/hash-additional/vcpkg-test-hash-additional/portfile.cmake @@ -1,12 +1,13 @@ -file(STRINGS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}.vcpkg_abi_info.txt" lines) +set(ABI_FILE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}.vcpkg_abi_info.txt") +file(STRINGS "${ABI_FILE}" lines) list(GET lines 0 first_line) set(expected "additional_file_0 61ba0c7fc1f696e28c1b7aa9460980a571025ff8c97bb90a57e990463aa25660") if(first_line STREQUAL "${expected}") - message(STATUS "Test succesful!") + message(STATUS "Test successful!") else() - message(FATAL_ERROR "First line in abi info is not the additional file to be hashed but:\n first_line: '${first_line}'\n expected: '${expected}' ") + message(FATAL_ERROR "First line in abi info ( ${ABI_FILE} ) is not the additional file to be hashed but:\n first_line: '${first_line}'\n expected: '${expected}' ") endif() set(VCPKG_POLICY_EMPTY_PACKAGE enabled) diff --git a/azure-pipelines/end-to-end-tests-dir/hash-additional.ps1 b/azure-pipelines/end-to-end-tests-dir/hash-additional.ps1 index 56837a19c3..4aa35f21f7 100644 --- a/azure-pipelines/end-to-end-tests-dir/hash-additional.ps1 +++ b/azure-pipelines/end-to-end-tests-dir/hash-additional.ps1 @@ -1,9 +1,30 @@ . $PSScriptRoot/../end-to-end-tests-prelude.ps1 -Run-Vcpkg @directoryArgs "--overlay-triplets=$PSScriptRoot/../e2e-ports/hash-additional" "--overlay-ports=$PSScriptRoot/../e2e-ports/hash-additional" x-set-installed vcpkg-test-hash-additional --triplet hash-additional-e2e --binarysource=clear +$tripletFile = "$env:VCPKG_ROOT/triplets/$Triplet.cmake"; +if (-not (Test-Path $tripletFile)) { + $tripletFile = "$env:VCPKG_ROOT/triplets/community/$Triplet.cmake" +} + +$hostTripletContent = Get-Content $tripletFile -Raw +$tripletContent = "$hostTripletContent`n" +$tripletContent += @" +set(VCPKG_HASH_ADDITIONAL_FILES "`${CMAKE_CURRENT_LIST_DIR}/additional_abi_file.txt") +"@ +$tripletContent += "`n" +Set-Content -Path "$TestingRoot/hash-additional-e2e.cmake" -Value $tripletContent -Encoding utf8NoBOM +Copy-Item "$PSScriptRoot/../e2e-ports/hash-additional/additional_abi_file.txt" "$TestingRoot/additional_abi_file.txt" -Force + +Run-Vcpkg @directoryArgs "--overlay-triplets=$TestingRoot" "--overlay-ports=$PSScriptRoot/../e2e-ports/hash-additional" x-set-installed vcpkg-test-hash-additional --triplet hash-additional-e2e --binarysource=clear Throw-IfFailed -$output = Run-VcpkgAndCaptureOutput @directoryArgs "--overlay-triplets=$PSScriptRoot/../e2e-ports/hash-additional-fail" "--overlay-ports=$PSScriptRoot/../e2e-ports/hash-additional-fail" x-set-installed vcpkg-test-hash-additional --triplet hash-additional-e2e --binarysource=clear +$tripletContent = "$hostTripletContent`n" +$tripletContent += @" +set(VCPKG_HASH_ADDITIONAL_FILES "additional_abi_file.txt") # relatives path should fail +"@ +$tripletContent += "`n" +Set-Content -Path "$TestingRoot/hash-additional-e2e.cmake" -Value $tripletContent + +$output = Run-VcpkgAndCaptureOutput @directoryArgs "--overlay-triplets=$TestingRoot" "--overlay-ports=$PSScriptRoot/../e2e-ports" x-set-installed vcpkg-hello-world-1 --triplet hash-additional-e2e --binarysource=clear Throw-IfNotFailed if ($output -notmatch "Variable VCPKG_HASH_ADDITIONAL_FILES contains invalid file path") { From e2f59c3a225e67311cb6fbd437a0c8a977547b5b Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Thu, 4 Dec 2025 13:14:54 -0800 Subject: [PATCH 12/13] more more more more arm64-linux --- .../fancy-config-embedded-triplet.cmake | 18 --------- .../my-triplets/fancy-triplet.cmake | 18 --------- azure-pipelines/end-to-end-tests-dir/ci.ps1 | 11 +---- .../end-to-end-tests-dir/hash-additional.ps1 | 5 --- .../end-to-end-tests-dir/overlays.ps1 | 40 ++++++++++++------- azure-pipelines/end-to-end-tests-prelude.ps1 | 5 +++ 6 files changed, 33 insertions(+), 64 deletions(-) delete mode 100644 azure-pipelines/e2e-projects/overlays-project-config-embedded/my-triplets/fancy-config-embedded-triplet.cmake delete mode 100644 azure-pipelines/e2e-projects/overlays-project-with-config/my-triplets/fancy-triplet.cmake diff --git a/azure-pipelines/e2e-projects/overlays-project-config-embedded/my-triplets/fancy-config-embedded-triplet.cmake b/azure-pipelines/e2e-projects/overlays-project-config-embedded/my-triplets/fancy-config-embedded-triplet.cmake deleted file mode 100644 index 91a235b525..0000000000 --- a/azure-pipelines/e2e-projects/overlays-project-config-embedded/my-triplets/fancy-config-embedded-triplet.cmake +++ /dev/null @@ -1,18 +0,0 @@ -if(CMAKE_HOST_WIN32) -set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE static) -set(VCPKG_LIBRARY_LINKAGE dynamic) -elseif(CMAKE_HOST_APPLE) -set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE static) - -set(VCPKG_CMAKE_SYSTEM_NAME Darwin) -set(VCPKG_OSX_ARCHITECTURES x86_64) -else() -set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE static) - -set(VCPKG_CMAKE_SYSTEM_NAME Linux) -endif() diff --git a/azure-pipelines/e2e-projects/overlays-project-with-config/my-triplets/fancy-triplet.cmake b/azure-pipelines/e2e-projects/overlays-project-with-config/my-triplets/fancy-triplet.cmake deleted file mode 100644 index 91a235b525..0000000000 --- a/azure-pipelines/e2e-projects/overlays-project-with-config/my-triplets/fancy-triplet.cmake +++ /dev/null @@ -1,18 +0,0 @@ -if(CMAKE_HOST_WIN32) -set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE static) -set(VCPKG_LIBRARY_LINKAGE dynamic) -elseif(CMAKE_HOST_APPLE) -set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE static) - -set(VCPKG_CMAKE_SYSTEM_NAME Darwin) -set(VCPKG_OSX_ARCHITECTURES x86_64) -else() -set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE static) - -set(VCPKG_CMAKE_SYSTEM_NAME Linux) -endif() diff --git a/azure-pipelines/end-to-end-tests-dir/ci.ps1 b/azure-pipelines/end-to-end-tests-dir/ci.ps1 index 4720a09d88..7c7ec9fff7 100644 --- a/azure-pipelines/end-to-end-tests-dir/ci.ps1 +++ b/azure-pipelines/end-to-end-tests-dir/ci.ps1 @@ -143,15 +143,8 @@ if (-not ($Output -match 'maybe-cross-cascade:[^:]+: cascade\n')) { throw 'did not identify maybe-cross-cascade as cascaded' } # test cross build; skipping always-skip and host maybe-skip -Remove-Item -Recurse -Force $installRoot -ErrorAction SilentlyContinue -New-Item -ItemType Directory -Path $installRoot -Force | Out-Null -$tripletFile = "$env:VCPKG_ROOT/triplets/$Triplet.cmake"; -if (-not (Test-Path $tripletFile)) { - $tripletFile = "$env:VCPKG_ROOT/triplets/community/$Triplet.cmake" -} - -Copy-Item $tripletFile "$installRoot/cross.cmake" -$Output = Run-VcpkgAndCaptureOutput ci --dry-run --skip-failures --triplet cross --overlay-triplets $installRoot @directoryArgs --x-builtin-ports-root="$PSScriptRoot/../e2e-assets/ci-skipped-ports" --binarysource=clear --ci-baseline="$PSScriptRoot/../e2e-assets/ci-skipped-ports/baseline.fail.txt" +Copy-Item $tripletFile "$TestingRoot/cross.cmake" +$Output = Run-VcpkgAndCaptureOutput ci --dry-run --skip-failures --triplet cross --overlay-triplets $TestingRoot @directoryArgs --x-builtin-ports-root="$PSScriptRoot/../e2e-assets/ci-skipped-ports" --binarysource=clear --ci-baseline="$PSScriptRoot/../e2e-assets/ci-skipped-ports/baseline.fail.txt" Throw-IfFailed if (-not ($Output -match 'always-built:cross: \*:')) { throw 'did not attempt to build always-built [cross build]' diff --git a/azure-pipelines/end-to-end-tests-dir/hash-additional.ps1 b/azure-pipelines/end-to-end-tests-dir/hash-additional.ps1 index 4aa35f21f7..e77d63ada5 100644 --- a/azure-pipelines/end-to-end-tests-dir/hash-additional.ps1 +++ b/azure-pipelines/end-to-end-tests-dir/hash-additional.ps1 @@ -1,10 +1,5 @@ . $PSScriptRoot/../end-to-end-tests-prelude.ps1 -$tripletFile = "$env:VCPKG_ROOT/triplets/$Triplet.cmake"; -if (-not (Test-Path $tripletFile)) { - $tripletFile = "$env:VCPKG_ROOT/triplets/community/$Triplet.cmake" -} - $hostTripletContent = Get-Content $tripletFile -Raw $tripletContent = "$hostTripletContent`n" $tripletContent += @" diff --git a/azure-pipelines/end-to-end-tests-dir/overlays.ps1 b/azure-pipelines/end-to-end-tests-dir/overlays.ps1 index 74da2f3721..21f06708d1 100644 --- a/azure-pipelines/end-to-end-tests-dir/overlays.ps1 +++ b/azure-pipelines/end-to-end-tests-dir/overlays.ps1 @@ -4,13 +4,22 @@ $vcpkgDir = Join-Path -Path $installRoot -ChildPath "vcpkg" $manifestInfoPath = Join-Path -Path $vcpkgDir -ChildPath "manifest-info.json" # Tests a simple project with overlay ports and triplets configured on a vcpkg-configuration.json file -Copy-Item -Recurse -LiteralPath @( - "$PSScriptRoot/../e2e-projects/overlays-malformed-shadowing", - "$PSScriptRoot/../e2e-projects/overlays-malformed-shadowing-builtin", - "$PSScriptRoot/../e2e-projects/overlays-project-config-embedded", - "$PSScriptRoot/../e2e-projects/overlays-project-with-config" - ) $TestingRoot +function Copy-TestItems { + Copy-Item -Recurse -LiteralPath @( + "$PSScriptRoot/../e2e-projects/overlays-malformed-shadowing", + "$PSScriptRoot/../e2e-projects/overlays-malformed-shadowing-builtin", + "$PSScriptRoot/../e2e-projects/overlays-project-config-embedded", + "$PSScriptRoot/../e2e-projects/overlays-project-with-config" + ) $TestingRoot + + New-Item -ItemType Directory -Path "$TestingRoot/overlays-project-with-config/my-triplets" -Force | Out-Null + Copy-Item $tripletFile "$TestingRoot/overlays-project-with-config/my-triplets/fancy-triplet.cmake" + + New-Item -ItemType Directory -Path "$TestingRoot/overlays-project-config-embedded/my-triplets" -Force | Out-Null + Copy-Item $tripletFile "$TestingRoot/overlays-project-config-embedded/my-triplets/fancy-config-embedded-triplet.cmake" +} +Copy-TestItems $manifestRoot = "$TestingRoot/overlays-project-with-config" $env:VCPKG_OVERLAY_PORTS = "$manifestRoot/env-overlays" @@ -99,31 +108,34 @@ The manifest directory ($canonicalManifestRoot) cannot be the same as a director # Test that removals can happen without the overlay triplets Refresh-TestRoot +Copy-TestItems Run-Vcpkg install another-vcpkg-empty-port:fancy-triplet ` - --overlay-ports=$PSScriptRoot/../e2e-projects/overlays-project-with-config/cli-overlays ` - --overlay-triplets=$PSScriptRoot/../e2e-projects/overlays-project-with-config/my-triplets + --overlay-ports=$TestingRoot/overlays-project-with-config/cli-overlays ` + --overlay-triplets=$TestingRoot/overlays-project-with-config/my-triplets Throw-IfFailed Run-Vcpkg remove another-vcpkg-empty-port:fancy-triplet ` - --overlay-ports=$PSScriptRoot/../e2e-projects/overlays-project-with-config/cli-overlays + --overlay-ports=$TestingRoot/overlays-project-with-config/cli-overlays Throw-IfFailed # ... or ports Refresh-TestRoot +Copy-TestItems Run-Vcpkg install another-vcpkg-empty-port:fancy-triplet ` - --overlay-ports=$PSScriptRoot/../e2e-projects/overlays-project-with-config/cli-overlays ` - --overlay-triplets=$PSScriptRoot/../e2e-projects/overlays-project-with-config/my-triplets + --overlay-ports=$TestingRoot/overlays-project-with-config/cli-overlays ` + --overlay-triplets=$TestingRoot/overlays-project-with-config/my-triplets Throw-IfFailed Run-Vcpkg remove another-vcpkg-empty-port:fancy-triplet ` - --overlay-triplets=$PSScriptRoot/../e2e-projects/overlays-project-with-config/my-triplets + --overlay-triplets=$TestingRoot/overlays-project-with-config/my-triplets Throw-IfFailed # ... or either Refresh-TestRoot +Copy-TestItems Run-Vcpkg install another-vcpkg-empty-port:fancy-triplet ` - --overlay-ports=$PSScriptRoot/../e2e-projects/overlays-project-with-config/cli-overlays ` - --overlay-triplets=$PSScriptRoot/../e2e-projects/overlays-project-with-config/my-triplets + --overlay-ports=$TestingRoot/overlays-project-with-config/cli-overlays ` + --overlay-triplets=$TestingRoot/overlays-project-with-config/my-triplets Throw-IfFailed Run-Vcpkg remove another-vcpkg-empty-port:fancy-triplet diff --git a/azure-pipelines/end-to-end-tests-prelude.ps1 b/azure-pipelines/end-to-end-tests-prelude.ps1 index 569eadec34..f5a024785a 100644 --- a/azure-pipelines/end-to-end-tests-prelude.ps1 +++ b/azure-pipelines/end-to-end-tests-prelude.ps1 @@ -9,6 +9,11 @@ $VersionFilesRoot = Join-Path $TestingRoot 'version-test' $TestDownloadsRoot = Join-Path $TestingRoot 'downloads' $AssetCache = Join-Path $TestingRoot 'asset-cache' +$tripletFile = "$env:VCPKG_ROOT/triplets/$Triplet.cmake"; +if (-not (Test-Path $tripletFile)) { + $tripletFile = "$env:VCPKG_ROOT/triplets/community/$Triplet.cmake" +} + $directoryArgs = @( "--x-buildtrees-root=$buildtreesRoot", "--x-install-root=$installRoot", From bf7ce1358e7b5468c8d73f3fea462cf76d9374a2 Mon Sep 17 00:00:00 2001 From: Billy Robert O'Neal III Date: Thu, 4 Dec 2025 14:24:22 -0800 Subject: [PATCH 13/13] I guess we're going to keep going. --- .../post-portfile-includes.cmake | 9 ------ .../portfile.cmake | 1 - .../vcpkg-post-portfile-includes/vcpkg.json | 5 ---- .../invalid.extension | 0 .../post-portfile-includes.ps1 | 30 +++++++++++++++---- 5 files changed, 24 insertions(+), 21 deletions(-) delete mode 100644 azure-pipelines/e2e-ports/post-portfile-includes-fail/post-portfile-includes.cmake delete mode 100644 azure-pipelines/e2e-ports/post-portfile-includes-fail/vcpkg-post-portfile-includes/portfile.cmake delete mode 100644 azure-pipelines/e2e-ports/post-portfile-includes-fail/vcpkg-post-portfile-includes/vcpkg.json rename azure-pipelines/e2e-ports/{post-portfile-includes-fail => post-portfile-includes}/invalid.extension (100%) diff --git a/azure-pipelines/e2e-ports/post-portfile-includes-fail/post-portfile-includes.cmake b/azure-pipelines/e2e-ports/post-portfile-includes-fail/post-portfile-includes.cmake deleted file mode 100644 index b1c0ae4cc5..0000000000 --- a/azure-pipelines/e2e-ports/post-portfile-includes-fail/post-portfile-includes.cmake +++ /dev/null @@ -1,9 +0,0 @@ -set(VCPKG_TARGET_ARCHITECTURE x64) -set(VCPKG_CRT_LINKAGE dynamic) -set(VCPKG_LIBRARY_LINKAGE dynamic) -if(APPLE) -set(VCPKG_CMAKE_SYSTEM_NAME Darwin) -elseif(UNIX) -set(VCPKG_CMAKE_SYSTEM_NAME Linux) -endif() -set(VCPKG_POST_PORTFILE_INCLUDES "${CMAKE_CURRENT_LIST_DIR}/invalid.extension") diff --git a/azure-pipelines/e2e-ports/post-portfile-includes-fail/vcpkg-post-portfile-includes/portfile.cmake b/azure-pipelines/e2e-ports/post-portfile-includes-fail/vcpkg-post-portfile-includes/portfile.cmake deleted file mode 100644 index 065116c276..0000000000 --- a/azure-pipelines/e2e-ports/post-portfile-includes-fail/vcpkg-post-portfile-includes/portfile.cmake +++ /dev/null @@ -1 +0,0 @@ -set(VCPKG_POLICY_EMPTY_PACKAGE enabled) diff --git a/azure-pipelines/e2e-ports/post-portfile-includes-fail/vcpkg-post-portfile-includes/vcpkg.json b/azure-pipelines/e2e-ports/post-portfile-includes-fail/vcpkg-post-portfile-includes/vcpkg.json deleted file mode 100644 index 415862a95c..0000000000 --- a/azure-pipelines/e2e-ports/post-portfile-includes-fail/vcpkg-post-portfile-includes/vcpkg.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "vcpkg-post-portfile-includes", - "version": "0", - "description": "A port to test post portfile includes" -} diff --git a/azure-pipelines/e2e-ports/post-portfile-includes-fail/invalid.extension b/azure-pipelines/e2e-ports/post-portfile-includes/invalid.extension similarity index 100% rename from azure-pipelines/e2e-ports/post-portfile-includes-fail/invalid.extension rename to azure-pipelines/e2e-ports/post-portfile-includes/invalid.extension diff --git a/azure-pipelines/end-to-end-tests-dir/post-portfile-includes.ps1 b/azure-pipelines/end-to-end-tests-dir/post-portfile-includes.ps1 index a13e2aa061..4b99c8f100 100644 --- a/azure-pipelines/end-to-end-tests-dir/post-portfile-includes.ps1 +++ b/azure-pipelines/end-to-end-tests-dir/post-portfile-includes.ps1 @@ -1,8 +1,26 @@ . $PSScriptRoot/../end-to-end-tests-prelude.ps1 +Copy-Item -LiteralPath "$PSScriptRoot/../e2e-ports/post-portfile-includes" $TestingRoot -Recurse + +$hostTripletContent = Get-Content $tripletFile -Raw +$tripletContent = "$hostTripletContent`n" +$tripletContent += @" +set(VCPKG_POST_PORTFILE_INCLUDES "`${CMAKE_CURRENT_LIST_DIR}/test1.cmake;`${CMAKE_CURRENT_LIST_DIR}/test2.cmake") +"@ +$tripletContent += "`n" +Set-Content -Path "$TestingRoot/post-portfile-includes/post-portfile-includes.cmake" -Value $tripletContent -Encoding utf8NoBOM + +$tripletContent = "$hostTripletContent`n" +$tripletContent += @" +set(VCPKG_POST_PORTFILE_INCLUDES "`${CMAKE_CURRENT_LIST_DIR}/invalid.extension") +"@ +$tripletContent += "`n" +Set-Content -Path "$TestingRoot/post-portfile-includes/post-portfile-includes-fail.cmake" -Value $tripletContent -Encoding utf8NoBOM + + Run-Vcpkg @directoryArgs ` - "--overlay-triplets=$PSScriptRoot/../e2e-ports/post-portfile-includes" ` - "--overlay-ports=$PSScriptRoot/../e2e-ports/post-portfile-includes" ` + "--overlay-triplets=$TestingRoot/post-portfile-includes" ` + "--overlay-ports=$TestingRoot/post-portfile-includes" ` x-set-installed ` vcpkg-post-portfile-includes ` --host-triplet post-portfile-includes ` @@ -10,11 +28,11 @@ Run-Vcpkg @directoryArgs ` Throw-IfFailed $output = Run-VcpkgAndCaptureOutput @directoryArgs ` - "--overlay-triplets=$PSScriptRoot/../e2e-ports/post-portfile-includes-fail" ` - "--overlay-ports=$PSScriptRoot/../e2e-ports/post-portfile-includes-fail" ` + "--overlay-triplets=$TestingRoot/post-portfile-includes" ` + "--overlay-ports=$PSScriptRoot/../e2e-ports" ` x-set-installed ` - vcpkg-post-portfile-includes ` - --host-triplet post-portfile-includes ` + vcpkg-hello-world-1 ` + --host-triplet post-portfile-includes-fail ` --binarysource=clear Throw-IfNotFailed if ($output -notmatch "Variable VCPKG_POST_PORTFILE_INCLUDES contains invalid file path")