Boost logo

Boost-Build :

Subject: [Boost-build] Depending on shared lib causes component obj to be incompatible with other builds - (removed properties: <dll-path>)
From: John Bito (jwbito_at_[hidden])
Date: 2009-07-25 23:09:10


I thought that I got around this before: a set of OBJ that are to be linked
into several different EXE with different LIBs. Most of my LIBs are static
and perhaps that's why I thought I'd solved this problem:

lib jvm : : <name>jvm <search>/develop/tools/jdk1.6.0_13/jre/lib/sparc ;

exe foo : [ glob *.c ] jvm ;
exe fie : [ glob *.c ] ;

if bjam tries to process both exe targets, the error is

boost-build/build/virtual-target.jam:996: in
virtual-target.register-actual-name from module virtual-target
error: Duplicate name of actual target:
error: previous virtual target { sun%sun.compile.c-fetchrow.o.OBJ {
/home/jbito/workspace/ads/ADS/sqlbinding/fetchrow.c.C } }
error: created from ./foo
error: another virtual target { sun%sun.compile.c-fetchrow.o.OBJ {
/home/jbito/workspace/ads/ADS/sqlbinding/fetchrow.c.C } }
error: created from ./fie
error: added properties: none
error: removed properties:

if either EXE target is built from the command-line, the second will not
compile the source (as desired). The question is: "Can I stop the <dll...>
and <xdll...> properties from propogating in this way? It's nice that
dependencies propopagate with LIB usage, but the OBJ should not get tagged
with these dependencies, only the EXE.

For now, I'll make different directories for the two EXEs, but that's an
ugly hack - the OBJs should be built once and linked to both EXEs.

Please let me know if I'm missing something!


Boost-Build list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at