【发布时间】:2015-10-17 01:42:39
【问题描述】:
我想在 CMake 中有一些东西,只要我输入 make 就会执行
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/build_date.cc
PRE_BUILD
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/mk_build_date.py
${CMAKE_CURRENT_BINARY_DIR}/build_date.cc
)
add_custom_target(build-date-xxx
ALL
DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/build_date.cc)
这就是我目前正在做的事情。不幸的是,make build-date-xxx 只会生成一次文件。
即使没有 add_custom_target 声明,该文件也只会构建一次。
GNU Make 中的结果应该是这样的
.PHONY all:
echo "hallo welt"
all: foo.c bar.c
%.c:
touch $@
只要输入 make 就在该 makefile 中。因为 all 是第一个目标,所以它总是会被调用并且自定义命令 echo "hallo welt" 会被实际执行。
【问题讨论】:
-
密切相关但执行太晚:stackoverflow.com/questions/13920072/…
标签: cmake cmake-custom-command