【发布时间】:2014-01-02 13:45:15
【问题描述】:
我正在考虑用 CMake 替换配置/制作风格的构建过程。 CMake 在复杂的事情上表现良好,但在简单的事情上更加冗长。 例如 GNU Make 文件:
你好: 回声“你好世界”>$@在 CMake 中会是:
add_custom_command(输出你好 命令回显“你好世界”>你好) add_custom_target(所有都取决于你好)另请参阅Adding a custom command with the file name as a target。
实际上更像:
你好: 回声“你好世界”>你好 大家:你好对于更复杂的构建,automatic variables 的缺失非常明显。
经过多次路由(似乎很难搜索 $@)我发现:
这建议使用包装函数和
建议使用接近自动变量的生成器表达式, 但不够接近。
我有几个相关的问题:
1a) 自提出该问题以来,CMake 本身或执行此操作的最佳实践是否有所进展?
1b) CMake 是否可能会提供与自动变量等效的功能? 如果没有,为什么不呢?
StackOverflow 和 Internet 上的其他地方都很好地涵盖了各个问题,但是:
2a) 是否有任何好的指南或备忘单可以帮助从直接使用 GNU make 进行迁移。
2b) 它们是 CMake 的最佳最佳实践指南吗?
这超出了 Makefile equivalent in CMake 中的建议。我正在逐步发展自己的风格,但我想避免无马车类型的错误和不必要的复杂性。
【问题讨论】:
-
对于 2a+b,我真的在寻找一些经过编译的后见之明,例如您可能从有效 C++ 之类的书中得到的。你得到的不仅仅是一组规则,而是这些规则背后的推理。
-
我找到了以下cmake反模式列表:voices.canonical.com/jussi.pakkanen/2013/03/26/…
标签: cmake