LINUX.ORG.RU

История изменений

Исправление 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 не должно, и в итоге ничего что зависит от этого хедера пересобираться не должно. В крайнем случае можешь попробовать просто вырезать эту помойку. Кусок из твоей цитаты, например.