From 506ef184fee1f6240f4f3859bc0ada59a004db7a Mon Sep 17 00:00:00 2001 From: marauder2k7 Date: Sun, 17 May 2026 21:01:16 +0100 Subject: [PATCH] Update build-windows-msvc.yml pin vcpkg submodule to baseline changed for caching local results Update CMakeLists.txt Update CMakeLists.txt Update build-windows-msvc.yml Update build-windows-msvc.yml --- .github/workflows/build-windows-msvc.yml | 5 ++- .gitmodules | 3 ++ CMakeLists.txt | 27 +++++++++++++++ Tools/CMake/torque_configs.cmake | 44 ------------------------ Tools/vcpkg | 1 + 5 files changed, 33 insertions(+), 47 deletions(-) create mode 100644 .gitmodules create mode 160000 Tools/vcpkg diff --git a/.github/workflows/build-windows-msvc.yml b/.github/workflows/build-windows-msvc.yml index 2741b0329..cfbc1835f 100644 --- a/.github/workflows/build-windows-msvc.yml +++ b/.github/workflows/build-windows-msvc.yml @@ -31,15 +31,14 @@ jobs: steps: - uses: actions/checkout@v4 + with: + submodules: recursive - uses: ilammy/msvc-dev-cmd@v1.13.0 - name: Print env run: | echo github.event.action: ${{ github.event.action }} echo github.event_name: ${{ github.event_name }} - - name: Run GIT Init - run: git init - - name: Setup MSVC problem matcher uses: ammaraskar/msvc-problem-matcher@master diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 000000000..54f680c4f --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "Tools/vcpkg"] + path = Tools/vcpkg + url = https://github.com/microsoft/vcpkg.git diff --git a/CMakeLists.txt b/CMakeLists.txt index 07a14c6fc..ce22a689c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,6 +17,33 @@ endif() include("${CMAKE_SOURCE_DIR}/Tools/CMake/torque_macros.cmake") + + +if(NOT DEFINED CMAKE_TOOLCHAIN_FILE) + set(CMAKE_TOOLCHAIN_FILE + "${CMAKE_SOURCE_DIR}/Tools/vcpkg/scripts/buildsystems/vcpkg.cmake" + CACHE STRING "vcpkg toolchain") +endif() + +# Read-only by default — regular users just get cache hits +set(ENV{VCPKG_BINARY_SOURCES} + "clear;files,${CMAKE_CURRENT_LIST_DIR}/Tools/vcpkg-binaries,read") +set(ENV{VCPKG_ASSET_SOURCES} + "clear;x-azurl,file://${CMAKE_CURRENT_LIST_DIR}/Tools/vcpkg-assets,,read") + +# Maintainer override — cmake -DTORQUE_POPULATE_VCPKG_CACHE=ON +if(TORQUE_POPULATE_VCPKG_CACHE) + message(STATUS "[vcpkg] Cache mode: READWRITE (populating cache)") + set(ENV{VCPKG_BINARY_SOURCES} + "clear;files,${CMAKE_CURRENT_LIST_DIR}/Tools/vcpkg-binaries,readwrite") + set(ENV{VCPKG_ASSET_SOURCES} + "clear;x-azurl,file://${CMAKE_CURRENT_LIST_DIR}/Tools/vcpkg-assets,,readwrite") +else() + message(STATUS "[vcpkg] Cache mode: READ (using committed cache)") +endif() + +set(ENV{VCPKG_KEEP_ENV_VARS} "VCPKG_BINARY_SOURCES;VCPKG_ASSET_SOURCES") + include("${CMAKE_SOURCE_DIR}/Tools/CMake/torque_configs.cmake") # Ensure multi-core compilation is enabled for everything diff --git a/Tools/CMake/torque_configs.cmake b/Tools/CMake/torque_configs.cmake index 4fa282e44..fd0e43e6f 100644 --- a/Tools/CMake/torque_configs.cmake +++ b/Tools/CMake/torque_configs.cmake @@ -1,47 +1,4 @@ ################# Initialize Common Variables ################### -if(NOT DEFINED ENV{VCPKG_ROOT}) - set(VCPKG_ROOT "${CMAKE_BINARY_DIR}/vcpkg" CACHE PATH "VCPKG Root") - if(NOT EXISTS "${VCPKG_ROOT}") - message(STATUS "Bootstrapping vcpkg...") - if (GIT_IN_USE) - execute_process( - COMMAND git clone https://github.com/microsoft/vcpkg.git "${VCPKG_ROOT}" - WORKING_DIRECTORY "${CMAKE_BINARY_DIR}") - else() - set(VCPKG_MANIFEST_MODE OFF CACHE BOOL "Disable vcpkg manifest mode" FORCE) - set(VCPKG_ZIP_FILE "${CMAKE_BINARY_DIR}/vcpkg.zip") - set(VCPKG_EXTRACT_DEST "${CMAKE_BINARY_DIR}/vcpkg-extracted-temp") - - # Use file(DOWNLOAD) to fetch the source archive - if(NOT EXISTS "${VCPKG_ZIP_FILE}") - message(STATUS "Downloading vcpkg source archive...") - file(DOWNLOAD "https://github.com/microsoft/vcpkg/archive/refs/heads/master.zip" "${VCPKG_ZIP_FILE}" - SHOW_PROGRESS) - message(STATUS "Downloading vcpkg source archive... done") - endif() - - # Use file(ARCHIVE_EXTRACT) to unzip the source - if(NOT EXISTS "${VCPKG_EXTRACT_DEST}") - message(STATUS "Extracting vcpkg archive...") - file(ARCHIVE_EXTRACT INPUT "${VCPKG_ZIP_FILE}" DESTINATION "${VCPKG_EXTRACT_DEST}" ) - - # Move the extracted content (which is in a directory like vcpkg-master) - # to the desired VCPKG_ROOT path defined in your original script. - file(GLOB VCPKG_SOURCE_DIR_TMP "${VCPKG_EXTRACT_DEST}/vcpkg-*") - file(RENAME "${VCPKG_SOURCE_DIR_TMP}" "${VCPKG_ROOT}") - message(STATUS "Extracting vcpkg archive... done") - endif() - endif() - if(WIN32) - execute_process(COMMAND "${VCPKG_ROOT}/bootstrap-vcpkg.bat") - else() - execute_process(COMMAND "${VCPKG_ROOT}/bootstrap-vcpkg.sh") - endif() - endif() -else() - file(TO_CMAKE_PATH $ENV{VCPKG_ROOT} VCPKG_ROOT) -endif() -set(CMAKE_TOOLCHAIN_FILE "${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" CACHE STRING "Vcpkg toolchain file") if(WIN32) if(GIT_CI_BUILD) set(VCPKG_TARGET_TRIPLET "x64-windows-mixed-release" CACHE STRING "") @@ -71,7 +28,6 @@ endif() set(VCPKG_OVERLAY_TRIPLETS "${CMAKE_SOURCE_DIR}/Tools/CMake/vcpkg/triplets" CACHE STRING "") set(VCPKG_OVERLAY_PORTS "${CMAKE_SOURCE_DIR}/Tools/CMake/vcpkg/ports" CACHE STRING "") -set(VCPKG_INSTALL_OPTIONS "--clean-after-build" CACHE STRING "") set(ENV{VCPKG_LIB_SOURCE_ROOT} "${CMAKE_SOURCE_DIR}/Engine/lib") set(ENV{VCPKG_KEEP_ENV_VARS} "VCPKG_LIB_SOURCE_ROOT") # All include directories to search. Modules should append to this when they want includes to point diff --git a/Tools/vcpkg b/Tools/vcpkg new file mode 160000 index 000000000..74e653621 --- /dev/null +++ b/Tools/vcpkg @@ -0,0 +1 @@ +Subproject commit 74e6536215718009aae747d86d84b78376bf9e09