From 2902fe529787679fefd18ec93c1b19888703677a Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Tue, 10 Feb 2026 11:46:36 -0800 Subject: [PATCH 1/5] Improved VS 2026 support --- build/CompilerAndLinker.cmake | 4 ++++ build/downloadbuild.ps1 | 10 +++++----- build/promotenuget.ps1 | 2 +- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/build/CompilerAndLinker.cmake b/build/CompilerAndLinker.cmake index c2220f536..72ff2a914 100644 --- a/build/CompilerAndLinker.cmake +++ b/build/CompilerAndLinker.cmake @@ -205,6 +205,10 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") list(APPEND COMPILER_SWITCHES $<$:/Zc:templateScope>) endif() endif() + + if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.50) + list(APPEND COMPILER_SWITCHES /Zc:u8EscapeEncoding) + endif() endif() #--- Windows API Family diff --git a/build/downloadbuild.ps1 b/build/downloadbuild.ps1 index 88b613350..5e68125cc 100644 --- a/build/downloadbuild.ps1 +++ b/build/downloadbuild.ps1 @@ -55,7 +55,7 @@ try } catch { - Write-Error "##[error]Build $BuildId not found!" -ErrorAction Continue + Write-Error "##[error]Build $BuildId not found!" -ErrorAction Stop } $ProgressPreference = 'SilentlyContinue' @@ -85,7 +85,7 @@ foreach ($artifact in $responsearm64) { } catch { - Write-Error "##[error]Failed to download $artifactName!" -ErrorAction Continue + Write-Error "##[error]Failed to download $artifactName!" -ErrorAction Stop } try @@ -95,7 +95,7 @@ foreach ($artifact in $responsearm64) { } catch { - Write-Error "##[error]Failed to extract $artifactName!" -ErrorAction Continue + Write-Error "##[error]Failed to extract $artifactName!" -ErrorAction Stop } } @@ -112,7 +112,7 @@ foreach ($artifact in $responseamd64) { } catch { - Write-Error "##[error]Failed to download $artifactName!" -ErrorAction Continue + Write-Error "##[error]Failed to download $artifactName!" -ErrorAction Stop } try @@ -122,7 +122,7 @@ foreach ($artifact in $responseamd64) { } catch { - Write-Error "##[error]Failed to extract $artifactName!" -ErrorAction Continue + Write-Error "##[error]Failed to extract $artifactName!" -ErrorAction Stop } } diff --git a/build/promotenuget.ps1 b/build/promotenuget.ps1 index e6c20839c..fb24b20d9 100644 --- a/build/promotenuget.ps1 +++ b/build/promotenuget.ps1 @@ -33,7 +33,7 @@ param( # Parse PAT if ($PAT.Length -eq 0) { - $PAT = $env:ADO_PERSONAL_ACCESS_TOKEN + $PAT = [string]$env:ADO_PERSONAL_ACCESS_TOKEN if ($PAT.Length -eq 0) { Write-Error "##[error]This script requires a valid ADO Personal Access Token!" -ErrorAction Stop From f45ee0f419d2a0b2d36e6795694c8dd6a08ceacb Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Tue, 10 Feb 2026 20:58:45 -0800 Subject: [PATCH 2/5] Add VS 2026 slnx/vcxproj --- DirectXTK_Desktop_2026.slnx | 18 + DirectXTK_Desktop_2026.vcxproj | 455 +++++++++++++++++++ DirectXTK_Desktop_2026.vcxproj.filters | 363 +++++++++++++++ XWBTool/xwbtool_Desktop_2026.vcxproj | 270 +++++++++++ XWBTool/xwbtool_Desktop_2026.vcxproj.filters | 26 ++ 5 files changed, 1132 insertions(+) create mode 100644 DirectXTK_Desktop_2026.slnx create mode 100644 DirectXTK_Desktop_2026.vcxproj create mode 100644 DirectXTK_Desktop_2026.vcxproj.filters create mode 100644 XWBTool/xwbtool_Desktop_2026.vcxproj create mode 100644 XWBTool/xwbtool_Desktop_2026.vcxproj.filters diff --git a/DirectXTK_Desktop_2026.slnx b/DirectXTK_Desktop_2026.slnx new file mode 100644 index 000000000..18982815e --- /dev/null +++ b/DirectXTK_Desktop_2026.slnx @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/DirectXTK_Desktop_2026.vcxproj b/DirectXTK_Desktop_2026.vcxproj new file mode 100644 index 000000000..bf6e87bae --- /dev/null +++ b/DirectXTK_Desktop_2026.vcxproj @@ -0,0 +1,455 @@ + + + + + Debug + ARM64 + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM64 + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Create + Create + Create + Create + Create + Create + + + + + + + + + + + + + + + + + + + + + + + + + + + Document + + + + + Document + + + Document + + + Document + + + Document + + + Document + + + Document + + + Document + + + Document + + + + + Document + + + + + Document + + + Document + + + + + Document + + + + + Document + + + + {E0B52AE7-E160-4D32-BF3F-910B785E5A8E} + Win32Proj + DirectXTK + 10.0 + x64 + + + + StaticLibrary + true + v145 + Unicode + + + StaticLibrary + true + v145 + Unicode + + + StaticLibrary + true + v145 + Unicode + + + StaticLibrary + false + v145 + Unicode + + + StaticLibrary + false + v145 + Unicode + + + StaticLibrary + false + v145 + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + DirectXTK + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + DirectXTK + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + DirectXTK + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + DirectXTK + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + DirectXTK + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + DirectXTK + + + Bin\Desktop_2026\$(Platform)\$(Configuration)Spectre\ + Bin\Desktop_2026\$(Platform)\$(Configuration)Spectre\ + DirectXTK_Spectre + + + + Use + EnableAllWarnings + Disabled + _WIN32_WINNT=0x0A00;WIN32;_DEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + pch.h + $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories) + Fast + $(IntDir)$(TargetName).pdb + true + true + /Zc:__cplusplus %(AdditionalOptions) + ProgramDatabase + false + Level4 + + + Windows + true + + + + + Use + EnableAllWarnings + Disabled + _WIN32_WINNT=0x0A00;WIN32;_DEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + pch.h + $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories) + Fast + $(IntDir)$(TargetName).pdb + true + true + /Zc:__cplusplus %(AdditionalOptions) + ProgramDatabase + false + Level4 + + + Windows + true + + + + + Use + EnableAllWarnings + Disabled + _WIN32_WINNT=0x0A00;WIN32;_DEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + pch.h + $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories) + Fast + StreamingSIMDExtensions2 + $(IntDir)$(TargetName).pdb + true + true + /Zc:__cplusplus %(AdditionalOptions) + ProgramDatabase + false + Level4 + + + Windows + true + + + + + EnableAllWarnings + Use + MaxSpeed + _WIN32_WINNT=0x0A00;WIN32;NDEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + pch.h + $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories) + Fast + $(IntDir)$(TargetName).pdb + true + true + /Zc:__cplusplus %(AdditionalOptions) + Level4 + true + + + Windows + true + true + true + + + + + EnableAllWarnings + Use + MaxSpeed + _WIN32_WINNT=0x0A00;WIN32;NDEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + pch.h + $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories) + Fast + $(IntDir)$(TargetName).pdb + true + true + /Zc:__cplusplus %(AdditionalOptions) + Level4 + true + + + Windows + true + true + true + + + + + EnableAllWarnings + Use + MaxSpeed + _WIN32_WINNT=0x0A00;WIN32;NDEBUG;_LIB;_CRT_STDIO_ARBITRARY_WIDE_SPECIFIERS;%(PreprocessorDefinitions) + pch.h + $(ProjectDir)Inc;$(ProjectDir)Src;$(ProjectDir)Src\Shaders\Compiled;%(AdditionalIncludeDirectories) + Fast + StreamingSIMDExtensions2 + $(IntDir)$(TargetName).pdb + true + true + /Zc:__cplusplus %(AdditionalOptions) + Level4 + + + Windows + true + true + true + + + + + + + + <_ATGFXCPath>$(WindowsSDK_ExecutablePath_x64.Split(';')[0]) + <_ATGFXCPath>$(_ATGFXCPath.Replace("x64","")) + <_ATGFXCPath Condition="'$(_ATGFXCPath)' != '' and !HasTrailingSlash('$(_ATGFXCPath)')">$(_ATGFXCPath)\ + <_ATGFXCVer>$([System.Text.RegularExpressions.Regex]::Match($(_ATGFXCPath), '10\.0\.\d+\.0')) + <_ATGFXCVer Condition="'$(_ATGFXCVer)' != '' and !HasTrailingSlash('$(_ATGFXCVer)')">$(_ATGFXCVer)\ + + + + <_ATGFXCPath /> + <_ATGFXCVer /> + + + + + <_ATGShaderHeaders Include="$(ProjectDir)src/Shaders/Compiled/*.inc" Exclude="$(ProjectDir)src/Shaders/Compiled/*Xbox*.inc" /> + <_ATGShaderSymbols Include="$(ProjectDir)src/Shaders/Compiled/*.pdb" Exclude="$(ProjectDir)src/Shaders/Compiled/*Xbox*.pdb" /> + + + + + \ No newline at end of file diff --git a/DirectXTK_Desktop_2026.vcxproj.filters b/DirectXTK_Desktop_2026.vcxproj.filters new file mode 100644 index 000000000..3eead7e89 --- /dev/null +++ b/DirectXTK_Desktop_2026.vcxproj.filters @@ -0,0 +1,363 @@ + + + + + {771f5f80-d173-49c3-8afb-790e8f7cb0ce} + + + {c52e19b6-8703-49a1-9b36-101a05b4745d} + + + {e07ba3bc-b69f-4ded-9ffa-3b47427e9fef} + + + {28e934ed-a6d7-4c30-b064-c72c50c99626} + + + {28d5fa16-99e2-471c-8cd8-2020e81f0024} + + + {34676173-31f5-4435-b90d-a0ad4f7d163c} + + + {5d47b946-09b9-4477-934f-ca45fba9845d} + + + + + Inc + + + Inc + + + Inc + + + Inc + + + Inc + + + Inc + + + Src + + + Src + + + Inc + + + Src + + + Inc + + + Inc + + + Inc + + + Inc + + + Inc + + + Inc + + + Audio + + + Audio + + + Audio + + + Audio + + + Inc\Shared + + + Inc\Shared + + + Inc\Shared + + + Inc\Shared + + + Inc\Shared + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Inc + + + Inc + + + Src\Shared + + + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Audio + + + Audio + + + Audio + + + Audio + + + Audio + + + Audio + + + Audio + + + Audio + + + Src + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Src\Shared + + + Src + + + Src + + + Src + + + Src + + + Src + + + Src + + + Audio + + + Src + + + Src + + + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders\Shared + + + Src\Shaders\Shared + + + Src\Shaders\Shared + + + Src\Shared + + + Src\Shaders + + + Src\Shaders + + + Src\Shaders\Shared + + + Src\Shaders + + + Src\Shaders\Shared + + + Src\Shaders + + + Src\Shaders\Shared + + + + Src\Shaders\Shared + + + \ No newline at end of file diff --git a/XWBTool/xwbtool_Desktop_2026.vcxproj b/XWBTool/xwbtool_Desktop_2026.vcxproj new file mode 100644 index 000000000..5b164ebea --- /dev/null +++ b/XWBTool/xwbtool_Desktop_2026.vcxproj @@ -0,0 +1,270 @@ + + + + + Debug + ARM64 + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM64 + + + Release + Win32 + + + Release + x64 + + + + {C7AB4186-54B2-4244-A533-77494763EA1D} + Win32Proj + XWBTool + 10.0 + + + + Application + true + v145 + Unicode + false + + + Application + true + v145 + Unicode + false + + + Application + true + v145 + Unicode + false + + + Application + false + v145 + Unicode + + + Application + false + v145 + Unicode + + + Application + false + v145 + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + XWBTool + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + XWBTool + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + XWBTool + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + XWBTool + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + XWBTool + + + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + Bin\Desktop_2026\$(Platform)\$(Configuration)\ + XWBTool + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions) + ..\Audio;..\Src;%(AdditionalIncludeDirectories) + true + false + /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions) + 26812 + ProgramDatabase + stdcpp17 + + + Console + true + true + kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies) + true + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions) + ..\Audio;..\Src;%(AdditionalIncludeDirectories) + true + false + /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions) + 26812 + ProgramDatabase + stdcpp17 + + + Console + true + kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies) + true + + + + + Level4 + Disabled + WIN32;_DEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions) + ..\Audio;..\Src;%(AdditionalIncludeDirectories) + true + false + /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions) + 26812 + ProgramDatabase + stdcpp17 + + + Console + true + kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies) + + + + + Level4 + MaxSpeed + WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions) + ..\Audio;..\Src;%(AdditionalIncludeDirectories) + Guard + true + false + /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions) + 26812 + stdcpp17 + + + Console + true + true + true + true + kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies) + true + + + + + Level4 + MaxSpeed + WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions) + ..\Audio;..\Src;%(AdditionalIncludeDirectories) + Guard + true + false + /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions) + 26812 + stdcpp17 + + + Console + true + true + true + kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies) + true + + + + + Level4 + MaxSpeed + WIN32;NDEBUG;_CONSOLE;_WIN32_WINNT=0x0A00;%(PreprocessorDefinitions) + ..\Audio;..\Src;%(AdditionalIncludeDirectories) + Guard + true + false + /Zc:__cplusplus /ZH:SHA_256 %(AdditionalOptions) + 26812 + stdcpp17 + + + Console + true + true + true + kernel32.lib;user32.lib;version.lib;%(AdditionalDependencies) + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/XWBTool/xwbtool_Desktop_2026.vcxproj.filters b/XWBTool/xwbtool_Desktop_2026.vcxproj.filters new file mode 100644 index 000000000..f38338629 --- /dev/null +++ b/XWBTool/xwbtool_Desktop_2026.vcxproj.filters @@ -0,0 +1,26 @@ + + + + + + + + + + + + + {b97e6e90-0253-4558-b6d8-ce1701c2ecb0} + + + + + Resource Files + + + + + Resource Files + + + \ No newline at end of file From fe724f2a7418c9aab2c4e8b1626a82df84ed8f05 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Tue, 10 Feb 2026 21:25:25 -0800 Subject: [PATCH 3/5] Add GHA for VS2026 --- .github/linters/actionlint.yml | 1 + .github/workflows/clangcl.yml | 144 +++++++++++++++++++++++++++++++++ .github/workflows/msbuild.yml | 24 +++++- .github/workflows/test.yml | 86 ++++++++++++++++---- .github/workflows/win10.yml | 77 ++++++++++++++---- 5 files changed, 302 insertions(+), 30 deletions(-) create mode 100644 .github/workflows/clangcl.yml diff --git a/.github/linters/actionlint.yml b/.github/linters/actionlint.yml index 8f70803a9..5a7201762 100644 --- a/.github/linters/actionlint.yml +++ b/.github/linters/actionlint.yml @@ -2,3 +2,4 @@ self-hosted-runner: # Workaround until linter is updated labels: - windows-11-arm + - windows-2025-vs2026 diff --git a/.github/workflows/clangcl.yml b/.github/workflows/clangcl.yml new file mode 100644 index 000000000..5c1866f7e --- /dev/null +++ b/.github/workflows/clangcl.yml @@ -0,0 +1,144 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# +# http://go.microsoft.com/fwlink/?LinkId=248929 + +name: 'CMake (clang-cl)' + +on: + push: + branches: "main" + paths-ignore: + - '*.md' + - LICENSE + - '.azuredevops/**' + - '.nuget/*' + - build/*.cmd + - build/*.json + - build/*.props + - build/*.ps1 + - build/*.targets + pull_request: + branches: "main" + paths-ignore: + - '*.md' + - LICENSE + - '.azuredevops/**' + - '.nuget/*' + - build/*.cmd + - build/*.json + - build/*.props + - build/*.ps1 + - build/*.targets + +permissions: + contents: read + +jobs: + build: + runs-on: windows-2022 + + strategy: + fail-fast: false + + matrix: + build_type: [x64-Debug-Win10-Clang, x64-Release-Win10-Clang] + arch: [amd64] + include: + - build_type: x86-Debug-Win10-Clang + arch: amd64_x86 + - build_type: x86-Release-Win10-Clang + arch: amd64_x86 + - build_type: arm64-Debug-Clang + arch: amd64_arm64 + - build_type: arm64-Release-Clang + arch: amd64_arm64 + + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Clone test repository + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + repository: walbourn/directxtktest + path: Tests + ref: main + + - name: 'Install Ninja' + run: choco install ninja + + - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 + with: + arch: ${{ matrix.arch }} + + - name: 'Configure CMake' + working-directory: ${{ github.workspace }} + run: > + cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=ON + + - name: 'Build' + working-directory: ${{ github.workspace }} + run: cmake --build out\build\${{ matrix.build_type }} + + - name: 'Clean up' + working-directory: ${{ github.workspace }} + run: Remove-Item -Path out -Recurse -Force + + - name: 'Configure CMake (DLL)' + working-directory: ${{ github.workspace }} + run: > + cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=ON + -DBUILD_SHARED_LIBS=ON + + - name: 'Build (DLL)' + working-directory: ${{ github.workspace }} + run: cmake --build out\build\${{ matrix.build_type }} + + build2026: + runs-on: windows-2025-vs2026 + + strategy: + fail-fast: false + + matrix: + build_type: [x64-Debug-Win10-Clang, x64-Release-Win10-Clang] + arch: [amd64] + include: + - build_type: x86-Debug-Win10-Clang + arch: amd64_x86 + - build_type: x86-Release-Win10-Clang + arch: amd64_x86 + - build_type: arm64-Debug-Clang + arch: amd64_arm64 + - build_type: arm64-Release-Clang + arch: amd64_arm64 + + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: 'Install Ninja' + run: choco install ninja + + - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 + with: + arch: ${{ matrix.arch }} + + - name: 'Configure CMake' + working-directory: ${{ github.workspace }} + run: cmake --preset=${{ matrix.build_type }} + + - name: 'Build' + working-directory: ${{ github.workspace }} + run: cmake --build out\build\${{ matrix.build_type }} + + - name: 'Clean up' + working-directory: ${{ github.workspace }} + run: Remove-Item -Path out -Recurse -Force + + - name: 'Configure CMake (DLL)' + working-directory: ${{ github.workspace }} + run: cmake --preset=${{ matrix.build_type }} -DBUILD_SHARED_LIBS=ON + + - name: 'Build (DLL)' + working-directory: ${{ github.workspace }} + run: cmake --build out\build\${{ matrix.build_type }} diff --git a/.github/workflows/msbuild.yml b/.github/workflows/msbuild.yml index 9a11d71c0..5241ad3c1 100644 --- a/.github/workflows/msbuild.yml +++ b/.github/workflows/msbuild.yml @@ -42,7 +42,7 @@ jobs: platform: ARM64 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Add MSBuild to PATH uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0 @@ -82,3 +82,25 @@ jobs: msbuild /m /p:Configuration=${{ matrix.build_type }} /p:Platform=${{ matrix.platform }} /p:SpectreMitigation=Spectre DirectXTK_Desktop_${{ matrix.vs }}_Win10.sln + + build2026: + runs-on: windows-2025-vs2026 + + strategy: + fail-fast: false + + matrix: + build_type: [Debug, Release] + platform: [x86, x64, ARM64] + + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Add MSBuild to PATH + uses: microsoft/setup-msbuild@6fb02220983dee41ce7ae257b6f4d8f9bf5ed4ce # v2.0.0 + + - name: 'Build' + working-directory: ${{ github.workspace }} + run: > + msbuild /m /p:Configuration=${{ matrix.build_type }} /p:Platform=${{ matrix.platform }} + DirectXTK_Desktop_2026.slnx diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c389b1366..12c0fe4a8 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -59,18 +59,6 @@ jobs: - toolver: '14' build_type: x86-Release arch: amd64_x86 - - toolver: '14' - build_type: x64-Debug-Clang - arch: amd64 - - toolver: '14' - build_type: x64-Release-Clang - arch: amd64 - - toolver: '14' - build_type: x86-Debug-Clang - arch: amd64_x86 - - toolver: '14' - build_type: x86-Release-Clang - arch: amd64_x86 - toolver: '14' build_type: arm64-Debug arch: amd64_arm64 @@ -85,10 +73,10 @@ jobs: arch: amd64_arm64 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: Clone test repository - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 with: repository: walbourn/directxtktest path: Tests @@ -130,3 +118,73 @@ jobs: - name: 'Build (DLL)' working-directory: ${{ github.workspace }} run: cmake --build out\build\${{ matrix.build_type }} + + build2026: + runs-on: windows-2025-vs2026 + timeout-minutes: 20 + + strategy: + fail-fast: false + + matrix: + build_type: [x64-Debug-Win10, x64-Release-Win10] + arch: [amd64] + include: + - build_type: x86-Debug-Win10 + arch: amd64_x86 + - build_type: x86-Release-Win10 + arch: amd64_x86 + - build_type: x86-Debug-Win10 + arch: amd64_x86 + - build_type: x86-Release-Win10 + arch: amd64_x86 + - build_type: arm64-Debug + arch: amd64_arm64 + - build_type: arm64-Release + arch: amd64_arm64 + + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: Clone test repository + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + with: + repository: walbourn/directxtktest + path: Tests + ref: main + + - name: 'Install Ninja' + run: choco install ninja + + - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 + with: + arch: ${{ matrix.arch }} + + - name: 'Configure CMake' + working-directory: ${{ github.workspace }} + run: > + cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=ON -DBUILD_TOOLS=OFF + + - name: 'Build' + working-directory: ${{ github.workspace }} + run: cmake --build out\build\${{ matrix.build_type }} + + - if: (matrix.build_type == 'x64-Release') || (matrix.build_type == 'x86-Release') + timeout-minutes: 10 + name: 'Test (Math only)' + working-directory: ${{ github.workspace }} + run: ctest --preset=${{ matrix.build_type }} -L Math + + - name: 'Clean up' + working-directory: ${{ github.workspace }} + run: Remove-Item -Path out -Recurse -Force + + - name: 'Configure CMake (DLL)' + working-directory: ${{ github.workspace }} + run: > + cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=ON -DBUILD_TOOLS=OFF + -DBUILD_SHARED_LIBS=ON + + - name: 'Build (DLL)' + working-directory: ${{ github.workspace }} + run: cmake --build out\build\${{ matrix.build_type }} diff --git a/.github/workflows/win10.yml b/.github/workflows/win10.yml index 0e23bfe35..9466528d9 100644 --- a/.github/workflows/win10.yml +++ b/.github/workflows/win10.yml @@ -70,27 +70,74 @@ jobs: - toolver: '14' build_type: arm64ec-Release arch: amd64_arm64 - - toolver: '14' - build_type: x64-Debug-Win10-Clang - arch: amd64 - - toolver: '14' - build_type: x64-Release-Win10-Clang - arch: amd64 - - toolver: '14' - build_type: x86-Debug-Win10-Clang + + steps: + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + + - name: 'Install Ninja' + run: choco install ninja + + - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 + with: + arch: ${{ matrix.arch }} + toolset: ${{ matrix.toolver }} + + - name: 'Configure CMake' + working-directory: ${{ github.workspace }} + run: cmake --preset=${{ matrix.build_type }} + + - name: 'Build' + working-directory: ${{ github.workspace }} + run: cmake --build out\build\${{ matrix.build_type }} + + - name: 'Clean up' + working-directory: ${{ github.workspace }} + run: Remove-Item -Path out -Recurse -Force + + - if: matrix.arch != 'amd64_arm64' + name: 'Configure CMake (Spectre)' + working-directory: ${{ github.workspace }} + run: cmake --preset=${{ matrix.build_type }} -DENABLE_SPECTRE_MITIGATION=ON + + - if: matrix.arch != 'amd64_arm64' + name: 'Build (Spectre)' + working-directory: ${{ github.workspace }} + run: cmake --build out\build\${{ matrix.build_type }} + + - if: matrix.arch != 'amd64_arm64' + name: 'Clean up' + working-directory: ${{ github.workspace }} + run: Remove-Item -Path out -Recurse -Force + + - name: 'Configure CMake (DLL)' + working-directory: ${{ github.workspace }} + run: cmake --preset=${{ matrix.build_type }} -DBUILD_SHARED_LIBS=ON + + - name: 'Build (DLL)' + working-directory: ${{ github.workspace }} + run: cmake --build out\build\${{ matrix.build_type }} + + build2026: + runs-on: windows-2025-vs2026 + + strategy: + fail-fast: false + + matrix: + build_type: [x64-Debug-Win10, x64-Release-Win10] + arch: [amd64] + include: + - build_type: x86-Debug-Win10 arch: amd64_x86 - - toolver: '14' - build_type: x86-Release-Win10-Clang + - build_type: x86-Release-Win10 arch: amd64_x86 - - toolver: '14' - build_type: arm64-Debug-Clang + - build_type: arm64-Debug arch: amd64_arm64 - - toolver: '14' - build_type: arm64-Release-Clang + - build_type: arm64-Release arch: amd64_arm64 steps: - - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 - name: 'Install Ninja' run: choco install ninja From 76b3a0da3ae047bfe93a7a7d75990e279041817e Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Tue, 10 Feb 2026 21:34:41 -0800 Subject: [PATCH 4/5] Trim redundant ADO pipelines --- .../pipelines/DirectXTK-GitHub-Dev17.yml | 53 ----------- .../pipelines/DirectXTK-GitHub-Test-Dev17.yml | 57 ----------- .../pipelines/DirectXTK-GitHub-Test.yml | 95 ------------------- .azuredevops/pipelines/DirectXTK-GitHub.yml | 87 ----------------- 4 files changed, 292 deletions(-) delete mode 100644 .azuredevops/pipelines/DirectXTK-GitHub-Test.yml delete mode 100644 .azuredevops/pipelines/DirectXTK-GitHub.yml diff --git a/.azuredevops/pipelines/DirectXTK-GitHub-Dev17.yml b/.azuredevops/pipelines/DirectXTK-GitHub-Dev17.yml index 2325a22d3..2f5374375 100644 --- a/.azuredevops/pipelines/DirectXTK-GitHub-Dev17.yml +++ b/.azuredevops/pipelines/DirectXTK-GitHub-Dev17.yml @@ -42,59 +42,6 @@ variables: value: $(ADOFeedGUID) jobs: - - job: DESKTOP_BUILD - displayName: 'Windows Desktop' - timeoutInMinutes: 120 - cancelTimeoutInMinutes: 1 - strategy: - maxParallel: 3 - matrix: - Release_arm64: - BuildPlatform: ARM64 - BuildConfiguration: Release - Debug_arm64: - BuildPlatform: ARM64 - BuildConfiguration: Debug - Release_x64: - BuildPlatform: x64 - BuildConfiguration: Release - Debug_x64: - BuildPlatform: x64 - BuildConfiguration: Debug - Release_x86: - BuildPlatform: x86 - BuildConfiguration: Release - Debug_x86: - BuildPlatform: x86 - BuildConfiguration: Debug - Release_Mixed: - BuildPlatform: 'Mixed Platforms' - BuildConfiguration: Release - Debug_Mixed: - BuildPlatform: 'Mixed Platforms' - BuildConfiguration: Debug - steps: - - checkout: self - clean: true - fetchTags: false - - task: VSBuild@1 - displayName: Build solution DirectXTK_Desktop_2022.sln - inputs: - solution: DirectXTK_Desktop_2022.sln - msbuildArgs: /p:PreferredToolArchitecture=x64 - platform: '$(BuildPlatform)' - configuration: '$(BuildConfiguration)' - msbuildArchitecture: x64 - condition: ne(variables['BuildPlatform'], 'ARM64') - - task: VSBuild@1 - displayName: Build solution DirectXTK_Desktop_2022_Win10.sln - inputs: - solution: DirectXTK_Desktop_2022_Win10.sln - msbuildArgs: /p:PreferredToolArchitecture=x64 - platform: '$(BuildPlatform)' - configuration: '$(BuildConfiguration)' - msbuildArchitecture: x64 - - job: UWP_BUILD displayName: 'Universal Windows Platform (UWP)' timeoutInMinutes: 120 diff --git a/.azuredevops/pipelines/DirectXTK-GitHub-Test-Dev17.yml b/.azuredevops/pipelines/DirectXTK-GitHub-Test-Dev17.yml index baa17031a..4851b80a8 100644 --- a/.azuredevops/pipelines/DirectXTK-GitHub-Test-Dev17.yml +++ b/.azuredevops/pipelines/DirectXTK-GitHub-Test-Dev17.yml @@ -48,63 +48,6 @@ variables: value: $(ADOFeedGUID) jobs: - - job: DESKTOP_BUILD - displayName: 'Windows Desktop' - timeoutInMinutes: 60 - cancelTimeoutInMinutes: 1 - workspace: - clean: all - strategy: - maxParallel: 3 - matrix: - Release_arm64: - BuildPlatform: ARM64 - BuildConfiguration: Release - Debug_arm64: - BuildPlatform: ARM64 - BuildConfiguration: Debug - Release_x64: - BuildPlatform: x64 - BuildConfiguration: Release - Debug_x64: - BuildPlatform: x64 - BuildConfiguration: Debug - Release_x86: - BuildPlatform: x86 - BuildConfiguration: Release - Debug_x86: - BuildPlatform: x86 - BuildConfiguration: Debug - steps: - - checkout: self - clean: true - fetchTags: false - fetchDepth: 1 - path: 's' - - checkout: testRepo - displayName: Fetch Tests - clean: true - fetchTags: false - fetchDepth: 1 - path: 's/Tests' - - task: VSBuild@1 - displayName: Build solution DirectXTK_Tests_Desktop_2022.sln - inputs: - solution: Tests/DirectXTK_Tests_Desktop_2022.sln - msbuildArgs: /p:PreferredToolArchitecture=x64 - platform: '$(BuildPlatform)' - configuration: '$(BuildConfiguration)' - msbuildArchitecture: x64 - condition: ne(variables['BuildPlatform'], 'ARM64') - - task: VSBuild@1 - displayName: Build solution DirectXTK_Tests_Desktop_2022_Win10.sln - inputs: - solution: Tests/DirectXTK_Tests_Desktop_2022_Win10.sln - msbuildArgs: /p:PreferredToolArchitecture=x64 - platform: '$(BuildPlatform)' - configuration: '$(BuildConfiguration)' - msbuildArchitecture: x64 - - job: UWP_BUILD displayName: 'Universal Windows Platform (UWP)' timeoutInMinutes: 120 diff --git a/.azuredevops/pipelines/DirectXTK-GitHub-Test.yml b/.azuredevops/pipelines/DirectXTK-GitHub-Test.yml deleted file mode 100644 index 20e24ed9b..000000000 --- a/.azuredevops/pipelines/DirectXTK-GitHub-Test.yml +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. -# -# https://go.microsoft.com/fwlink/?LinkId=248929 - -# Builds the library and test suite. - -schedules: - - cron: "30 2 * * *" - displayName: 'Nightly build' - branches: - include: - - main - -# GitHub Actions handles test suite for CI/PR -trigger: none -pr: - branches: - include: - - main - paths: - include: - - '.azuredevops/pipelines/DirectXTK-GitHub-Test.yml' - -resources: - repositories: - - repository: self - type: git - ref: refs/heads/main - - repository: testRepo - name: walbourn/directxtktest - type: github - endpoint: microsoft - ref: refs/heads/main - -name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) - -pool: - vmImage: windows-2022 - -variables: - - group: dxtk-shared-variables - - name: Codeql.Enabled - value: false - - name: GUID_FEED - value: $(ADOFeedGUID) - -jobs: - - job: DESKTOP_BUILD - displayName: 'Windows Desktop' - timeoutInMinutes: 120 - cancelTimeoutInMinutes: 1 - workspace: - clean: all - strategy: - maxParallel: 2 - matrix: - Release_x64: - BuildPlatform: x64 - BuildConfiguration: Release - Debug_x64: - BuildPlatform: x64 - BuildConfiguration: Debug - Release_x86: - BuildPlatform: x86 - BuildConfiguration: Release - Debug_x86: - BuildPlatform: x86 - BuildConfiguration: Debug - steps: - - checkout: self - clean: true - fetchTags: false - fetchDepth: 1 - path: 's' - - checkout: testRepo - displayName: Fetch Tests - clean: true - fetchTags: false - fetchDepth: 1 - path: 's/Tests' - - task: VSBuild@1 - displayName: Build solution DirectXTK_Tests_Desktop_2019.sln - inputs: - solution: Tests/DirectXTK_Tests_Desktop_2019.sln - msbuildArgs: /p:PreferredToolArchitecture=x64 - platform: '$(BuildPlatform)' - configuration: '$(BuildConfiguration)' - - task: VSBuild@1 - displayName: Build solution DirectXTK_Tests_Desktop_2019_Win10.sln - inputs: - solution: Tests/DirectXTK_Tests_Desktop_2019_Win10.sln - msbuildArgs: /p:PreferredToolArchitecture=x64 - platform: '$(BuildPlatform)' - configuration: '$(BuildConfiguration)' diff --git a/.azuredevops/pipelines/DirectXTK-GitHub.yml b/.azuredevops/pipelines/DirectXTK-GitHub.yml deleted file mode 100644 index da723b90a..000000000 --- a/.azuredevops/pipelines/DirectXTK-GitHub.yml +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright (c) Microsoft Corporation. -# Licensed under the MIT License. -# -# http://go.microsoft.com/fwlink/?LinkId=248929 - -# Builds the library for Windows Desktop. - -schedules: - - cron: "0 2 * * *" - displayName: 'Nightly build' - branches: - include: - - main - -# GitHub Actions handles MSBuild for CI/PR -trigger: none -pr: - branches: - include: - - main - paths: - include: - - '.azuredevops/pipelines/DirectXTK-GitHub.yml' - - Src/Shaders/CompileShaders.cmd - -resources: - repositories: - - repository: self - type: git - ref: refs/heads/main - -name: $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r) - -pool: - vmImage: windows-2022 - -variables: - - group: dxtk-shared-variables - - name: Codeql.Enabled - value: false - - name: GUID_FEED - value: $(ADOFeedGUID) - -jobs: - - job: DESKTOP_BUILD - displayName: 'Windows Desktop' - timeoutInMinutes: 120 - cancelTimeoutInMinutes: 1 - strategy: - maxParallel: 2 - matrix: - Release_x64: - BuildPlatform: x64 - BuildConfiguration: Release - Debug_x64: - BuildPlatform: x64 - BuildConfiguration: Debug - Release_x86: - BuildPlatform: x86 - BuildConfiguration: Release - Debug_x86: - BuildPlatform: x86 - BuildConfiguration: Debug - Release_Mixed: - BuildPlatform: 'Mixed Platforms' - BuildConfiguration: Release - Debug_Mixed: - BuildPlatform: 'Mixed Platforms' - BuildConfiguration: Debug - steps: - - checkout: self - clean: true - fetchTags: false - - task: VSBuild@1 - displayName: Build solution DirectXTK_Desktop_2019.sln - inputs: - solution: DirectXTK_Desktop_2019.sln - msbuildArgs: /p:PreferredToolArchitecture=x64 - platform: '$(BuildPlatform)' - configuration: '$(BuildConfiguration)' - - task: VSBuild@1 - displayName: Build solution DirectXTK_Desktop_2019_Win10.sln - inputs: - solution: DirectXTK_Desktop_2019_Win10.sln - msbuildArgs: /p:PreferredToolArchitecture=x64 - platform: '$(BuildPlatform)' - configuration: '$(BuildConfiguration)' From 41d533d146cc8a00209df36e3482e1d34c866395 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Tue, 10 Feb 2026 21:41:57 -0800 Subject: [PATCH 5/5] Fix GHA --- .github/workflows/win10.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/win10.yml b/.github/workflows/win10.yml index 9466528d9..9211fb24b 100644 --- a/.github/workflows/win10.yml +++ b/.github/workflows/win10.yml @@ -145,7 +145,6 @@ jobs: - uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 with: arch: ${{ matrix.arch }} - toolset: ${{ matrix.toolver }} - name: 'Configure CMake' working-directory: ${{ github.workspace }}