diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -169,11 +169,22 @@ set(OBJ_DIR "${CMAKE_CURRENT_BINARY_DIR}/obj") file(MAKE_DIRECTORY "${OBJ_DIR}") -add_custom_target(build_header +set(BUILD_HEADER "${OBJ_DIR}/build.h") +set(BUILD_HEADER_TMP "${BUILD_HEADER}.tmp") +add_custom_command( + DEPENDS + "${CMAKE_SOURCE_DIR}/.git/logs/HEAD" + "${CMAKE_SOURCE_DIR}/share/genbuild.sh" + OUTPUT + "${BUILD_HEADER}" COMMAND "${CMAKE_SOURCE_DIR}/share/genbuild.sh" - "${OBJ_DIR}/build.h" + "${BUILD_HEADER_TMP}" "${CMAKE_SOURCE_DIR}" + COMMAND + ${CMAKE_COMMAND} -E copy_if_different "${BUILD_HEADER_TMP}" "${BUILD_HEADER}" + COMMAND + ${CMAKE_COMMAND} -E remove "${BUILD_HEADER_TMP}" ) # Because the Bitcoin ABc source code is disorganised, we @@ -205,9 +216,11 @@ utilstrencodings.cpp utiltime.cpp util/bytevectorhash.cpp + + # obj/build.h + "${BUILD_HEADER}" ) -add_dependencies(util build_header) target_compile_definitions(util PUBLIC HAVE_CONFIG_H HAVE_BUILD_INFO) target_include_directories(util PUBLIC