LUMIERA.clone/admin/scons
Ichthyostega c14bb61e6a fix for resolution of transitive dependencies between "Lumiera modules"
This is a somewhat intricate problem. As long as we linked with --no-as-needed,
these problems could not manifest themselves, since all dependencies are spotted
correctly by SCons and thus added as direct children of the executable.

But when we switch to --as-needed linking, the linker will omit some of
the dependencies given from the build system, when the code to be linked
doesn't call directly into these dependencies. But of course dynamic modules
may depend on each other, and indeed, the Lumiera libs do so. Thus
the linker may omit the dependency to liblumierasupport, and just add
a dependency to, say liblumierabackend. But the backend in turn
depends on the support library.

Now the problem is, that when resolving several steps deep into such
a dependency chain, our special relative path resolution scheme fails.
The fix is to give each lumiera module itself another relative path
resolution spec, which overrides at that point the root spec given
for the executable. Thus, we define

- for the executable: "search at $ORIGIN/modules"
- for the modules:    "search at $ORIGIN/../modules"

This accounts for the fact, that a module, which is the Origin
for a transitive resolution step, already sits in a subdirectory
below the executable; thus step one level up and devle down into
the hard wired modules directory. Alternatively, we could also
use just "search at $ORIGIN" (i.e. in the same directory).
But assuming that in future we'll roll several core plugins,
which also count as "Lumiera modules", the scheme defined here
is more flexible, since it allows to place those core plugins
into sibling directories.
2014-10-01 00:21:47 +02:00
..
BuilderDoxygen.py DOC: reorganise the Doxygen configuration and structure 2013-10-25 06:34:38 +02:00
BuilderGCH.py SCons: use two existing modules for integrating DistCC and CCache 2008-12-19 20:17:23 +01:00
Buildhelper.py SCons: rework test definition to link according to layer 2013-01-07 02:15:05 +01:00
DIR_INFO move the Buildhelper.py to ./admin/scons 2007-07-18 00:39:53 +02:00
IconSvgRenderer.py DOC: reorganise the Doxygen configuration and structure 2013-10-25 06:34:38 +02:00
LumieraEnvironment.py fix for resolution of transitive dependencies between "Lumiera modules" 2014-10-01 00:21:47 +02:00
Options.py SCons: rework test definition to link according to layer 2013-01-07 02:15:05 +01:00
Platform.py Scons: check for C++11 specific headers. Be more explicit w/r boost 2014-04-29 09:24:18 +02:00
Setup.py Solution for #948 : special treatment for the test-suite 2014-09-30 04:40:24 +02:00
ToolCCache.py SCons: several small improvements, e.g. valgrind-suppressionfile 2010-07-26 03:24:15 +02:00
ToolDistCC.py SCons: use two existing modules for integrating DistCC and CCache 2008-12-19 20:17:23 +01:00