Python based build tools
I've been lately looking at build systems and I can't find anything close to what I want. I consider too low end, I don't like the syntax of bjam and CMake, and I really don't like that they are only for C/C++. Ant and NAnt are also too language oriented.
I really like the idea of a build tool that uses a real programming language and Python fits in really nice. I've been looking at Scons and waf, and from these 2 I find waf as the closest one to what I want, but still I see a lot of work that has to be done to support everything planned, when I should focus on coding.
Here is what I want:
includes and libraries (for C/ C++, Java, C#, Python)
I want to use different versions of compilers and support different target OS and CPU architectures:
- for C / C++: MSVC, gcc(cygwin, mingw, linux version), llvm-gcc, DragonEgg, Clang
- for C#: .Net compiler, Mono (for windows and linux) - all of these for different .Net versions (like NAnt's: 'net-2.0', 'net-3.5', 'net-4.0', 'mono-2.0', 'mono-3.5' ...)
I want to use SWIG to support wrapper generation for C#, Python, Lua, Java etc.
I want more then just Debug and Release configurations - just like Visual Studio supports this really easily. Example: shared library project built MSVC for C# wrapping, and built with mingw for Python wrapping, different versions of release versions - with non-optimized, fully optimized, production, obfuscated ...
I want it to consider project tracking. Explained: if I have a shared library project using SWIG, and a different C# project that loads that SWIG wrapping, building this solution/environment/workspace would imply copying the resulting shared library, copying other shared libraries that that shared library uses in the working directory, and the C# generated wrappers to the C# project, and then build the C# project
Nice-to-have: deployment on other machines for network testing
Nice-to-have: I don't really care for IDE project file generation (e.g. like CMake does for Visual Studio), because IDEs versions and compatibily change, and there are a ton of nice IDEs out there (e.g. for C/C++ CodeBlocks, CodeLite, Eclipse CDT - all of these are portable on thumb drive, VS is not), but Nice-to-have would be makefile integration - a makefile that that simply calls this Build tool's own makefile/script - seen something similar for Scons
Looking over what I w开发者_Go百科rote I think I asked too much :), but I think this will serve more then me
edit: forgot to say, but I think it is implied from the use of Python: I want the tool to be cross-platform
edit: perhaps what I am looking for isn't implemented yet, but it might exits a waf extension to all of this, or Scons maybe
I used Scons and it is good and you can really do everything with it because just Python code so what missing you write in Python - it is easy.
Some say it has problem with very big projects, I didn't have very big projects to run it so I don't know.
精彩评论