[prev in list] [next in list] [prev in thread] [next in thread] 

List:       boost-build
Subject:    Re: [Boost-build] Discussing different bjam v2 environment layouts.
From:       "Eoin boost.build" <eoin-keyword-boost.jam.dca6c0 () zl ! vc>
Date:       2006-04-30 16:25:40
Message-ID: 13693.213.202.166.189.1146414340.squirrel () www ! geekisp ! com
[Download RAW message or body]


> You can just put the "use-project" lines in your Jamroot.  I was doing
> things like "use-project boost : misc/boost ;" in my Jamroot, then any
> of the projects that needed boost would just use "/boost" in their
> sources.  Now my setup is slightly more flexible.  I've got "libs",
> "misc", and "progs" dirs under the directory with my Jamroot.jam file.
> Each of those sub-directories has project (lib or exe) directories under
> them with a "build.jam" file.  In Jamroot.jam, I have code like this:
>
>     local JAMFILE = build.jam ;
>     local sub_dirs = [ MATCH .*/(.*)/.* : [ glob */* ] ] ;
>     local search_dirs = [ MATCH .*/(.*/.*)/.* : [ glob
>     $(sub_dirs)/*/$(JAMFILE) ] ] ;
>     for local d in $(search_dirs)  {
>             local p = [ MATCH .*/(.*) : $(d) ] ;
>             use-project /$(p) : $(d) ;
>     }
>
> So, each directory (like misc/tiff) that has a build.jam file in it gets
> loaded as a project with the name of the directory.  E.g. misc/tiff will
> get loaded as /tiff and can be referred to from any other project as
> /tiff.  This lets me add new projects without having to manually add
> them to the Jamroot.jam, and projects can be moved around (within
> limits, of course) without having to modify the projects that use them.
>

Thank you for your reply Phillip, I see there a lot more power in boost
build than I previously realized. I must look into automating more of the
directory structure, to try and come up with as similarly flexible a
solution as yours seems to be.

Kind Regards, Eoin

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic