Там хороший трюк, который делает именно то, что вам нужно. Это основано на идее, которую я нашел в модуле git-revision @rpavlik , см. Это так: вопрос
. Это общая идея:
.pri
изменяется CMakeLists.txt
Возможная реализация:
set(input_pri_file )
set(timestamp_file ${CMAKE_CURRENT_BINARY_DIR}/timestamp.cmake)
add_custom_command(
OUTPUT ${timestamp_file}
COMMAND ${CMAKE_COMMAND} -E touch ${timestamp_file}
MAIN_DEPENDENCY ${input_pri_file}
VERBATIM
COMMENT "Updating timestamp.cmake"
)
if(NOT EXISTS "${timestamp_file}")
file(WRITE ${timestamp_file} "") # create initial empty file
endif()
include(${timestamp_file})
# create the file list from input_pri_file
....
# use the file list
add_executable(main ${filelist})
Вот что происходит при изменении файла .pri
:
CMakeLists
включает в себя временную метку, которая зависит от нее CMakeLists.txt