TL; DR:如何使cmake在生成的Makefile中输出以下规则?
.PHONY: target-I-want
target-I-want:
echo "Hello World"
嗨,
我习惯用自己的makefile设置项目以运行它可能需要的任何类型的脚本。
我现在正在使用的项目是使用cmake构建的,所以我不能只创建自己的makefile,因为它将被cmake生成的文件覆盖。
我正在使用不同的名称(例如makefile.dev
)设置我自己的makefile,但是由于我不想每次都运行make -f makefile.dev target-I-want
,因此我认为add_custom_target
可以为我提供帮助
这就是我添加到CMakeLists.txt中的内容:
ADD_CUSTOM_TARGET(target-I-want
COMMAND make -f ${CMAKE_CURRENT_SOURCE_DIR}/makefile.dev target-I-want
)
它有效。但是,当我运行它时,它确实比运行我想要的命令(make -f ${CMAKE_CURRENT_SOURCE_DIR}/makefile.dev target-I-want
)更为重要,例如检查cmake构建系统并通过许多自动生成的目标。
我想知道是否有一种方法可以像我写的一样添加我想要的命令,而没有其他功能。
答案 0 :(得分:1)
我没有看到将任意文本插入生成的Makefile中的命令。
根据您的评论,您需要让CMake生成自定义目标,该目标也不包括对CMake可执行文件本身的使用。虽然可以禁止重新生成Makefile和显示详细的状态消息,但自定义目标仍在生成的Makefile的总体框架中使用CMake可执行文件。
如果您真的不想输入make -f makefile.dev target-I-want
,则必须找到一种替代方法,例如设置别名,调用该命令的脚本或将任意文本附加到顶部, CMake生成的级别的Makefile。