From 9d919c4b841a06c66611dda7f0aba3544cfc7416 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Thu, 22 Aug 2024 23:44:44 -0700 Subject: [PATCH 01/11] Add VCPKG usage to GitHub Actions --- .github/workflows/main.yml | 14 +++--- .github/workflows/test.yml | 14 +++--- .github/workflows/vcpkg.yml | 92 +++++++++++++++++++++++++++++++++++++ build/vcpkg.json | 9 ++++ 4 files changed, 115 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/vcpkg.yml create mode 100644 build/vcpkg.json diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2f8142ad..e07006ff 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -30,7 +30,7 @@ jobs: matrix: os: [windows-2019, windows-2022] - build_type: [x64-Debug, x64-Release, x64-Debug-Clang, x64-Release-Clang] + build_type: [x64-Debug, x64-Release] arch: [amd64] include: - os: windows-2019 @@ -39,18 +39,18 @@ jobs: - os: windows-2019 build_type: x86-Release arch: amd64_x86 - - os: windows-2019 - build_type: x86-Debug-Clang - arch: amd64_x86 - - os: windows-2019 - build_type: x86-Release-Clang - arch: amd64_x86 - os: windows-2022 build_type: x86-Debug arch: amd64_x86 - os: windows-2022 build_type: x86-Release arch: amd64_x86 + - os: windows-2022 + build_type: x64-Debug-Clang + arch: amd64 + - os: windows-2022 + build_type: x64-Release-Clang + arch: amd64 - os: windows-2022 build_type: x86-Debug-Clang arch: amd64_x86 diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index f3f3eac1..f610de19 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,7 +31,7 @@ jobs: matrix: os: [windows-2019, windows-2022] - build_type: [x64-Debug, x64-Release, x64-Debug-Clang, x64-Release-Clang] + build_type: [x64-Debug, x64-Release] arch: [amd64] include: - os: windows-2019 @@ -40,18 +40,18 @@ jobs: - os: windows-2019 build_type: x86-Release arch: amd64_x86 - - os: windows-2019 - build_type: x86-Debug-Clang - arch: amd64_x86 - - os: windows-2019 - build_type: x86-Release-Clang - arch: amd64_x86 - os: windows-2022 build_type: x86-Debug arch: amd64_x86 - os: windows-2022 build_type: x86-Release arch: amd64_x86 + - os: windows-2022 + build_type: x64-Debug-Clang + arch: amd64 + - os: windows-2022 + build_type: x64-Release-Clang + arch: amd64 - os: windows-2022 build_type: x86-Debug-Clang arch: amd64_x86 diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml new file mode 100644 index 00000000..4dfc26ee --- /dev/null +++ b/.github/workflows/vcpkg.yml @@ -0,0 +1,92 @@ +# Copyright (c) Microsoft Corporation. +# Licensed under the MIT License. +# +# http://go.microsoft.com/fwlink/?LinkID=615561 + +name: 'CMake (Windows using VCPKG)' + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + paths-ignore: + - '*.md' + - LICENSE + - build/* + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + + matrix: + os: [windows-2019, windows-2022] + build_type: [x64-Debug-VCPKG] + arch: [amd64] + include: + - os: windows-2022 + build_type: x64-Debug-Clang-VCPKG + arch: amd64 + - os: windows-2022 + build_type: x86-Debug-VCPKG + arch: amd64_x86 + - os: windows-2022 + build_type: arm64-Debug-VCPKG + arch: amd64_arm64 + + steps: + - uses: actions/checkout@v4 + + - name: 'Install Ninja' + run: choco install ninja + + - uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.arch }} + + - name: 'Set triplet' + shell: pwsh + run: | + if ("${{ matrix.arch }}" -eq "amd64") + { + echo "VCPKG_DEFAULT_TRIPLET=x64-windows" >> $env:GITHUB_ENV + } + elseif ("${{ matrix.arch }}" -eq "amd64_x86") + { + echo "VCPKG_DEFAULT_TRIPLET=x86-windows" >> $env:GITHUB_ENV + } + elseif ("${{ matrix.arch }}" -eq "amd64_arm64") + { + if ("${{ matrix.build_type }}" -match "^arm64ec") + { + echo "VCPKG_DEFAULT_TRIPLET=arm64ec-windows" >> $env:GITHUB_ENV + } + else + { + echo "VCPKG_DEFAULT_TRIPLET=arm64-windows" >> $env:GITHUB_ENV + } + } + else + { + echo "::error Unknown architecture/build-type triplet mapping" + } + + - uses: lukka/run-vcpkg@v11 + with: + runVcpkgInstall: true + vcpkgJsonGlob: '**/build/vcpkg.json' + vcpkgGitCommitId: '7516a02de04e8f8ff4e4beb8f5bac0565f9bf9da' + + - name: 'Configure CMake' + working-directory: ${{ github.workspace }} + run: > + cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=OFF -DBUILD_XAUDIO_WIN10=OFF -DBUILD_XAUDIO_REDIST=ON + -DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_MANIFEST_DIR="${{ github.workspace }}/build" + -DVCPKG_TARGET_TRIPLET="${env:VCPKG_DEFAULT_TRIPLET}" + + - name: 'Build' + working-directory: ${{ github.workspace }} + run: cmake --build out\build\${{ matrix.build_type }} diff --git a/build/vcpkg.json b/build/vcpkg.json new file mode 100644 index 00000000..cd1a40b3 --- /dev/null +++ b/build/vcpkg.json @@ -0,0 +1,9 @@ +{ + "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", + "dependencies": [ + "directxmath", + "directx-dxc", + "directx-headers", + "xaudio2redist" + ] + } \ No newline at end of file From 3ee655f869255444422b27d8daf346f7bf4497d8 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 23 Aug 2024 00:05:53 -0700 Subject: [PATCH 02/11] Update presets --- CMakePresets.json | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index 383290ca..3bde6721 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -280,16 +280,16 @@ { "name": "x64-Debug-Durango" , "description": "MSVC for x64 (Debug) for legacy Xbox One XDK", "inherits": [ "base", "x64", "Debug", "MSVC", "Durango" ] }, { "name": "x64-Release-Durango" , "description": "MSVC for x64 (Release) for legacy Xbox One XDK", "inherits": [ "base", "x64", "Release", "MSVC", "Durango" ] }, - { "name": "x64-Debug-VCPKG" , "description": "MSVC for x64 (Debug)", "inherits": [ "base", "x64", "Debug", "MSVC", "VCPKG", "XAudio2Redist", "X64_X64" ] }, - { "name": "x64-Release-VCPKG" , "description": "MSVC for x64 (Release)", "inherits": [ "base", "x64", "Release", "MSVC", "VCPKG", "XAudio2Redist", "X64_X64" ] }, - { "name": "x86-Debug-VCPKG" , "description": "MSVC for x86 (Debug)", "inherits": [ "base", "x86", "Debug", "MSVC", "VCPKG", "XAudio2Redist", "X64_X86" ] }, - { "name": "x86-Release-VCPKG" , "description": "MSVC for x86 (Release)", "inherits": [ "base", "x86", "Release", "MSVC", "VCPKG", "XAudio2Redist", "X64_X86" ] }, - { "name": "arm64-Debug-VCPKG" , "description": "MSVC for ARM64 (Debug)", "inherits": [ "base", "ARM64", "Debug", "MSVC", "VCPKG", "X64_ARM64" ] }, - { "name": "arm64-Release-VCPKG" , "description": "MSVC for ARM64 (Release)", "inherits": [ "base", "ARM64", "Release", "MSVC", "VCPKG", "X64_ARM64" ] }, - { "name": "arm64-Native-Debug-VCPKG" , "description": "MSVC for ARM64 Native (Debug)", "inherits": [ "base", "ARM64", "Debug", "MSVC", "VCPKG", "ARM64_ARM64" ] }, - { "name": "arm64-Native-Release-VCPKG", "description": "MSVC for ARM64 Native (Release)", "inherits": [ "base", "ARM64", "Release", "MSVC", "VCPKG", "ARM64_ARM64" ] }, - { "name": "arm64ec-Debug-VCPKG" , "description": "MSVC for ARM64EC (Debug)", "inherits": [ "base", "ARM64EC", "Debug", "MSVC", "VCPKG", "X64_ARM64EC" ], "environment": { "CXXFLAGS": "/arm64EC" } }, - { "name": "arm64ec-Release-VCPKG" , "description": "MSVC for ARM64EC (Release)", "inherits": [ "base", "ARM64EC", "Release", "MSVC", "VCPKG", "X64_ARM64EC" ], "environment": { "CXXFLAGS": "/arm64EC" } }, + { "name": "x64-Debug-VCPKG" , "description": "MSVC for x64 (Debug) using VCPKG", "inherits": [ "base", "x64", "Debug", "MSVC", "VCPKG", "XAudio2Redist", "X64_X64" ] }, + { "name": "x64-Release-VCPKG" , "description": "MSVC for x64 (Release) using VCPKG", "inherits": [ "base", "x64", "Release", "MSVC", "VCPKG", "XAudio2Redist", "X64_X64" ] }, + { "name": "x86-Debug-VCPKG" , "description": "MSVC for x86 (Debug) using VCPKG", "inherits": [ "base", "x86", "Debug", "MSVC", "VCPKG", "XAudio2Redist", "X64_X86" ] }, + { "name": "x86-Release-VCPKG" , "description": "MSVC for x86 (Release) using VCPKG", "inherits": [ "base", "x86", "Release", "MSVC", "VCPKG", "XAudio2Redist", "X64_X86" ] }, + { "name": "arm64-Debug-VCPKG" , "description": "MSVC for ARM64 (Debug) using VCPKG", "inherits": [ "base", "ARM64", "Debug", "MSVC", "VCPKG", "X64_ARM64" ] }, + { "name": "arm64-Release-VCPKG" , "description": "MSVC for ARM64 (Release) using VCPKG", "inherits": [ "base", "ARM64", "Release", "MSVC", "VCPKG", "X64_ARM64" ] }, + { "name": "arm64-Native-Debug-VCPKG" , "description": "MSVC for ARM64 Native (Debug) using VCPKG", "inherits": [ "base", "ARM64", "Debug", "MSVC", "VCPKG", "ARM64_ARM64" ] }, + { "name": "arm64-Native-Release-VCPKG", "description": "MSVC for ARM64 Native (Release) using VCPKG", "inherits": [ "base", "ARM64", "Release", "MSVC", "VCPKG", "ARM64_ARM64" ] }, + { "name": "arm64ec-Debug-VCPKG" , "description": "MSVC for ARM64EC (Debug) using VCPKG", "inherits": [ "base", "ARM64EC", "Debug", "MSVC", "VCPKG", "X64_ARM64EC" ], "environment": { "CXXFLAGS": "/arm64EC" } }, + { "name": "arm64ec-Release-VCPKG" , "description": "MSVC for ARM64EC (Release) using VCPKG", "inherits": [ "base", "ARM64EC", "Release", "MSVC", "VCPKG", "X64_ARM64EC" ], "environment": { "CXXFLAGS": "/arm64EC" } }, { "name": "x64-Debug-Clang" , "description": "Clang/LLVM for x64 (Debug) for Windows 10", "inherits": [ "base", "x64", "Debug", "Clang" ] }, { "name": "x64-Release-Clang" , "description": "Clang/LLVM for x64 (Release) for Windows 10", "inherits": [ "base", "x64", "Release", "Clang" ] }, @@ -298,6 +298,11 @@ { "name": "arm64-Debug-Clang" , "description": "Clang/LLVM for AArch64 (Debug) for Windows 10", "inherits": [ "base", "ARM64", "Debug", "Clang" ], "environment": { "CXXFLAGS": "--target=arm64-pc-windows-msvc" } }, { "name": "arm64-Release-Clang", "description": "Clang/LLVM for AArch64 (Release) for Windows 10", "inherits": [ "base", "ARM64", "Release", "Clang" ], "environment": { "CXXFLAGS": "--target=arm64-pc-windows-msvc" } }, + { "name": "x64-Debug-Clang-VCPKG" , "description": "Clang/LLVM for x64 (Debug) using VCPKG", "inherits": [ "base", "x64", "Debug", "Clang", "VCPKG", "XAudio2Redist", "X64_X64" ] }, + { "name": "x64-Release-Clang-VCPKG" , "description": "Clang/LLVM for x64 (Release) using VCPKG", "inherits": [ "base", "x64", "Release", "Clang", "VCPKG", "XAudio2Redist", "X64_X64" ] }, + { "name": "x86-Debug-Clang-VCPKG" , "description": "Clang/LLVM for x86 (Debug) using VCPKG", "inherits": [ "base", "x86", "Debug", "Clang", "VCPKG", "XAudio2Redist", "X64_X86" ], "environment": { "CXXFLAGS": "-m32" } }, + { "name": "x86-Release-Clang-VCPKG" , "description": "Clang/LLVM for x86 (Debug) using VCPKG", "inherits": [ "base", "x86", "Release", "Clang", "VCPKG", "XAudio2Redist", "X64_X86" ], "environment": { "CXXFLAGS": "-m32" } }, + { "name": "x64-Debug-UWP-Clang" , "description": "Clang/LLVM for x64 (Debug) for UWP", "inherits": [ "base", "x64", "Debug", "Clang", "UWP" ] }, { "name": "x64-Release-UWP-Clang" , "description": "Clang/LLVM for x64 (Release) for UWP", "inherits": [ "base", "x64", "Release", "Clang", "UWP" ] }, { "name": "x86-Debug-UWP-Clang" , "description": "Clang/LLVM for x86 (Debug) for UWP", "inherits": [ "base", "x86", "Debug", "Clang", "UWP" ], "environment": { "CXXFLAGS": "-m32" } }, From 7730aa293cb17e63b7bba9f84539cf4a6ea1dedc Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 23 Aug 2024 00:21:29 -0700 Subject: [PATCH 03/11] Fix dxc usage --- .github/workflows/vcpkg.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index 4dfc26ee..d596a473 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -84,6 +84,7 @@ jobs: working-directory: ${{ github.workspace }} run: > cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=OFF -DBUILD_XAUDIO_WIN10=OFF -DBUILD_XAUDIO_REDIST=ON + -DIRECTX_DXC_TOOL="${{ github.workspace }}/vcpkg/packages/directx-dxc_x64-windows/bin/" -DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_MANIFEST_DIR="${{ github.workspace }}/build" -DVCPKG_TARGET_TRIPLET="${env:VCPKG_DEFAULT_TRIPLET}" From 5fd39593c6a3d6545b029a67e028c7169c37ca86 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 23 Aug 2024 00:27:32 -0700 Subject: [PATCH 04/11] Fix path again --- .github/workflows/vcpkg.yml | 2 +- .gitignore | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index d596a473..d7ed8522 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -84,7 +84,7 @@ jobs: working-directory: ${{ github.workspace }} run: > cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=OFF -DBUILD_XAUDIO_WIN10=OFF -DBUILD_XAUDIO_REDIST=ON - -DIRECTX_DXC_TOOL="${{ github.workspace }}/vcpkg/packages/directx-dxc_x64-windows/bin/" + -DIRECTX_DXC_PATH="${{ github.workspace }}/build/vcpkg_installed/x64-windows/tools/directx-dxc" -DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_MANIFEST_DIR="${{ github.workspace }}/build" -DVCPKG_TARGET_TRIPLET="${env:VCPKG_DEFAULT_TRIPLET}" diff --git a/.gitignore b/.gitignore index 716bf49e..6fec833a 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ Bin /wiki /out /CMakeUserPresets.json +/build/vcpkg_installed From dd172b590ee361f0beee90ccc0c898f1b0b2aca0 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 23 Aug 2024 00:41:39 -0700 Subject: [PATCH 05/11] vcpkg manifest mode --- CMakePresets.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index 3bde6721..cae49b29 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -150,7 +150,7 @@ "cacheVariables": { "VCPKG_TARGET_TRIPLET": "x64-windows", "VCPKG_HOST_TRIPLET": "x64-windows", - "DIRECTX_DXC_PATH": "$env{VCPKG_ROOT}/installed/x64-windows/tools/directx-dxc" + "DIRECTX_DXC_PATH": "build/vcpkg_installed/x64-windows/tools/directx-dxc" } }, { @@ -159,7 +159,7 @@ "cacheVariables": { "VCPKG_TARGET_TRIPLET": "x86-windows", "VCPKG_HOST_TRIPLET": "x64-windows", - "DIRECTX_DXC_PATH": "$env{VCPKG_ROOT}/installed/x64-windows/tools/directx-dxc" + "DIRECTX_DXC_PATH": "build/vcpkg_installed/x64-windows/tools/directx-dxc" } }, { From 0a603865faa6996ba88608fdc39b751e34863618 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 23 Aug 2024 00:42:58 -0700 Subject: [PATCH 06/11] Add host depnds --- build/vcpkg.json | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/build/vcpkg.json b/build/vcpkg.json index cd1a40b3..2f86b647 100644 --- a/build/vcpkg.json +++ b/build/vcpkg.json @@ -2,7 +2,10 @@ "$schema": "https://raw.githubusercontent.com/microsoft/vcpkg-tool/main/docs/vcpkg.schema.json", "dependencies": [ "directxmath", - "directx-dxc", + { + "name": "directx-dxc", + "host": true + }, "directx-headers", "xaudio2redist" ] From cd0657ce2f01177ca905bd78099904f16fa83f3b Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 23 Aug 2024 00:48:49 -0700 Subject: [PATCH 07/11] Fix platform support --- CMakePresets.json | 6 +++--- build/vcpkg.json | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index cae49b29..f16351b4 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -168,7 +168,7 @@ "cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64-windows", "VCPKG_HOST_TRIPLET": "x64-windows", - "DIRECTX_DXC_PATH": "$env{VCPKG_ROOT}/installed/x64-windows/tools/directx-dxc" + "DIRECTX_DXC_PATH": "build/vcpkg_installed/x64-windows/tools/directx-dxc" } }, { @@ -177,7 +177,7 @@ "cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64ec-windows", "VCPKG_HOST_TRIPLET": "x64-windows", - "DIRECTX_DXC_PATH": "$env{VCPKG_ROOT}/installed/x64-windows/tools/directx-dxc" + "DIRECTX_DXC_PATH": "build/vcpkg_installed/x64-windows/tools/directx-dxc" } }, { @@ -186,7 +186,7 @@ "cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64-windows", "VCPKG_HOST_TRIPLET": "arm64-windows", - "DIRECTX_DXC_PATH": "$env{VCPKG_ROOT}/installed/arm64-windows/tools/directx-dxc" + "DIRECTX_DXC_PATH": "build/vcpkg_installed/x64-windows/tools/directx-dxc" } }, { diff --git a/build/vcpkg.json b/build/vcpkg.json index 2f86b647..12f0ff53 100644 --- a/build/vcpkg.json +++ b/build/vcpkg.json @@ -7,6 +7,9 @@ "host": true }, "directx-headers", - "xaudio2redist" + { + "name": "xaudio2redist", + "platform": "windows & !arm" + } ] } \ No newline at end of file From 93b66661fd970bd7c0769078f0be104dc4d752cf Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 23 Aug 2024 01:04:57 -0700 Subject: [PATCH 08/11] Add hint for vcpkg.json manifest mode --- CMakeLists.txt | 3 ++- CMakePresets.json | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 7a8640b4..182b8081 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -252,7 +252,8 @@ if(NOT USE_PREBUILT_SHADERS) message(STATUS "Using VCPKG for DirectXShaderCompiler (${VCPKG_HOST_TRIPLET}).") find_program(DIRECTX_DXC_TOOL DXC.EXE REQUIRED NO_SYSTEM_ENVIRONMENT_PATH NO_CMAKE_SYSTEM_PATH NO_DEFAULT_PATH - HINTS ${DIRECTX_DXC_PATH}) + HINTS ${DIRECTX_DXC_PATH} + "${CMAKE_CURRENT_LIST_DIR}/build/vcpkg_installed/${VCPKG_HOST_TRIPLET}/tools/directx-dxc") endif() add_custom_command( OUTPUT "${COMPILED_SHADERS}/SpriteEffect_SpriteVertexShader.inc" diff --git a/CMakePresets.json b/CMakePresets.json index f16351b4..3bde6721 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -150,7 +150,7 @@ "cacheVariables": { "VCPKG_TARGET_TRIPLET": "x64-windows", "VCPKG_HOST_TRIPLET": "x64-windows", - "DIRECTX_DXC_PATH": "build/vcpkg_installed/x64-windows/tools/directx-dxc" + "DIRECTX_DXC_PATH": "$env{VCPKG_ROOT}/installed/x64-windows/tools/directx-dxc" } }, { @@ -159,7 +159,7 @@ "cacheVariables": { "VCPKG_TARGET_TRIPLET": "x86-windows", "VCPKG_HOST_TRIPLET": "x64-windows", - "DIRECTX_DXC_PATH": "build/vcpkg_installed/x64-windows/tools/directx-dxc" + "DIRECTX_DXC_PATH": "$env{VCPKG_ROOT}/installed/x64-windows/tools/directx-dxc" } }, { @@ -168,7 +168,7 @@ "cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64-windows", "VCPKG_HOST_TRIPLET": "x64-windows", - "DIRECTX_DXC_PATH": "build/vcpkg_installed/x64-windows/tools/directx-dxc" + "DIRECTX_DXC_PATH": "$env{VCPKG_ROOT}/installed/x64-windows/tools/directx-dxc" } }, { @@ -177,7 +177,7 @@ "cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64ec-windows", "VCPKG_HOST_TRIPLET": "x64-windows", - "DIRECTX_DXC_PATH": "build/vcpkg_installed/x64-windows/tools/directx-dxc" + "DIRECTX_DXC_PATH": "$env{VCPKG_ROOT}/installed/x64-windows/tools/directx-dxc" } }, { @@ -186,7 +186,7 @@ "cacheVariables": { "VCPKG_TARGET_TRIPLET": "arm64-windows", "VCPKG_HOST_TRIPLET": "arm64-windows", - "DIRECTX_DXC_PATH": "build/vcpkg_installed/x64-windows/tools/directx-dxc" + "DIRECTX_DXC_PATH": "$env{VCPKG_ROOT}/installed/arm64-windows/tools/directx-dxc" } }, { From 2de3b9a7ef373f73bf5e88cf265f005b2d6c89dd Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 23 Aug 2024 01:23:48 -0700 Subject: [PATCH 09/11] XAudio2Redist doesn't support arm --- CMakeLists.txt | 6 +++++- build/CompilerAndLinker.cmake | 3 ++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 182b8081..6b5eed5d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -191,7 +191,11 @@ set(SHADER_SOURCES ${SHADER_SOURCES} Src/Shaders/Utilities.fxh) if(MINGW) - set(BUILD_XAUDIO_WIN10 OFF) + set(BUILD_XAUDIO_WIN10 OFF) +endif() + +if(${DIRECTX_ARCH} MATCHES "^arm") + set(BUILD_XAUDIO_REDIST OFF) endif() if(WINDOWS_STORE diff --git a/build/CompilerAndLinker.cmake b/build/CompilerAndLinker.cmake index 8950d5ca..1826feb8 100644 --- a/build/CompilerAndLinker.cmake +++ b/build/CompilerAndLinker.cmake @@ -136,7 +136,8 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC") list(APPEND COMPILER_SWITCHES /Zc:lambda) endif() - if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.29) + if((CMAKE_CXX_COMPILER_VERSION VERSION_GREATER_EQUAL 19.29) + AND (NOT VCPKG_TOOLCHAIN)) list(APPEND COMPILER_SWITCHES /external:W4) endif() From c0f8cf2f858ab00e0d17a3ed403dd733259085ca Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 23 Aug 2024 01:36:44 -0700 Subject: [PATCH 10/11] Force install to known location --- .github/workflows/vcpkg.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index d7ed8522..2e5c32b5 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -50,6 +50,7 @@ jobs: - name: 'Set triplet' shell: pwsh run: | + echo "VCPKG_INSTALLED_DIR=${{ github.workspace }}/build/vcpkg_installed" >> $env:GITHUB_ENV if ("${{ matrix.arch }}" -eq "amd64") { echo "VCPKG_DEFAULT_TRIPLET=x64-windows" >> $env:GITHUB_ENV From 98c080e64d8da93db0d0d563636632d457876274 Mon Sep 17 00:00:00 2001 From: Chuck Walbourn Date: Fri, 23 Aug 2024 01:39:38 -0700 Subject: [PATCH 11/11] Remove minor cleanup --- .github/workflows/vcpkg.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/vcpkg.yml b/.github/workflows/vcpkg.yml index 2e5c32b5..33fe46c7 100644 --- a/.github/workflows/vcpkg.yml +++ b/.github/workflows/vcpkg.yml @@ -85,7 +85,6 @@ jobs: working-directory: ${{ github.workspace }} run: > cmake --preset=${{ matrix.build_type }} -DBUILD_TESTING=OFF -DBUILD_XAUDIO_WIN10=OFF -DBUILD_XAUDIO_REDIST=ON - -DIRECTX_DXC_PATH="${{ github.workspace }}/build/vcpkg_installed/x64-windows/tools/directx-dxc" -DCMAKE_TOOLCHAIN_FILE="${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake" -DVCPKG_MANIFEST_DIR="${{ github.workspace }}/build" -DVCPKG_TARGET_TRIPLET="${env:VCPKG_DEFAULT_TRIPLET}"