From 9a2cced23a6904fe03df92ca32c1ae98753440c7 Mon Sep 17 00:00:00 2001 From: Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> Date: Thu, 14 May 2026 13:27:13 +0100 Subject: [PATCH] cmake, refactor: Move `find_package(Git)` to `src/CMakeLists.txt` This change allows the use of the `CMAKE_DISABLE_FIND_PACKAGE_Git` variable to explicitly disable git usage. --- cmake/script/GenerateBuildInfo.cmake | 5 ++--- src/CMakeLists.txt | 3 ++- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cmake/script/GenerateBuildInfo.cmake b/cmake/script/GenerateBuildInfo.cmake index d3ee2eb0621..694961df0b5 100644 --- a/cmake/script/GenerateBuildInfo.cmake +++ b/cmake/script/GenerateBuildInfo.cmake @@ -5,7 +5,7 @@ macro(fatal_error) message(FATAL_ERROR "\n" "Usage:\n" - " cmake -D BUILD_INFO_HEADER_PATH= [-D SOURCE_DIR=] -P ${CMAKE_CURRENT_LIST_FILE}\n" + " cmake -D BUILD_INFO_HEADER_PATH= -D GIT_EXECUTABLE= [-D SOURCE_DIR=] -P ${CMAKE_CURRENT_LIST_FILE}\n" "All specified paths must be absolute ones.\n" ) endmacro() @@ -31,8 +31,7 @@ endif() set(GIT_TAG) set(GIT_COMMIT) if(NOT "$ENV{BITCOIN_GENBUILD_NO_GIT}" STREQUAL "1") - find_package(Git QUIET) - if(Git_FOUND) + if(GIT_EXECUTABLE) execute_process( COMMAND ${GIT_EXECUTABLE} rev-parse --is-inside-work-tree WORKING_DIRECTORY ${WORKING_DIR} diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index b37f3c8ca5c..ddbf2d6dd83 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -37,9 +37,10 @@ if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib) endif() +find_package(Git QUIET) add_custom_target(generate_build_info BYPRODUCTS ${PROJECT_BINARY_DIR}/src/bitcoin-build-info.h - COMMAND ${CMAKE_COMMAND} -DBUILD_INFO_HEADER_PATH=${PROJECT_BINARY_DIR}/src/bitcoin-build-info.h -DSOURCE_DIR=${PROJECT_SOURCE_DIR} -P ${PROJECT_SOURCE_DIR}/cmake/script/GenerateBuildInfo.cmake + COMMAND ${CMAKE_COMMAND} -DGIT_EXECUTABLE=${GIT_EXECUTABLE} -DBUILD_INFO_HEADER_PATH=${PROJECT_BINARY_DIR}/src/bitcoin-build-info.h -DSOURCE_DIR=${PROJECT_SOURCE_DIR} -P ${PROJECT_SOURCE_DIR}/cmake/script/GenerateBuildInfo.cmake COMMENT "Generating bitcoin-build-info.h" VERBATIM )