add_custom_command: 带有OUTPUT参数的调用 用于生成项目中自动产生的源文件。
add_custom_command(OUTPUT output1 [output2 ...]
# COMMAND command1 [ARGS] [args1...]
# [COMMAND command2 [ARGS] [args2...] ...]
# [MAIN_DEPENDENCY depend]
# [DEPENDS [depends...]]
# [IMPLICIT_DEPENDS <lang1> depend1 ...]
# [WORKING_DIRECTORY dir]
# [COMMENT comment] [VERBATIM] [APPEND])
add_custom_command(OUTPUT ${TEST_FILE} COMMAND echo "this is output log.txt" COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_FILE} ${TEST_FILE} COMMENT "This is a test1")
以上命令,照着例子抄写,竟然提示内部出现错误,经过反复检查和理解,最终发现, 是最后一个COMMAND和COMMENT之间多写了几个空格导致错误。真是个坑啊,同时也觉得,没事别乱写空格,自己个自己挖了个坑。
set(TEST_FILE "log.txt")
add_custom_command(OUTPUT ${TEST_FILE} COMMAND echo "this is output log.txt" COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_LIST_FILE} ${TEST_FILE} COMMENT "This is a test1")
add_custom_target(Test1 ALL DEPENDS ${TEST_FILE})