【发布时间】:2014-04-06 01:35:51
【问题描述】:
我正在开发一个 Python/Haskell 项目,我正在寻找 Makefile 的替代品。显而易见的选择是 Python SCons 和 Haskell Shake。由于我没有使用过它们中的任何一个,所以我想问一下它们的优缺点是否有任何比较。
更新:该项目的建设要求有些复杂:
- 让用户配置构建 - 例如启用/禁用选项、工具路径等。
- 在编译时会生成 Haskell 和 Python 文件。它们的依赖项应该可以正常工作。
- 有多个 Haskell 程序共享大部分源文件。我想这样:
- 可以单独构建每一个,而不是构建不需要的源;
- 编译多个程序时不会多次构建源文件;
- 尽可能在编译期间实现并行性。
- 检查目标系统上的多个已安装程序及其路径(如
python、flock等) - 检查目标系统的依赖关系,包括 Python、Haskell。
- 根据依赖项对构建进行参数化 - 如果缺少用于测试的依赖项,仍然可以构建项目,跳过测试(并通知用户)。
【问题讨论】:
-
请注意,仅仅因为您的项目是在 Python/Haskell 中,并不限制您使用 SCons/Shake - 两个构建系统都适用于多种语言的项目。当然,混合使用较少的语言通常是有益的。
-
@NeilMitchell 确实如此,但我想避免对用户施加额外的要求,这就是为什么我试图将构建系统限制为项目已经使用的语言。
标签: haskell build scons shake-build-system