From f6ac62cdbe796ddd318fc0cb2df06c97f0637d46 Mon Sep 17 00:00:00 2001 From: Paul-Edouard Sarlin <15985472+sarlinpe@users.noreply.github.com> Date: Tue, 23 Jan 2024 17:21:00 +0100 Subject: [PATCH] Pin VCPKG commit on Windows (#245) --- .github/workflows/build-new.yml | 6 +++++- package/install-colmap-windows.ps1 | 8 +++++++- pyproject.toml | 4 +--- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-new.yml b/.github/workflows/build-new.yml index 1a5e7cf6..9cf9cb5f 100644 --- a/.github/workflows/build-new.yml +++ b/.github/workflows/build-new.yml @@ -68,7 +68,9 @@ jobs: if: runner.os == 'Windows' shell: pwsh run: | - $CMAKE_TOOLCHAIN_FILE = "${env:VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake" + $VCPKG_INSTALLATION_ROOT="${{ github.workspace }}/vcpkg" + echo "VCPKG_INSTALLATION_ROOT=${VCPKG_INSTALLATION_ROOT}" >> "${env:GITHUB_ENV}" + $CMAKE_TOOLCHAIN_FILE = "${VCPKG_INSTALLATION_ROOT}/scripts/buildsystems/vcpkg.cmake" echo "CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" >> "${env:GITHUB_ENV}" $VCPKG_TARGET_TRIPLET = "x64-windows" echo "VCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}" >> "${env:GITHUB_ENV}" @@ -78,6 +80,8 @@ jobs: $CONFIG_SETTINGS = "cmake.define.CMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}" $CONFIG_SETTINGS = "${CONFIG_SETTINGS} cmake.define.VCPKG_TARGET_TRIPLET=${VCPKG_TARGET_TRIPLET}" echo "CIBW_CONFIG_SETTINGS_WINDOWS=${CONFIG_SETTINGS}" >> "${env:GITHUB_ENV}" + $CIBW_REPAIR_WHEEL_COMMAND = "delvewheel repair -v --add-path ${VCPKG_INSTALLATION_ROOT}/installed/${VCPKG_TARGET_TRIPLET}/bin -w {dest_dir} {wheel}" + echo "CIBW_REPAIR_WHEEL_COMMAND_WINDOWS=${CIBW_REPAIR_WHEEL_COMMAND}" >> "${env:GITHUB_ENV}" # vcpkg binary caching $VCPKG_CACHE_DIR = "${env:COMPILER_CACHE_DIR}/vcpkg" diff --git a/package/install-colmap-windows.ps1 b/package/install-colmap-windows.ps1 index f871469d..f14a1cd4 100755 --- a/package/install-colmap-windows.ps1 +++ b/package/install-colmap-windows.ps1 @@ -26,6 +26,12 @@ If (!(Test-Path -path "${COMPILER_TOOLS_DIR}/ccache.exe" -PathType Leaf)) { Remove-Item -Recurse ${folder_path} } +cd ${CURRDIR} +git clone https://github.com/microsoft/vcpkg ${env:VCPKG_INSTALLATION_ROOT} +cd ${env:VCPKG_INSTALLATION_ROOT} +git checkout "${env:VCPKG_COMMIT_ID}" +./bootstrap-vcpkg.bat + cd ${CURRDIR} git clone https://github.com/colmap/colmap.git cd colmap @@ -50,7 +56,7 @@ cmake .. ` -DCGAL_ENABLED="OFF" ` -DGUI_ENABLED="OFF" ` -DCMAKE_TOOLCHAIN_FILE="${env:CMAKE_TOOLCHAIN_FILE}" ` - -DVCPKG_TARGET_TRIPLET="x64-windows" + -DVCPKG_TARGET_TRIPLET="${env:VCPKG_TARGET_TRIPLET}" & ${NINJA_PATH} install ccache --show-stats --verbose diff --git a/pyproject.toml b/pyproject.toml index d867d17e..7c00bac0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ test-command = "python -c \"import pycolmap; print(pycolmap.__version__)\"" [tool.cibuildwheel.environment] COLMAP_COMMIT_ID = "3.9.1" -VCPKG_COMMIT_ID = "a45fe2ce6039339ee7a076ebd3dcee0fa6cc1287" +VCPKG_COMMIT_ID = "fa6e6a6ec3224f1d3697d544edef6272a59cd834" [tool.cibuildwheel.linux] before-all = "{project}/package/install-colmap-centos.sh" @@ -45,5 +45,3 @@ before-all = "{project}/package/install-colmap-macos.sh" [tool.cibuildwheel.windows] before-all = "powershell -File {project}/package/install-colmap-windows.ps1" before-build = "pip install delvewheel" -# Env variable are not interpolated in the repair command, unsure why. -repair-wheel-command = "delvewheel repair -v --add-path C:/vcpkg/installed/x64-windows/bin -w {dest_dir} {wheel}"