我最近一直在寻找构建系统,但找不到最想要的东西。我认为太低端了,我不喜欢 bjam 和 CMake 的语法,我真的不喜欢它们仅适用于C/C++。 Ant 和 NAnt 也是面向语言的。
我真的很喜欢使用真正的编程语言并且Python非常合适的构建工具的想法。我一直在寻找 Scons 和 waf ,从这2个中我发现 waf 是我想要的最接近的一种,但我仍然看到需要做很多工作来支持计划中的所有事情,当我应该专注于编码时。
这是我想要的:
包括和库(用于C/C++,Java,C#,Python)我想使用不同版本的编译器并支持不同的目标OS和CPU体系结构:
C/C++的:MSVC,gcc(cygwin,mingw,Linux版本),llvm-gcc,DragonEgg,Clang C#的:.Net编译器,Mono(适用于Windows和Linux)-所有这些都适用于不同的.Net版本(例如NAnt:'net-2.0','net-3.5','net-4.0','mono-2.0 ','mono-3.5'...) 我想使用 SWIG 以支持C#,Python,Lua,Java等的包装器生成。除了调试和发布配置外,我还需要更多-就像Visual Studio确实很容易地支持它一样。示例:共享库项目构建了用于C#包装的MSVC,并使用mingw用于Python包装,以及发行版的不同版本-具有未优化,完全优化,生产,混淆的版本...我希望它考虑项目跟踪。解释:如果我有一个使用SWIG的共享库项目,以及另一个加载该SWIG包装的C#项目,则构建此解决方案/环境/工作区将意味着复制生成的共享库,复制该共享库在工作中使用的其他共享库目录,然后C#生成C#项目的包装器,然后构建C#项目完善:在其他计算机上部署以进行网络测试尚待实现:我并不真正在意IDE项目文件的生成(例如,像Visual Studio的CMake一样),因为IDE的版本和兼容性发生了变化,并且还有很多不错的IDE(例如,对于C/C++ CodeBlocks,CodeLite,Eclipse CDT-所有这些都可以在拇指驱动器上移植,而VS则不是。)但很高兴的是makefile集成-一个简单地称为Build工具自己的makefile/script的makefile-看到了类似的东西对于Scons
看着我写的东西,我想我问的太多了:),但是我认为这比我更有用
编辑:忘记说了,但是我认为这是使用Python所隐含的:我希望该工具可以跨平台
编辑:也许我正在寻找的东西尚未实现,但它可能退出所有这些的waf扩展,或者可能是Scons 我使用了Scons,它非常好,您真的可以使用它做任何事情,因为只有Python代码,所以您在Python中缺少的内容很容易。
有人说大型项目有问题,我没有大型项目可以运行,所以我不知道。