bash - 将简单目标添加到 cmake 生成的 makefile
问题描述
TL;DR:如何让 cmake 在生成的 makefile 中输出以下规则?
.PHONY: target-I-want
target-I-want:
echo "Hello World"
你好,
我习惯于使用自己的 makefile 设置项目来运行它可能需要的任何类型的脚本。
我现在正在使用的项目是使用 cmake 构建的,所以我不能只制作自己的 makefile,因为它会被 cmake 生成的文件覆盖。
我正在使用不同的名称设置自己的makefile,例如makefile.dev
,但由于我不想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 构建系统并通过许多自动生成的目标。
我想知道是否有一种方法可以像我写的那样添加我想要的命令,没有额外的东西。
解决方案
我没有看到将任意文本插入生成的 Makefile 的命令。
根据您的评论,您需要让 CMake 生成一个自定义目标,该目标不包括使用 CMake 可执行文件本身。虽然可以抑制 Makefile 重新生成和详细状态消息,但自定义目标仍然在生成的 Makefile 的整体框架中使用 CMake 可执行文件。
如果您真的不想键入,make -f makefile.dev target-I-want
则必须找到另一种方法,例如设置别名或调用命令的脚本,或将任意文本附加到由 CMake 生成的顶级 Makefile。
推荐阅读
- r - 如何从 R 中的数字中选择第 n 个数字?
- sql - 查找不同年份的缺失部分数据
- python - 将 csv 文件上传到 cassandra(语法错误)
- git - 如何在已经存在的本地 git 存储库上设置 Visual Studio 2019?
- sql - 如何计算同一项目的多行?
- javascript - Google 登录 API - 附加范围(Gmail 发送方式)
- php - WooCommerce 电子邮件模板中的 ACF 自定义字段
- database - 如何使用键从另一个表中插入数据?
- angular - ngClass 最佳实践中的角度参考 id
- java - 双击 jtable 的错误行为