date +"%s" > ${TIMESTAMP}
生成した 3 つの実行可能ファイルのそれぞれに対してを呼び出したいと思います (つまり、それぞれの実行可能ファイルが作成された場合にのみタイムスタンプを作成します) 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}" )