From 80e2ccc18b58b892f3a684e740737406add7fb6b Mon Sep 17 00:00:00 2001 From: Bruno Alexandre Rosa <1791393+brunoalr@users.noreply.github.com> Date: Mon, 23 Mar 2026 18:39:56 -0300 Subject: [PATCH] add WindowsToolchain --- .github/workflows/desktop-build.yml | 7 ------- .gitmodules | 3 +++ CMakeLists.txt | 12 ++++++++++++ cmake/WindowsToolchain | 1 + 4 files changed, 16 insertions(+), 7 deletions(-) create mode 160000 cmake/WindowsToolchain diff --git a/.github/workflows/desktop-build.yml b/.github/workflows/desktop-build.yml index e22b1e0a5..6843332c6 100644 --- a/.github/workflows/desktop-build.yml +++ b/.github/workflows/desktop-build.yml @@ -337,13 +337,6 @@ jobs: with: submodules: recursive - # Set relevant environment variables for MSVC, used to ensure ninja + MSVC build correctly together - - name: Setup MSVC (Windows) - if: matrix.os == 'Windows' - uses: ilammy/msvc-dev-cmd@v1.13.0 - with: - arch: x64 - - name: Setup ccache if: matrix.use_ccache == 1 && matrix.os == 'macOS' run: brew install ccache diff --git a/.gitmodules b/.gitmodules index 732fec7ca..476fa6da8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "doxygen-awesome-css"] path = doc/doxygen/theme url = https://github.com/jothepro/doxygen-awesome-css.git +[submodule "cmake/WindowsToolchain"] + path = cmake/WindowsToolchain + url = https://github.com/MarkSchofield/WindowsToolchain.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 6bbd8054e..d9cd15faa 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -72,6 +72,18 @@ if(WIN32 OR USE_VCPKG) endif() endif() +if(WIN32 + AND USE_VCPKG + AND CMAKE_GENERATOR STREQUAL "Ninja" +) + # vcpkg.cmake must be the primary toolchain; MSVC+Ninja toolchain is chainloaded + # See https://github.com/MarkSchofield/WindowsToolchain#windowstoolchain-and-vcpkg + set(VCPKG_CHAINLOAD_TOOLCHAIN_FILE + "${CMAKE_CURRENT_SOURCE_DIR}/cmake/WindowsToolchain/Windows.MSVC.toolchain.cmake" + CACHE FILEPATH "Chainloaded MSVC toolchain file for Ninja generator" + ) +endif() + # A project name is needed for CPack # Version can be overriden by git tags, see cmake/getversion.cmake project("Cockatrice" VERSION 2.11.0) diff --git a/cmake/WindowsToolchain b/cmake/WindowsToolchain new file mode 160000 index 000000000..4dc30a8bf --- /dev/null +++ b/cmake/WindowsToolchain @@ -0,0 +1 @@ +Subproject commit 4dc30a8bf484f41d5a16eec97b9284a52042e2b4