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
回顯