Как заставить cmake создать файл метки времени после фактической сборки / ссылки? (ничего не делать, если исполняемый файл не изменился)
Я хотел бы призватьdate +"%s" > ${TIMESTAMP}
для каждого из трех исполняемых файлов,myapp_data
myapp_live
а такжеmyapp_sim
что я генерирую (т.е. создаю временную метку, только если созданы соответствующие исполняемые файлы).
Я могу'Кажется, я не понимаю, почему моя пользовательская команда невыполняется даже после удаления двоичных файлов и повторной связи. Сборка работает нормально - не генерируется только метка временит работа.
MACRO( MY_APP TAG )
SET( BINARY_TGT "myapp_${TAG}" )
SET( TIMESTAMP "TIMESTAMP_${TAG}" )
ADD_EXECUTABLE( ${BINARY_TGT} ${APP_SRCS} )
ADD_CUSTOM_COMMAND(
OUTPUT ${TIMESTAMP}
COMMAND date
ARGS +\"%s\" > ${TIMESTAMP}
DEPENDS ${BINARY_TGT}
)
ENDMACRO( MY_APP )
SUBDIRS( data )
SUBDIRS( live )
SUBDIRS( sim )
Внутри каталога данных у меня есть:
FILE(GLOB APP_SRCS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} main_data.cpp)
SET( MY_TAG data )
MY_APP( "${MY_TAG}" )