From e84ec42d4d384f5b5f2e052a6683fcec6d37e5f7 Mon Sep 17 00:00:00 2001 From: Scott Todd Date: Thu, 12 Feb 2026 15:56:37 -0800 Subject: [PATCH] [CI] Move Windows options from build_configure.py to CMake preset --- .github/workflows/release_windows_packages.yml | 1 + CMakePresets.json | 3 ++- build_tools/github_actions/build_configure.py | 11 ----------- docs/development/windows_support.md | 5 ++++- 4 files changed, 7 insertions(+), 13 deletions(-) diff --git a/.github/workflows/release_windows_packages.yml b/.github/workflows/release_windows_packages.yml index 2ecd207ade0..2ad73ce3f61 100644 --- a/.github/workflows/release_windows_packages.yml +++ b/.github/workflows/release_windows_packages.yml @@ -229,6 +229,7 @@ jobs: - name: Configure Projects env: + cmake_preset: windows-release amdgpu_families: ${{ matrix.target_bundle.amdgpu_family }} package_version: "ADHOCBUILD" extra_cmake_options: ${{ inputs.extra_cmake_options }} diff --git a/CMakePresets.json b/CMakePresets.json index bbe0d4fc4ac..5bb699c058c 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -118,7 +118,8 @@ }, "cacheVariables": { "CMAKE_C_COMPILER": "cl.exe", - "CMAKE_CXX_COMPILER": "cl.exe" + "CMAKE_CXX_COMPILER": "cl.exe", + "CMAKE_LINKER": "link.exe" }, "condition": { "type": "equals", diff --git a/build_tools/github_actions/build_configure.py b/build_tools/github_actions/build_configure.py index a3600457486..af47a2d4cbe 100644 --- a/build_tools/github_actions/build_configure.py +++ b/build_tools/github_actions/build_configure.py @@ -35,7 +35,6 @@ package_version = os.getenv("package_version") extra_cmake_options = os.getenv("extra_cmake_options") build_dir = os.getenv("BUILD_DIR") -vctools_install_dir = os.getenv("VCToolsInstallDir") github_workspace = os.getenv("GITHUB_WORKSPACE") extra_c_compiler_launcher = os.getenv("EXTRA_C_COMPILER_LAUNCHER", "") extra_cxx_compiler_launcher = os.getenv("EXTRA_CXX_COMPILER_LAUNCHER", "") @@ -77,9 +76,6 @@ def build_compiler_launcher( platform_options = { "windows": [ - f"-DCMAKE_C_COMPILER={vctools_install_dir}/bin/Hostx64/x64/cl.exe", - f"-DCMAKE_CXX_COMPILER={vctools_install_dir}/bin/Hostx64/x64/cl.exe", - f"-DCMAKE_LINKER={vctools_install_dir}/bin/Hostx64/x64/link.exe", "-DTHEROCK_BACKGROUND_BUILD_JOBS=4", ], } @@ -136,13 +132,6 @@ def build_configure(manylinux=False): ) cmd.append(f"-DTHEROCK_SHARED_PYTHON_EXECUTABLES={python_shared_executables}") - if PLATFORM == "windows": - # VCToolsInstallDir is required for build. Throwing an error if environment variable doesn't exist - if not vctools_install_dir: - raise Exception( - "Environment variable VCToolsInstallDir is not set. Please see https://github.com/ROCm/TheRock/blob/main/docs/development/windows_support.md#important-tool-settings about Windows tool configurations. Exiting." - ) - # Splitting cmake options into an array (ex: "-flag X" -> ["-flag", "X"]) for subprocess.run cmake_options_arr = extra_cmake_options.split() cmd += cmake_options_arr diff --git a/docs/development/windows_support.md b/docs/development/windows_support.md index 806b128918c..4702287bb4e 100644 --- a/docs/development/windows_support.md +++ b/docs/development/windows_support.md @@ -200,8 +200,11 @@ If you prefer to install tools manually, you will need: > running `vcvars64.bat` in an existing shell. > - If you build from an editor like VSCode, CMake can discover the compiler > among other "kits". +> - Our `windows-base` or `windows-release` presets in +> [CMakePresets.json](/CMakePresets.json) set the CMake compiler and linker +> for you. > - You can also tell CMake to use MSVC's tools explicitly with -> `-DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe -DCMAKE_LINKER=link.exe` +> `-DCMAKE_C_COMPILER=cl.exe -DCMAKE_CXX_COMPILER=cl.exe -DCMAKE_LINKER=link.exe`. ### Set the locale