开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜