From d5241a2c04b4d10a49348529114f14f7b54e3205 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Wed, 29 Apr 2026 20:56:29 +0100 Subject: [PATCH] cmake: don't recreate git2.h unnecessarily Instead of regenerating `git2.h` on every cmake invocation, use `configure_file` to avoid rewriting it. This keeps timestamps inline and avoids unnecessarily rebuilding the library. --- src/libgit2/CMakeLists.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/libgit2/CMakeLists.txt b/src/libgit2/CMakeLists.txt index 195be8002..270b8936b 100644 --- a/src/libgit2/CMakeLists.txt +++ b/src/libgit2/CMakeLists.txt @@ -99,9 +99,10 @@ configure_file(experimental.h.in "${PROJECT_BINARY_DIR}/include/git2/experimenta # translate filenames in the git2.h so that they match the install directory # (allows for side-by-side installs of libgit2 and libgit2-experimental.) -FILE(READ "${PROJECT_SOURCE_DIR}/include/git2.h" LIBGIT2_INCLUDE) -STRING(REGEX REPLACE "#include \"git2\/" "#include \"${LIBGIT2_FILENAME}/" LIBGIT2_INCLUDE "${LIBGIT2_INCLUDE}") -FILE(WRITE "${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}.h" ${LIBGIT2_INCLUDE}) +file(READ "${PROJECT_SOURCE_DIR}/include/git2.h" LIBGIT2_INCLUDE) +string(REGEX REPLACE "#include \"git2\/" "#include \"${LIBGIT2_FILENAME}/" LIBGIT2_INCLUDE "${LIBGIT2_INCLUDE}") +file(WRITE "${LIBGIT2_FILENAME}.h.tmp" ${LIBGIT2_INCLUDE}) +configure_file("${LIBGIT2_FILENAME}.h.tmp" "${PROJECT_BINARY_DIR}/include/${LIBGIT2_FILENAME}.h" COPYONLY) # cmake package targets