cmake: Skip using git when building from source tarball or as subproject

This commit is contained in:
Hennadii Stepanov
2026-05-14 13:32:27 +01:00
parent fe941938e8
commit b71cd5c162
2 changed files with 7 additions and 1 deletions

1
.gitattributes vendored
View File

@@ -1 +1,2 @@
src/clientversion.cpp export-subst
src/CMakeLists.txt export-subst

View File

@@ -37,7 +37,12 @@ if(NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
endif()
find_package(Git QUIET)
set(IS_SOURCE_TARBALL FALSE)
# git will expand the next line to "set(IS_SOURCE_TARBALL TRUE)" inside archives:
#$Format:%nset(IS_SOURCE_TARBALL TRUE)$
if(NOT IS_SOURCE_TARBALL AND PROJECT_IS_TOP_LEVEL)
find_package(Git QUIET)
endif()
add_custom_target(generate_build_info
BYPRODUCTS ${PROJECT_BINARY_DIR}/src/bitcoin-build-info.h
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