Boost logo

Boost-Build :

Subject: Re: [Boost-build] Bug in searched libraries / target-os dependend names for searched libraries
From: Meindert Oldenburger (meindert66_at_[hidden])
Date: 2011-09-14 07:20:36


I described all the "system" libraries in site-config file, and implement
for each platform the implementation belonging to the NAME of the lib
statement.

Suggestion: consider making different site-config files for each target-os.

But if this should be possible, then i have the same question as you. Is it
a bug or should it be implement differently.

Regards,
Meindert

2011/9/14 Moritz Hassert <mhassert_at_[hidden]>

> Hi all,
>
> I'm facing a problem with external/searched libraries and conditional
> properties, which I think is a bug. I'm using newest boost-build from svn
> trunk.
>
> I have a project with opengl on linux. So I need to link my binary against
> libGL.so and libGLU.so on linux. I defined two lib targets and used them in
> my
> exe target:
>
> lib libGL : : <name>GL ;
> lib libGLU : libGL : <name>GLU ;
> exe foo : libGL libGLU ...
>
> Now I want to build the project on windows too, where the dlls are called
> opengl32.dll and glu32.dll. My straight-forward approach was to make the
> <name> property conditional on <target-os> :
>
> lib libGL : :
> <target-os>linux:<name>GL
> <target-os>windows:<name>opengl32 ;
>
> lib libGLU : libGL :
> <target-os>linux:<name>GLU
> <target-os>windows:<name>glu32 ;
>
> exe foo : libGL libGLU ...
>
> However, this results in an error:
>
> [...]/boost-build/kernel/class.jam:88: in new
> *** argument error
> * rule object(searched-lib-target)@667.__init__ ( name : project : shared ?
> :
> search * : action )
> * called with: ( GL libGL : object(project-target)@112 : true : :
> object(null-action)@666 : : : : )
> * extra argument libGL
> [...]/boost-build/tools/builtin.jam:406:see definition of rule '__init__'
> being
> called
> [...]/boost-build/tools/builtin.jam:574: in searched-lib-generator.run
> [...]/boost-build/tools/unix.jam:113: in object(unix-searched-lib-
> generator)@24.run
> [...]/boost-build/build/generators.jam:1004: in try-one-generator-really
> [...]/boost-build/build/generators.jam:1066: in try-one-generator
> [...]/boost-build/build/generators.jam:1282: in construct-really
> [...]/boost-build/build/generators.jam:1366: in generators.construct
> [...]/boost-build/tools/builtin.jam:477: in object(lib-generator)@5.run
> [...]/boost-build/build/generators.jam:1004: in try-one-generator-really
> [...]/boost-build/build/generators.jam:1066: in try-one-generator
> [...]/boost-build/build/generators.jam:1282: in construct-really
> [...]/boost-build/build/generators.jam:1366: in generators.construct
> [...]/boost-build/build/targets.jam:1495: in construct
> [...]/boost-build/build/targets.jam:1297: in
> object(typed-target)@116.generate
> [...]/boost-build/build/targets.jam:732: in generate-really
> [...]/boost-build/build/targets.jam:704: in
> object(main-target)@653.generate
> [...]/boost-build/build/targets.jam:258: in object(project-
> target)@112.generate
> [...]/boost-build/build-system.jam:736: in load
> [...]/boost-build/kernel/modules.jam:283: in import
> [...]/boost-build/kernel/bootstrap.jam:142: in boost-build
> [...]/boost-build/boost-build.jam:8: in module scope
>
> It seems like both the value of <name> and the lib target name are used.
> Perhaps the piece of code, that uses the target name as default when no
> <name>
> is given gets somehow confused by the conditional property.
>
> As a workaround I now use this:
>
> lib libGLLinux : : <name>GL ;
> lib libGLWindows : : <name>opengl32 ;
> alias libGL : :
> <target-os>linux:<library>libGLLinux
> <target-os>windows:<library>libGLWindows ;
> lib libGLU
> : libGL # depends on libGL
> : <target-os>linux:<name>GLU
> <target-os>windows:<name>glu32 ;
>
> Suprisingly, I get no error for libGLU. But if I remove the dependency on
> libGL, I get the above error for libGLU target, too.
>
>
> Could someone please tell me whether I'm doing something wrong here or
> confirm
> this is a bug? In the latter case I will file an separate bug report.
>
> Thanks,
> Moritz
>
> --
> --
> AB+M GmbH
> Haid-und-Neu-Straße 7
> 76131 Karlsruhe
> Telefon: (0721) 66488-0
> Telefax: (0721) 66488-18
>
>
> Geschaeftsfuehrer: Dipl.-Inform. Christopher Asp
> Amtsgericht Mannheim HRB 105845
>
> Geschaeftsfuehrer: Dipl.-Inform. Christopher Asp
> Amtsgericht Mannheim HRB 105845
> _______________________________________________
> Unsubscribe & other changes:
> http://lists.boost.org/mailman/listinfo.cgi/boost-build
>



Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk