From fad9d58ac680e8705a1dd9845e63af1800959128 Mon Sep 17 00:00:00 2001 From: Pauli Date: Sun, 8 Jul 2018 00:05:32 +0300 Subject: [PATCH] Keep git-describe.h in source tree Temporary file goes to binary directory to avoid race between simultanous builts. --- library/CMakeLists.txt | 12 +++++++----- library/git-describe.cmake | 2 -- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index db2d9ca45..a61411f65 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -304,7 +304,7 @@ ELSE(WIN32) ENDIF() set(VERSION_SRCS DFHackVersion.cpp) -set(VERSION_HDRS git-describe.h) +set(VERSION_HDRS include/git-describe.h) SET_SOURCE_FILES_PROPERTIES(${VERSION_HDRS} PROPERTIES HEADER_FILE_ONLY TRUE) @@ -325,17 +325,19 @@ ENDIF() # always re-run git-describe if cmake is re-run (e.g. if build ID or version changes) EXECUTE_PROCESS(COMMAND ${CMAKE_COMMAND} -E touch ${CMAKE_CURRENT_SOURCE_DIR}/git-describe.cmake) -target_include_directories(dfhack-version PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) +ADD_CUSTOM_COMMAND(OUTPUT always_rebuild + COMMAND ${CMAKE_COMMAND} -E echo) -ADD_CUSTOM_COMMAND(OUTPUT always_rebuild ${CMAKE_CURRENT_BINARY_DIR}/git-describe.h +ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/include/git-describe.h COMMAND ${CMAKE_COMMAND} -D dfhack_SOURCE_DIR:STRING=${dfhack_SOURCE_DIR} - -D git_describe_h:STRING=${CMAKE_CURRENT_BINARY_DIR}/git-describe.h + -D git_describe_h:STRING=${CMAKE_CURRENT_SOURCE_DIR}/include/git-describe.h + -D git_describe_tmp_h:STRING=${CMAKE_CURRENT_BINARY_DIR}/git-describe.h -D GIT_EXECUTABLE:STRING=${GIT_EXECUTABLE} -D DFHACK_BUILD_ID:STRING=${DFHACK_BUILD_ID} -P ${CMAKE_CURRENT_SOURCE_DIR}/git-describe.cmake COMMENT "Obtaining git commit information" - DEPENDS ${GIT_EXECUTABLE} + DEPENDS ${GIT_EXECUTABLE} always_rebuild VERBATIM ) diff --git a/library/git-describe.cmake b/library/git-describe.cmake index 7cf211674..73375ceed 100644 --- a/library/git-describe.cmake +++ b/library/git-describe.cmake @@ -2,8 +2,6 @@ if(NOT EXISTS ${dfhack_SOURCE_DIR}/.git/index OR NOT EXISTS ${dfhack_SOURCE_DIR} MESSAGE(FATAL_ERROR "Could not find git index file(s)") endif() -set(git_describe_tmp_h ${git_describe_h}.tmp) - if(EXISTS ${git_describe_tmp_h} AND EXISTS ${git_describe_h} AND NOT(${dfhack_SOURCE_DIR}/.git/index IS_NEWER_THAN ${git_describe_tmp_h}) AND NOT(${dfhack_SOURCE_DIR}/.git/modules/library/xml/index IS_NEWER_THAN ${git_describe_tmp_h}) AND