From f23144b9338bb85396a016317ce3f1fe500448f0 Mon Sep 17 00:00:00 2001 From: Wenju He Date: Wed, 26 Aug 2026 03:33:26 +0200 Subject: [PATCH] Make hwloc_targ PATCH_COMMAND idempotent UPDATE_DISCONNECTED still re-touches the update step's stamp on every build, which invalidates the downstream patch step's stamp even though the source wasn't reset. Since git apply isn't idempotent, this made every incremental build after the first fail with "patch does not apply". Skip re-applying when the patch is already present. Co-Authored-By: Claude Sonnet 5 --- CMakeLists.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8d4a6118a..efac0fb23 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -354,8 +354,9 @@ if(UMF_LINK_HWLOC_STATICALLY) GIT_REPOSITORY ${UMF_HWLOC_REPO} GIT_TAG ${UMF_HWLOC_TAG} UPDATE_DISCONNECTED TRUE - PATCH_COMMAND git apply - ${PROJECT_SOURCE_DIR}/cmake/fix_coverity_issues.patch + PATCH_COMMAND + sh -c + "git apply --reverse --check ${PROJECT_SOURCE_DIR}/cmake/fix_coverity_issues.patch || git apply ${PROJECT_SOURCE_DIR}/cmake/fix_coverity_issues.patch" CONFIGURE_COMMAND ${CMAKE_COMMAND} -E env "CC=${UMF_HWLOC_CC}" "CXX=${UMF_HWLOC_CXX}" /autogen.sh COMMAND