История изменений
Исправление slovazap, (текущая версия) :
version_fake_file твоей сборки не касается. Он, похоже, нужен чтобы ручная цель `make version` всегда пересобиралась. Далее, в TrojitaVersion.cmake:
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/trojita-version.h.in ${TROJITA_VERSION_H})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_BINARY_DIR}/trojita-version.h.in ${CMAKE_CURRENT_BINARY_DIR}/trojita-version.h)
т.е. в trojita-version.h.in записывается новое состяние, и в .h копируется только если оно другое. Смотри что там в этих файлах - по логике trojita-version.h.in хоть и перезаписывается каждый раз, содержимое меняться не должно, копироваться поверх .h не должно (но возможно copy_if_different работает как-то не так и внезапно смотрит на дату), и в итоге ничего что зависит от этого хедера пересобираться не должно. В крайнем случае можешь попробовать просто вырезать эту помойку. Кусок из твоей цитаты, например.
Исходная версия slovazap, :
version_fake_file твоей сборки не касается. Он, похоже, нужен чтобы ручная цель `make version` всегда пересобиралась. Далее, в TrojitaVersion.cmake:
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/trojita-version.h.in ${TROJITA_VERSION_H})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different
${CMAKE_CURRENT_BINARY_DIR}/trojita-version.h.in ${CMAKE_CURRENT_BINARY_DIR}/trojita-version.h)
т.е. в trojita-version.h.in записывается новое состяние, и в .h копируется только если оно другое. Смотри что там в этих файлах - по логике trojita-version.h.in хоть и перезаписывается каждый раз, содержимое меняться не должно, копироваться поверх .h не должно, и в итоге ничего что зависит от этого хедера пересобираться не должно. В крайнем случае можешь попробовать просто вырезать эту помойку. Кусок из твоей цитаты, например.