cmake中执行shell命令,有两种形式:execute_process,和add_custom_command。
其中add_custom_command可以实现复杂的逻辑命令。
自定义cmake的命令,有两种形式:add_custom_command(OUTPUT .....) 和 add_custom_command(TARGET ......)
示例:
CMakeLists.txt内容
cmake_minimum_required(VERSION 3.10.0)
include("a.txt")
a.txt 内容
set(TEST_FILE "log.txt")
add_custom_command(OUTPUT ${TEST_FILE}
COMMAND echo "in 1st add_custom_command"
COMMAND cmake -E copy ${CMAKE_CURRENT_LIST_FILE} ${TEST_FILE}
COMMENT "in 1st comment")
add_custom_target(Test1 ALL DEPENDS ${TEST_FILE})
add_custom_command(TARGET Test1
PRE_BUILD
COMMAND echo "in 2nd add_custom_command"
COMMENT "in 2nd comment"
)
执行命令:cmake
回显