From 3655f4e0a678d8f8b5eb179d8bb111c95b90ece9 Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Tue, 8 Sep 2026 11:05:39 +0800 Subject: [PATCH 1/4] CMake: Normalize installation path on Windows to avoid mixing slashes and backslashes --- .github/workflows/build.yml | 9 ++------- .github/workflows/docs.yml | 9 ++------- .github/workflows/tests.yml | 9 ++------- cmake/modules/ConfigCMake.cmake | 5 +++++ 4 files changed, 11 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f743e28cb0f..fb350b162d3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -118,15 +118,10 @@ jobs: run: | mkdir build cd build - setlocal enabledelayedexpansion - set "INSTALLDIR=%INSTALLDIR:\=/%" - set "WINVCPKGROOT=%VCPKG_INSTALLATION_ROOT:/=\%" - cmake -G Ninja .. -DCMAKE_TOOLCHAIN_FILE=!WINVCPKGROOT!\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release + cmake -G Ninja .. -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release cmake --build . cmake --build . --target install - set "WININSTALLDIR=!INSTALLDIR:/=\!" - echo !WININSTALLDIR!\bin>> %GITHUB_PATH% - endlocal + echo %INSTALLDIR%\bin>> %GITHUB_PATH% - name: Install GMT (Linux/macOS) if: runner.os != 'Windows' diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index afa3e7d46ed..256f0f838de 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -128,15 +128,10 @@ jobs: run: | mkdir build cd build - setlocal enabledelayedexpansion - set "INSTALLDIR=%INSTALLDIR:\=/%" - set "WINVCPKGROOT=%VCPKG_INSTALLATION_ROOT:/=\%" - cmake -G Ninja .. -DCMAKE_TOOLCHAIN_FILE=!WINVCPKGROOT!\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release + cmake -G Ninja .. -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release cmake --build . cmake --build . --target install - set "WININSTALLDIR=!INSTALLDIR:/=\!" - echo !WININSTALLDIR!\bin>> %GITHUB_PATH% - endlocal + echo %INSTALLDIR%\bin>> %GITHUB_PATH% - name: Build documentation run: | diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bae1aa07ab6..a8f91d3c987 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -124,15 +124,10 @@ jobs: run: | mkdir build cd build - setlocal enabledelayedexpansion - set "INSTALLDIR=%INSTALLDIR:\=/%" - set "WINVCPKGROOT=%VCPKG_INSTALLATION_ROOT:/=\%" - cmake -G Ninja .. -DCMAKE_TOOLCHAIN_FILE=!WINVCPKGROOT!\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release + cmake -G Ninja .. -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release cmake --build . cmake --build . --target install - set "WININSTALLDIR=!INSTALLDIR:/=\!" - echo !WININSTALLDIR!\bin>> %GITHUB_PATH% - endlocal + echo %INSTALLDIR%\bin>> %GITHUB_PATH% - name: Pull baseline image data from dvc remote id: dvc-pull diff --git a/cmake/modules/ConfigCMake.cmake b/cmake/modules/ConfigCMake.cmake index 460efc038e5..24a947a887b 100644 --- a/cmake/modules/ConfigCMake.cmake +++ b/cmake/modules/ConfigCMake.cmake @@ -51,6 +51,11 @@ endif (EXISTS "${CMAKE_BINARY_DIR}/cmake/ConfigUserAdvanced.cmake") # Do any needed processing of the configuration variables # ########################################################### +# Normalize the installation prefix on Windows (avoid mixing slashed and backslashed). +if (WIN32) + file (TO_CMAKE_PATH "${CMAKE_INSTALL_PREFIX}" CMAKE_INSTALL_PREFIX) +endif (WIN32) + # Set default build type to 'Release' if (NOT CMAKE_BUILD_TYPE) set (CMAKE_BUILD_TYPE Release) From e4baa160a2fa54ebd90de8b644474ba35803989f Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Tue, 8 Sep 2026 11:15:21 +0800 Subject: [PATCH 2/4] Simplify the build workflow --- .github/workflows/build.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fb350b162d3..64de3b11739 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -112,7 +112,7 @@ jobs: with: arch: x64 - - name: Compile and Install GMT (Windows) + - name: Compile GMT (Windows) if: runner.os == 'Windows' shell: cmd run: | @@ -120,11 +120,8 @@ jobs: cd build cmake -G Ninja .. -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release cmake --build . - cmake --build . --target install - echo %INSTALLDIR%\bin>> %GITHUB_PATH% - - name: Install GMT (Linux/macOS) - if: runner.os != 'Windows' + - name: Install GMT run: | cd build cmake --build . --target install From ddd75e55059fef5e44db3cac230fa0f9c9e72497 Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Tue, 8 Sep 2026 11:23:43 +0800 Subject: [PATCH 3/4] Simplify other workflows, too --- .github/workflows/build.yml | 4 +--- .github/workflows/docs.yml | 7 ++----- .github/workflows/tests.yml | 7 ++----- 3 files changed, 5 insertions(+), 13 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 64de3b11739..ecbad22fb15 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -137,9 +137,7 @@ jobs: - name: Check a few simple commands shell: bash - run: | - export PATH="$INSTALLDIR/bin:$PATH" - bash ci/simple-gmt-tests.sh + run: bash ci/simple-gmt-tests.sh - name: Check a few simple commands (Windows) shell: cmd diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 256f0f838de..abdca404064 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -122,7 +122,7 @@ jobs: with: arch: x64 - - name: Compile and Install GMT (Windows) + - name: Compile (Windows) if: runner.os == 'Windows' shell: cmd run: | @@ -130,8 +130,6 @@ jobs: cd build cmake -G Ninja .. -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release cmake --build . - cmake --build . --target install - echo %INSTALLDIR%\bin>> %GITHUB_PATH% - name: Build documentation run: | @@ -149,8 +147,7 @@ jobs: # See https://github.com/GenericMappingTools/gmt/issues/7253 grep -v 'WARNING: duplicate label -' doc/rst/html.log - - name: Install GMT (Linux/macOS) - if: runner.os != 'Windows' + - name: Install GMT run: | cd build cmake --build . --target install diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index a8f91d3c987..ffbb2bbdc35 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -118,7 +118,7 @@ jobs: with: arch: x64 - - name: Compile and Install GMT (Windows) + - name: Compile GMT (Windows) if: runner.os == 'Windows' shell: cmd run: | @@ -126,8 +126,6 @@ jobs: cd build cmake -G Ninja .. -DCMAKE_TOOLCHAIN_FILE=%VCPKG_INSTALLATION_ROOT%\scripts\buildsystems\vcpkg.cmake -DCMAKE_BUILD_TYPE=Release cmake --build . - cmake --build . --target install - echo %INSTALLDIR%\bin>> %GITHUB_PATH% - name: Pull baseline image data from dvc remote id: dvc-pull @@ -147,8 +145,7 @@ jobs: env: GH_TOKEN: ${{ github.token }} - - name: Install GMT (Linux/macOS) - if: runner.os != 'Windows' + - name: Install GMT run: | cd build cmake --build . --target install From 604fb03b4e83eb1bfacef5c046108b14c2dfa2c2 Mon Sep 17 00:00:00 2001 From: Dongdong Tian Date: Tue, 8 Sep 2026 11:33:46 +0800 Subject: [PATCH 4/4] Fix typos --- .github/workflows/docs.yml | 2 +- .github/workflows/tests.yml | 2 +- cmake/modules/ConfigCMake.cmake | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index abdca404064..4c80dfa91a4 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -122,7 +122,7 @@ jobs: with: arch: x64 - - name: Compile (Windows) + - name: Compile GMT (Windows) if: runner.os == 'Windows' shell: cmd run: | diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ffbb2bbdc35..24e97fa821d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -145,7 +145,7 @@ jobs: env: GH_TOKEN: ${{ github.token }} - - name: Install GMT + - name: Install GMT run: | cd build cmake --build . --target install diff --git a/cmake/modules/ConfigCMake.cmake b/cmake/modules/ConfigCMake.cmake index 24a947a887b..972ee264640 100644 --- a/cmake/modules/ConfigCMake.cmake +++ b/cmake/modules/ConfigCMake.cmake @@ -51,7 +51,7 @@ endif (EXISTS "${CMAKE_BINARY_DIR}/cmake/ConfigUserAdvanced.cmake") # Do any needed processing of the configuration variables # ########################################################### -# Normalize the installation prefix on Windows (avoid mixing slashed and backslashed). +# Normalize the installation prefix on Windows (avoid mixing slashes and backslashes). if (WIN32) file (TO_CMAKE_PATH "${CMAKE_INSTALL_PREFIX}" CMAKE_INSTALL_PREFIX) endif (WIN32)