ant-ivy-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexandre Gacon <alexandre.ga...@gmail.com>
Subject Re: Solution to native dependencies with Ivy
Date Tue, 04 Aug 2009 06:25:27 GMT
Hi,

We are using IVY to manage dependencies among our C++-based projects, which
are built with several compilers. Thus, most of our artifacts are native
artifacts, except for the documentation and for the header files. Most of
the time, we have a debug and a release version of our artifacts and some of
the external libraries we use (like boost) comes in two versions: a static
one and a dll one.

I don't know if it can help but we handle the different cases like this:

- we handle the debug/release difference by using 2 configurations : a
configuration "run" which match the release libraries and a configuration
"devel", which extends the "run" configuration with the debug version of the
libraries (and some other artifacts). A library is described by two artifact
: the release version is declared in the "run" configuration whereas the
debug version is declared in the "devel" version. The use of the
configurations enables us to transitively retrieve the debug versions of the
dependencies.

- we handle the static/dynamic difference by using 2 configurations : one
for the dynamic libraries and one for the static libraries.

- finally, we handle the different compiler version by a more complex
system. We use an extra attribute to define the platform (for example vc80).
In the unresolved IVY file, we use this attribute to describe the type of
our artifacts : for example a C++ library is types as "lib-${platform}".
When we published a version to the repository for a given compiler, we
published as many IVY files as we have compilers in the same directory (for
example we can have a ivy-vc80.xml and a ivy-gcc.xml). Thus we can share
common artifacts among compilers (for example headers and docs). We
configured the IVY pattern to use
'[organisation]/[module](/[branch])/[revision]/ivy-${platform}.xml' for ivy
descriptor and
'[organisation]/[module](/[branch])/[revision]/[type]s/[artifact].[ext]' for
artifacts.

This works quite well but it didn't answer to your problems because we do
not use IvyDE at all.

Best regards,

Alexandre Gacon

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message