Jon Stewart on Sun, 29 Aug 2004 16:25:38 -0500 (CDT) |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
[ALACPP] ant + cc task |
I spent a couple hours yesterday playing around with ant and the cc task created by the ant-contrib people. The cc task has been around for a while, but I've always been pretty leery about it. The current version is 1.0b3 and it still has a couple of bugs in it -- the relevant one being that even when you specify g++ as your compiler, gcc is invoked as the linker so the C++ stdlib is not linked against by default -- but, all in all, it seems to be working pretty well. Here's what I've got: <target name="build"> <cc name="g++" debug="${debug}" exceptions="true" multithreaded="false" outfile="${projname}" link="executable" rebuild="${compile.rebuid}"> <sysincludepath path="${path.boost}"/> <fileset dir="${src}" casesensitive="yes"> <include name="**/*.cpp"/> </fileset> <syslibset libs="stdc++" type="shared"/> -- works around bug </cc> </target> The cc task does its own dependency analysis, the results of which it caches in a local dependencies.xml file for speedier recompiles. I have read that it looks at your compiler and options and such, so it seems to be pretty smart, although I haven't peeled away all the layers myself. I haven't compared it against make on a big project yet. On a simple "Hello, world", it's slower than make, but most of this seems due to ant's startup time. The task has an option for precompiled headers and everything is backed by ccache anyway, so it seems like a scalable solution. Is there a way to have a background jvm running and simply have ant run via that on an as-needed basis? Obviously the jvm startup time is not a big deal as it's a constant overhead and relatively small (~1-2 seconds) at that. It just seems wasteful. So, yeah, success with ant. Just drop the jar into ant's lib directory and go to town. This makes me very happy, as ant has always given me a warm, xml-induced fuzzy. Jon -- Jon Stewart Advanced Los Angeles C++ stew1@xxxxxxxxxxx http://www.alacpp.org _______________________________________________ alacpp mailing list alacpp@xxxxxxxxxxx http://lists.ellipsis.cx/mailman/listinfo/alacpp