2010-11-09 32 views
14

我一直在最近在构建系统,我找不到任何接近我想要的东西。我认为太低端了,我不喜欢bjamCMake的语法,我真的不喜欢它们只用于C/C++。 AntNAnt也太过于语言导向。基于Python的构建工具

我真的很喜欢构建工具的想法,它使用真正的编程语言和Python非常适合。我一直在寻找使用SConswaf,并从这些2我发现WAF作为一个最接近我想要什么,但我仍然看到了很多工作,有工作要做,以支持一切有计划,当我应该专注于编码。

这里是我想要的东西:

  • 包括和库(C/C++,JAVA,C#,Python)的

  • 我想使用不同版本的编译器,并支持不同的目标操作系统和CPU架构:

    • 为C/C++:MSVC,GCC(Cygwin的,mingw的,Linux版本),LLVM-GCC,DragonEgg,锵
    • for C#:.Net编译器,Mono(用于windows和linux) - 所有这些用于不同的.Net版本(如NAnt's:'net-2.0','net-3.5','net-4.0','mono-2.0 ”, '单3.5' ...)
  • 我想用痛饮支持包装器生成的C#,Python和Lua中,爪哇等

  • 我想,不只是调试和发布配置 - 就像Visual Studio很容易支持。例如:共享库项目构建MSVC for C#环绕,并使用mingw构建Python封装,不同版本的发布版本 - 未经优化,完全优化,生产,模糊处理...

  • 我希望它能够考虑项目跟踪。解释:如果我有一个使用SWIG的共享库项目和一个加载SWIG包装的不同C#项目,构建此解决方案/环境/工作区意味着复制生成的共享库,复制共享库在工作中使用的其他共享库目录和C#生成的包装到C#项目,然后生成C#项目

  • 尼斯到有:在其他计算机上的网络测试部署

  • 尼斯的到了:我不t真的关心IDE项目文件的生成(例如像CMake为Visual Studio所做的那样),因为IDE版本和兼容性改变了,并且有很多漂亮的IDE(例如对于C/C++ CodeBlocks,CodeLite,Eclipse CDT--所有这些都可以在拇指驱动器上移植,VS则不行),但不错的是makefile集成 - 一个简单地称之为构建工具自己的makefile /脚本的makefile - 见过类似的东西使用SCons

纵观我写的,我认为我问太多:),但我认为这将有助于更多然后我

编辑:忘了说了,但我认为这是从使用Python的暗示:我想要的工具,跨平台

编辑:也许是我所期待的还没有实现,但它可能会退出WAF EXTENS离子这一切,或使用SCons也许

+0

+1不错的问题,一直在寻找相同的! – helpermethod 2010-11-09 10:10:13

+0

问题是什么?如果有人知道这样的构建工具,它支持所有我想要的功能,但它可以更清晰。 – unwind 2010-11-09 10:20:28

+0

@unwind:你提到了一点,我自己解释得很辛苦,但具体 – 2010-11-09 10:22:43

回答

2

我曾经使用SCons,这是很好的,你真的可以做一切与它因为刚刚Python代码等什么想念你用Python写的 - 它很容易。

有人说,它有非常大的项目的问题,我没有非常大的项目来运行它,所以我不知道。

+0

我发现作为Scons和waf的一个缺点的唯一的事情就是他们有一个所谓的默认编译器,选择一个看起来很亲切一个隐藏的选项 – 2010-11-09 11:25:10

+0

和另一件事他们都做得不好,如果你问我,是建立配置(就像我说的,超越调试和发布点) – 2010-11-09 11:25:55