最近我一直在寻找构建系统,但是我找不到符合我需求的。我认为现有的太低级了,我不喜欢bjam和CMake的语法,而且它们仅适用于C/C++。同时,Ant和NAnt也过于面向某种语言。
我真的很喜欢使用实际编程语言的构建工具的想法,而Python非常适合。我一直在研究Scons和waf,而在这两个中,我发现waf最接近我想要的,但仍然需要大量的工作来支持计划中的所有内容,而我应该专注于编码。
以下是我所需要的:
包含文件和库(用于C / C ++,Java,C#,Python)
我想使用不同版本的编译器并支持不同的目标操作系统和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等的封装程序生成。
我想要的不仅仅是Debug和Release配置-就像Visual Studio非常容易地支持这一点。例如:使用MSVC构建的共享库项目,用于C#包装,使用mingw构建的共享库项目,用于Python包装,具有不同版本的发布版本-未优化,完全优化,生产,混淆等。
我希望它考虑项目跟踪。解释:如果我有一个使用SWIG的共享库项目和一个加载该SWIG封装的不同C#项目,构建此解决方案/环境/工作空间将意味着将生成的共享库复制到C#项目的工作目录中,以及该共享库在其中使用的其他共享库和C#生成的包装器,然后构建C#项目
可选项:在其他机器上进行网络测试部署
可选项:我不是特别关心IDE项目文件生成(例如,像CMake为Visual Studio所做的那样),因为IDE版本和兼容性会发生变化,并且有许多很棒的IDE可用(例如适用于C/C++的CodeBlocks,CodeLite,Eclipse CDT - 所有这些都可以在U盘上移动,VS则不行),但是可选项是makefile集成- 一个调用此构建工具自己的makefile /脚本的makefile-看到类似于Scons的东西
看了我写的内容,我觉得我要求太多了:),但我认为这将服务于更多人
编辑:忘记说了,但我认为这暗示了使用Python:我希望这个工具跨平台
编辑:也许我正在寻找的尚未实现,但可能存在waf扩展来完成所有这些,或者是Scons