Skip to content

Commit cd17c50

Browse files
bellenotguitargeek
authored andcommitted
[win] Fix git apply failures in incremental builds (#22075)
* [win] Fix `git apply` failures in incremental builds * [cmake] Use marker files to detect if the patch has been applied (cherry picked from commit bfe9a83)
1 parent 5bb2908 commit cd17c50

5 files changed

Lines changed: 32 additions & 13 deletions

File tree

builtins/cfitsio/CMakeLists.txt

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,13 @@ if(WIN32)
2626
set(patch_args --ignore-whitespace)
2727
endif()
2828

29+
if(NOT EXISTS "${CFITSIO_PREFIX}/src/BUILTIN_CFITSIO/._patched")
30+
set(CFITSIO_PATCH_COMMAND PATCH_COMMAND git apply ${patch_args}
31+
${CMAKE_CURRENT_SOURCE_DIR}/cfitsio-no-find-zlib.diff
32+
${CMAKE_CURRENT_SOURCE_DIR}/no-fortran-wrapper.diff
33+
${CMAKE_CURRENT_SOURCE_DIR}/cfitsio-marker.diff)
34+
endif()
35+
2936
ExternalProject_Add(
3037
BUILTIN_CFITSIO
3138
PREFIX ${CFITSIO_PREFIX}
@@ -43,12 +50,10 @@ ExternalProject_Add(
4350
-DZLIB_INCLUDE_DIR=${ZLIB_INCLUDE_DIRS}
4451
-DZLIB_LIBRARIES=$<TARGET_FILE:ZLIB::ZLIB>
4552
# Skip the find_package(ZLIB REQUIRED), because we feed CFITSIO our own ZLIB flags.
46-
PATCH_COMMAND git apply ${patch_args}
47-
${CMAKE_CURRENT_SOURCE_DIR}/cfitsio-no-find-zlib.diff
48-
${CMAKE_CURRENT_SOURCE_DIR}/no-fortran-wrapper.diff
53+
${CFITSIO_PATCH_COMMAND}
4954
BUILD_COMMAND ${CMAKE_COMMAND} --build . ${CFITSIO_BUILD_COMMAND_FLAGS}
5055
INSTALL_COMMAND ${CMAKE_COMMAND} --build . ${CFITSIO_BUILD_COMMAND_FLAGS} --target install
51-
LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_OUTPUT_ON_FAILURE 1
56+
LOG_PATCH 1 LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_OUTPUT_ON_FAILURE 1
5257
BUILD_BYPRODUCTS ${CFITSIO_LIBRARIES}
5358
TIMEOUT 600
5459
)
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
--- /dev/null 2026-03-12 08:23:04
2+
+++ ._patched 2026-04-28 08:20:11
3+
@@ -0,0 +1,1 @@
4+
+cfitsio has been patched

builtins/gl2ps/CMakeLists.txt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ set(ROOT_GL2PS_VERSION 1.4.2)
1010
set(ROOT_GL2PS_HASH "8d1c00c1018f96b4b97655482e57dcb0ce42ae2f1d349cd6d4191e7848d9ffe9")
1111
# Backport fix for static Win32 having being overwritten by shared lib: https://gitlab.onelab.info/gl2ps/gl2ps/-/work_items/30
1212
# We use all seven commits between 1.4.2 and before bump to 1.4.3
13-
set(ROOT_GL2PS_PATCH_FILE ${CMAKE_CURRENT_SOURCE_DIR}/v142_post_tag_fixes.patch)
13+
set(ROOT_GL2PS_PATCH_FILES ${CMAKE_CURRENT_SOURCE_DIR}/v142_post_tag_fixes.patch ${CMAKE_CURRENT_SOURCE_DIR}/gl2ps-marker.patch)
1414

1515
set(ROOT_GL2PS_PREFIX ${CMAKE_BINARY_DIR}/builtins/GL2PS-prefix)
1616

@@ -29,12 +29,17 @@ if(WIN32)
2929
set(patch_args --ignore-whitespace)
3030
endif()
3131

32+
# check if the patch has already been applied
33+
if(NOT EXISTS "${ROOT_GL2PS_PREFIX}/src/BUILTIN_GL2PS/._patched")
34+
set(GL2PS_PATCH_COMMAND PATCH_COMMAND git apply ${patch_args} ${ROOT_GL2PS_PATCH_FILES})
35+
endif()
36+
3237
ExternalProject_Add(
3338
BUILTIN_GL2PS
3439
PREFIX ${ROOT_GL2PS_PREFIX}
3540
URL ${lcgpackages}/gl2ps-${ROOT_GL2PS_VERSION}.tgz
3641
URL_HASH SHA256=${ROOT_GL2PS_HASH}
37-
PATCH_COMMAND git apply ${patch_args} ${ROOT_GL2PS_PATCH_FILE}
42+
${GL2PS_PATCH_COMMAND}
3843
CMAKE_ARGS -G ${CMAKE_GENERATOR}
3944
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
4045
-DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
@@ -46,11 +51,7 @@ ExternalProject_Add(
4651
-DBUILD_SHARED_LIBS=OFF
4752
BUILD_COMMAND ${CMAKE_COMMAND} --build . ${ROOT_GL2PS_BUILD_COMMAND_FLAGS}
4853
INSTALL_COMMAND ${CMAKE_COMMAND} --build . ${ROOT_GL2PS_BUILD_COMMAND_FLAGS} --target install
49-
LOG_DOWNLOAD 1
50-
LOG_CONFIGURE 1
51-
LOG_BUILD 1
52-
LOG_INSTALL 1
53-
LOG_OUTPUT_ON_FAILURE 1
54+
LOG_PATCH 1 LOG_DOWNLOAD 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_OUTPUT_ON_FAILURE 1
5455
BUILD_BYPRODUCTS ${ROOT_GL2PS_LIBRARY}
5556
TIMEOUT 600)
5657

builtins/gl2ps/gl2ps-marker.patch

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
--- /dev/null 2026-03-12 08:23:04
2+
+++ ._patched 2026-04-28 08:20:11
3+
@@ -0,0 +1,1 @@
4+
+gl2ps has been patched

builtins/libgif/CMakeLists.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,17 @@ if(WIN32)
2828
set(patch_args --ignore-whitespace)
2929
endif()
3030

31+
# check if the patch has already been applied
32+
if(NOT EXISTS "${ROOT_LIBGIF_PREFIX}/src/BUILTIN_LIBGIF/CMakeLists.txt")
33+
set(LIBGIF_PATCH_COMMAND PATCH_COMMAND git apply ${patch_args} ${ROOT_LIBGIF_PATCH_FILE})
34+
endif()
35+
3136
ExternalProject_Add(
3237
BUILTIN_LIBGIF
3338
PREFIX ${ROOT_LIBGIF_PREFIX}
3439
URL ${lcgpackages}/giflib-${ROOT_LIBGIF_VERSION}.tar.gz
3540
URL_HASH SHA256=${ROOT_LIBGIF_HASH}
36-
PATCH_COMMAND git apply ${patch_args} ${ROOT_LIBGIF_PATCH_FILE}
41+
${LIBGIF_PATCH_COMMAND}
3742
CMAKE_ARGS -G ${CMAKE_GENERATOR}
3843
-DCMAKE_POLICY_VERSION_MINIMUM=3.5
3944
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
@@ -43,7 +48,7 @@ ExternalProject_Add(
4348
-DCMAKE_C_VISIBILITY_PRESET=hidden
4449
BUILD_COMMAND ${CMAKE_COMMAND} --build . ${ROOT_LIBGIF_BUILD_COMMAND_FLAGS}
4550
INSTALL_COMMAND ${CMAKE_COMMAND} --build . ${ROOT_LIBGIF_BUILD_COMMAND_FLAGS} --target install
46-
LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_OUTPUT_ON_FAILURE 1
51+
LOG_PATCH 1 LOG_CONFIGURE 1 LOG_BUILD 1 LOG_INSTALL 1 LOG_OUTPUT_ON_FAILURE 1
4752
BUILD_BYPRODUCTS ${ROOT_LIBGIF_LIBRARY}
4853
TIMEOUT 600
4954
)

0 commit comments

Comments
 (0)