CALINKA
TASKS
Download
Documentation
Source
code Forums
Purpose
The purpose of this tool is to enable compiling
and linking of C++-programs using the same build
tool as for the rest of the products in a java-centric environment,
namely ant.
Calinka aims to provide a straightforward and portable way to
configure complex compiling and linking of C and C++ files without
resorting to non-portable makefiles, bash-scripting or patching the
build tool
itself.
The idea
The basic principle is a set of ant tasks defining the actual commands
that needs to be run for compilers and linkers for the different
platforms which are going to be used. The actual build scripts can
then be written with compile and link tasks in a platform neutral
manner. Simple, but very effective.
Current status
It has been tested and is in use with msvc on Win32-Intel and g++ on
Mac OSX PPC and Intel producing Fat binaries. Since they are quite
different it is very likely that it will be possible to use it for
other OSes/compilers as well. The tool has been in use at Games
for about a year and proven
successful. We now continue to develop it in the open on sourceforge.
Related / similar projects
cpptasks: That
project is very
generic and hides a lot of control over
compiler flags and directives which makes exact control over the
compiler difficult. The model chosen also doesn't handle
complex situations very well, like for example compiling fat binaries
on OSX using two different compiler versions simoultanously. Other than
that it's a great initiative, check it out.
nant: Another slightly
related
project is Nant, but that isn't as portable
as calinka (.NET only). Seems to bea very popoular alternative to
ant in the Microsoft world. Also really worth considering if you don't
need to be portable.
antcpp: Run a
C/C++ preprocessor from ant.