Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What are the SCons alternatives?

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.

like image 433
Igor Gatis Avatar asked Nov 10 '10 05:11

Igor Gatis


5 Answers

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.

like image 89
greyfade Avatar answered Oct 20 '22 23:10

greyfade


One promising alternative is waf:

  • http://code.google.com/p/waf/

Others:

  • http://code.google.com/p/fabricate/

Not exactly but very relevant:

  • http://www.buildout.org/docs/index.html
like image 23
pyfunc Avatar answered Oct 20 '22 23:10

pyfunc


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.

like image 39
Geli Avatar answered Oct 20 '22 23:10

Geli


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.

like image 31
khmarbaise Avatar answered Oct 20 '22 22:10

khmarbaise


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.

like image 21
Daniel Voina Avatar answered Oct 20 '22 22:10

Daniel Voina