Question

I have projects in C++, Java and Python. Projects in C++ export SWIG interfaces so they can be used by Java and Python projects.

My question is: what building mechanism can I use to manage dependencies and build these projects?

I have used SCons and GYP. They are fairly easy to use and allow plugins (code-generators, compilers, packers). I'd like to know whether there are alternatives, in particular with native support for C++, Java and Python.

I develop in Linux platform, but I'd like to be able to build in mac and win platforms as well.

Was it helpful?

Solution

One promising alternative is waf:

Others:

Not exactly but very relevant:

OTHER TIPS

CMake

I use and prefer it for my projects.

There's also Rake (comes with Ruby, but can be used for anything), which I regard rather highly.

I tried to do a Java / C++ / C++ To Java swig / (+ Protocol buffers) project in CMAKE and it was horrible! In such a case the problem with Cmake is, that the scripting language is extremely limited. I switched to Scons and everything got much easier.

For Java and C++ projects you can take a look into Maven + Maven-nar-plugin but for Python i really don't know the best. May be other tools like CMake would fit better.

In Java world ant is "lingua franca" for build systems. Ant supports a C++ task via ant-contrib - so you can compile your C++ code. With Ant's exec task you can still run swig on C++ code in order to get the wrappers. Then standard tasks as javac/jar can be used for java application build.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top