【问题标题】:Makefile generators: premake vs bakefile?Makefile 生成器:premake vs bakefile?
【发布时间】:2010-10-06 22:32:48
【问题描述】:

对于我的 C++ 构建过程,我正在使用 Bakefile,这是一个不错的小 Makefile 生成器,它可以让您在 XML 中指定构建目标,并且可以从中生成各种 Makefile 或项目文件。它工作正常,我用它来生成 GNU autotools 脚本。

现在我听说了Premake,它似乎有类似的功能。您在 Lua 中指定目标,它会相应地生成 Makefile。

有人知道 Bakefile 和 Premake 的区别吗?有没有人有这两种经验? Premake 似乎更晚近且发展更积极?

XML 解析器ticpp 使用 Premake,但它要求您在构建 ticpp 之前下载 premake。他们不能为各种系统预先生成 Makefile,这样您就不必先下载和安装 premake 了吗?

注意:我知道有很多关于什么是最好的构建工具的 SO 线程,通常答案是 CMakeSConsJam。但是,我对我的用户在构建我的项目之前不必下载的东西感兴趣。

【问题讨论】:

  • > 但是,我对我的用户在构建我的项目之前不必下载的东西感兴趣。 Scons 和 Cmake(不确定 Jam)也会生成 Makefile。
  • 但是,它们会产生整个自动工具的混乱吗?仅仅生成一个 Makefile 是不够的。另外,我认为与 CMake 和朋友一起,只有在某个系统上才能为某个系统生成 Makefile。
  • waf code.google.com/p/waf 设计得足够小,您可以将其添加到您的 ptoject 中,因此无需单独下载。

标签: build-process makefile bakefile premake


【解决方案1】:

不完全是一个答案,但我全心全意地推荐premake4,这太棒了。

【讨论】:

  • 本打算让自己经历 CMake 的痛苦,但后来我看到了 premake4,我的生活又好起来了。
【解决方案2】:

是的,Premake 确实允许您生成一个 Makefile(或 Visual Studio 解决方案,或...),然后您可以根据需要进行分发。 Premake 本身在其源包中包含预先生成的 makefile。

在目标机器上下载和运行 Premake 可以自定义生成文件,既可以通过系统的自动分析,也可以通过命令行标志手动进行。对于一些值得权衡的项目,但这不是必需的。

【讨论】:

    【解决方案3】:

    在同时使用 Premake 4 和 new version of Bakefile 之后,它们似乎针对不同的用例。

    • Bakefile 面向您的需求:在本地生成构建文件,然后与它们一起分发您的项目。我在使用此工具方面拥有丰富的经验。
    • Premake 更像 CMake:本地 makefile 生成。有时,你有很多花哨的配置需要在目标机器上运行。 Bakefile 允许您使用插件来完成此操作,但它会很快变得混乱。但是,您可以预生成文件。

    对于您的使用,我推荐 Bakefile。听起来你不需要任何花哨的东西。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 2019-02-12
      • 2020-02-17
      相关资源
      最近更新 更多