在使用 Scala 的简单构建工具 (SBT) 并喜欢它之后,我正在开发一个广泛使用 CMake 的 C++ 项目。CMake 文件相当复杂,修改它们甚至理解它们都非常痛苦。相比之下,我发现即使是大型项目的 SBT 配置也是可读的,我认为这是由于静态类型和不变性。
是否有任何努力将 SBT 风格的优点带入 C++?
在使用 Scala 的简单构建工具 (SBT) 并喜欢它之后,我正在开发一个广泛使用 CMake 的 C++ 项目。CMake 文件相当复杂,修改它们甚至理解它们都非常痛苦。相比之下,我发现即使是大型项目的 SBT 配置也是可读的,我认为这是由于静态类型和不变性。
是否有任何努力将 SBT 风格的优点带入 C++?
使用 SCons,您拥有 Python 的类型安全性——因此只是动态的运行时类型安全性。其他任何事情都取决于您的 IDE(即静态代码分析)。因此,我认为 SBT 有其优势,因为您拥有 Scala 的编译时类型安全性。
但对于 C/C++,我认为 SCons 更适合(我是 SConsolidator 的作者 - 所以我可能有偏见)。它具有内置扫描器来检测包含依赖项和生成器以生成目标文件、静态和共享库——SBT 目前没有的所有东西——至少据我所知。
我和它一起工作boost
了很长时间,我非常喜欢它,所以也许我夸大了这一点,但你应该看到boost.build
它非常容易并且适用于非常大的项目(比如boost
它自己)。