Luke, I see you have started a plugin for C and C++ support. I think this is a good move for Gradle. I am happy to volunteer to be an alpha tester.
Ant and Maven have dreadful (i.e. realistically non-existent) support for C, C++ and LaTeX, working on the assumption that only JVM based activity exists. Conversely the market leaders in the C, C++, LaTeX (and D, OCaml, Haskell, Chapel, Go, Fortran, etc.) are SCons, Waf and CMake (Make and Autotools exists but are really legacy systems) and their Java and Groovy support is weak. CMake is just a Makefile manager and probably has little to help. SCons and Waf however will have a lot to teach about C and C++ compilation and management. The single biggest issue is that in Java and Groovy compilation you rarely track all of the build targets in the DAG -- anonymous classes, etc. create files you have no way of guessing the name of. C and C++ on the other hand generally have all generated files in the DAG, usually of necessity. This means parsing the files to determine the graph of relationships. Having this built in to SCons (I am less sure of the internals of Waf) is the single biggest barrier to successful Java support -- SCons and Waf both support Java (not Groovy) but in a very weak way. This is a serious issue for many people. Regularly there are moans on the SCons mailing lists about how poor the Java support is, but this never generates enough energy to actually do something. What it does mean is that there is validity in having a build framework that correctly and well handles things both on the JVM and for native languages. It might be worth mentioning the crucial difference between SCons and Waf. SCons does all its checks everytime and is a Make replacement with the ability to do some Autoconf type things. Waf is a two phase (configure and build) system that is an Autotools replacement. My idiom is to use Waf for standalone self-contained projects and SCons for managing directories with stuff in that needs building -- though I am still using SCons for LaTeX books rather than switching to Waf. SCons needs to be installed, Waf has the entire system (its a 100k file) in the project something like Gradle Wrapper but 100k instead of 35M -- Waf doesn't download anything, it just unpacks, Waf is quite superb in this respect. The SCons project is in the middle of a (very slow) move to Mercurial and BitBucket. If you want to dig through the source possibly best to work with a clone of my Mercurial repository on BitBucket rather than trying to fight with Subversion. Waf is still a Subversion repository on GoogleCode but then bzr-svn, hgsubversion and git-svn are good for taking person Bazaar, Mercurial or Git (respectively) repositories from Subversion repositories. -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:[email protected] 41 Buckmaster Road m: +44 7770 465 077 xmpp: [email protected] London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
signature.asc
Description: This is a digitally signed message part
