【发布时间】:2012-09-12 22:48:34
【问题描述】:
在使用 Scala 的简单构建工具 (SBT) 并喜欢它之后,我正在开发一个广泛使用 CMake 的 C++ 项目。 CMake 文件相当复杂,修改它们甚至理解它们都很痛苦。相比之下,我发现即使是大型项目的 SBT 配置也是可读的,我认为这是由于静态类型和不变性。
是否有任何努力将 SBT 风格的优点带入 C++?
【问题讨论】:
-
构建系统类型安全意味着什么?您正在寻找能够检测 ODR 违规的东西吗?看看 Microsoft
detect_mismatchpragma 和/d1reportSingleClassLayoutXXX编译器开关 -
@BenVoigt 在 SBT 中,您使用 Scala 编写构建文件。因此,构建文件被编译,并且由于类型错误或代码约束(例如通过隐式)而导致的不一致被检测到。相比之下,SCons(例如)使用动态语言,并且仅在评估错误声明时才报告错误。
-
如果您喜欢 SBT,那么我认为没有什么能阻止您通过命令行编译器步骤使用 SBT。因此,您将拥有一组 SBT 语句,用于生成带有适当参数的编译器命令行,然后执行编译器命令行。这就是任何各种版本的 make 以及用于构建工具的 Ant 和其他类型的脚本语言所做的。据我所知,SBT 只是另一个用于创建和执行编译器命令行的平台。
-
如果查看en.wikipedia.org/wiki/List_of_build_automation_software,我们将不断努力为任何口味制作大量的构建工具。很多东西都可以构建 C++。 SBT 似乎是“种族主义者”(仅构建 Scala 和 Java)。那么你的问题又是什么?
标签: c++ cmake sbt build-automation