有什么好的构建工具可以阻挡我的方式吗?

时间:2011-08-13 03:17:49

标签: linux build-automation

正如标题所说,我希望有一个构建工具,它完全不受我影响。

我宁愿指定规则,而不是构建过程中的步骤。我想说我想要一个名字放在项目根目录中的二进制文件,.o文件应该放在obj / tmp目录中,源代码在Source目录中。

我不想告诉它这是'这个'文件,因为我不断快速添加新文件,它应该只扫描源目录(及其子目录)寻找Ragel(.rl)和C ++代码(.cxx)并尽一切可能使所有成为可执行文件。

我已经研究了很多工具,比如auto {make,conf,header}(我真的不喜欢我把它想要的文件放在项目根目录的子目录中,eclipse也不喜欢它),CMake(看起来像我必须自己添加所有源文件,并且在我眼中是非常多的autotools变体。我还读过关于ant,maven(我也对XML过敏,它是一个很好的格式来为应用程序序列化数据,而不是人类。我更喜欢YAML)和WikiPedia上的其他人。我已经看到了看似不错的工具但需要设置为网络服务器,这有点矫枉过正。

另外,我真的需要能够在没有互联网连接的情况下脱机工作!。

现在看起来最好的选择是创建一个找到所有.cxx文件的小脚本并写一个Unity.cxx并使用G ++构建那个文件,这可能是非常快的,但对于一个丑陋的黑客来说,我想。

奖励积分:

  1. 快速构建
  2. 能够输入build test-1或其他内容,它将构建并直接运行test-1
  3. 多核构建(即更快的构建)
  4. 真的不会打断我的思路

2 个答案:

答案 0 :(得分:1)

CMake很棒。它是免费的,跨平台的,并且有相当好的文档记录。它支持“out of source builds”,这意味着没有任何构建文件放在源目录中。这使源控制更容易一些。它可以设置为查找新文件(globbing)。快??它生成make文件...之后由编译器决定。多核......再次,更多的是编译器的功能。我在Windows,Linux和Mac上使用过CMake ......它只是有效。

另一个我没有尝试但已阅读并计划进行测试的是premake ...... http://industriousone.com/sample-script

答案 1 :(得分:0)

来自CoffeeScript的

cake非常好,我正在用Lua编写一个类似的工具。

CMake和premake不是build / maketools,它们是build / make-descriptor生成器;这可能适合大量没有太大变化的项目。但不适用于快速原型制作是关键的项目。

现在,我正在做一个项目,当你点击文本编辑器中的保存按钮时浏览器会更新;你不需要去浏览器并点击F5(当浏览器加载所有再次 时会导致一个小延迟,你很可能会失去状态页面,就像说你打开一个菜单,并希望调整菜单的外观。你将被迫在你的RIA中再次导航。