Only replace fingerprint file when MD5 changes. Avoids rebuilding several things if nothing has actually changes, as cmake is only looking at timestamps.
This commit is contained in:
parent
bac6703f8e
commit
b2d444d782
@ -1,10 +1,24 @@
|
|||||||
set(OLDFILE ${SOURCE_DIR}/util/fingerprint_impl.hpp)
|
set(OLDFILE ${SOURCE_DIR}/util/fingerprint_impl.hpp)
|
||||||
if (EXISTS ${OLDFILE})
|
set(NEWFILE ${OLDFILE}.tmp)
|
||||||
file(REMOVE_RECURSE ${OLDFILE})
|
set(INFILE ${OLDFILE}.in)
|
||||||
endif()
|
|
||||||
file(MD5 ${SOURCE_DIR}/prepare.cpp MD5PREPARE)
|
file(MD5 ${SOURCE_DIR}/prepare.cpp MD5PREPARE)
|
||||||
file(MD5 ${SOURCE_DIR}/data_structures/static_rtree.hpp MD5RTREE)
|
file(MD5 ${SOURCE_DIR}/data_structures/static_rtree.hpp MD5RTREE)
|
||||||
file(MD5 ${SOURCE_DIR}/util/graph_loader.hpp MD5GRAPH)
|
file(MD5 ${SOURCE_DIR}/util/graph_loader.hpp MD5GRAPH)
|
||||||
file(MD5 ${SOURCE_DIR}/server/data_structures/internal_datafacade.hpp MD5OBJECTS)
|
file(MD5 ${SOURCE_DIR}/server/data_structures/internal_datafacade.hpp MD5OBJECTS)
|
||||||
|
|
||||||
CONFIGURE_FILE(${SOURCE_DIR}/util/fingerprint_impl.hpp.in ${SOURCE_DIR}/util/fingerprint_impl.hpp)
|
CONFIGURE_FILE(${INFILE} ${NEWFILE})
|
||||||
|
|
||||||
|
file(MD5 ${NEWFILE} MD5NEW)
|
||||||
|
|
||||||
|
if (EXISTS ${OLDFILE})
|
||||||
|
file(MD5 ${OLDFILE} MD5OLD)
|
||||||
|
if(NOT ${MD5NEW} STREQUAL ${MD5OLD})
|
||||||
|
file(REMOVE_RECURSE ${OLDFILE})
|
||||||
|
file(RENAME ${NEWFILE} ${OLDFILE})
|
||||||
|
else()
|
||||||
|
file(REMOVE_RECURSE ${NEWFILE})
|
||||||
|
message(STATUS "Fingerprint unchanged, not regenerating")
|
||||||
|
endif()
|
||||||
|
else()
|
||||||
|
file(RENAME ${NEWFILE} ${OLDFILE})
|
||||||
|
endif()
|
||||||
|
Loading…
Reference in New Issue
Block a user