<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, May 4, 2015 at 11:33 AM, Stefan Seefeld <span dir="ltr"><<a href="mailto:stefan@seefeld.name" target="_blank">stefan@seefeld.name</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">On 04/05/15 12:19 PM, Rene Rivera wrote:<br> ><br> ><br> > On Mon, May 4, 2015 at 11:17 AM, Rene Rivera <<a href="mailto:grafikrobot@gmail.com">grafikrobot@gmail.com</a><br> </span><span class="">> <mailto:<a href="mailto:grafikrobot@gmail.com">grafikrobot@gmail.com</a>>> wrote:<br> ><br> > On Mon, May 4, 2015 at 10:50 AM, Stefan Seefeld<br> </span><div><div class="h5">> <<a href="mailto:stefan@seefeld.name">stefan@seefeld.name</a> <mailto:<a href="mailto:stefan@seefeld.name">stefan@seefeld.name</a>>> wrote:<br> ><br> ><br> > Indeed. Is there a better way to approach this ? If<br> > boost.python (as<br> > well as most other libraries, I'd assume) depend (at least<br> > implicitly)<br> > on boostcpp.jam, shouldn't that dependency be made explicit by<br> > having<br> > another module / component "own" it, such that boost.python<br> > can then<br> > depend on it ?<br> ><br> > It seems to me that for the last couple of years people have been<br> > arguing about modularizing boost with a very narrow focus on<br> > things like<br> > header dependencies and source tree layouts, when there are<br> > many other<br> > issues to be resolved.<br> > How useful is it to hold individual boost libraries in<br> > distinct git<br> > repositories, if I still need to check out the entire boost repo<br> > including its submodules, to be able to build an individual<br> > library ?<br> ><br> ><br> > Because of some external needs I started on a method to build<br> > Boost libraries without needing to do that full checkout. But<br> > obviously you would need to git clone the individual repos of all<br> > the dependencies.<br> ><br> <br> </div></div>OK. Isn't this similar to a normal boost build with an explicit<br> --with-<library> argument ?<br></blockquote><div><br></div><div>No. I don't have the top-level Boost structure at all in my project. All I have are the sources for individual libraries that I need and nothing else. So there's no --with handling to speak of.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div class="h5"> > They BB support for this is in<br> > <<a href="https://github.com/boostorg/build/blob/develop/src/contrib/modular.jam" target="_blank">https://github.com/boostorg/build/blob/develop/src/contrib/modular.jam</a>>.<br> > Using it looks something like this:<br> ><br> > === Jamroot.jam<br> > import modular ;<br> > # Adds location to search for /boost/* lib references..<br> > modular.add-location libs/boost /boost ;<br> > # Adds external (to lib build files) dependency references..<br> > modular.external /boost/config : /boost/predef//library ;<br> > ===<br> > === Jamfile.jam<br> > import modular ;<br> > exe my_program : [ glob ../src/*.cpp ] /boost/config//library<br> > /boost/system//boost_system ;<br> > ===<br> ><br> ><br> > Oops, forgot something in that example:<br> ><br> > === Jamfile.jam<br> > import modular ;<br> > exe my_program : [ glob ../src/*.cpp ]<br> > [ modular.find /boost/config//library ]<br> > [ modular.find /boost/system//boost_system ] ;<br> > ===<br> ><br> > All that it expects (or at least the goal is this) is that you<br> > have the needed libs in the search path as specified in the<br> > modular.add-location calls. Everything else should be handled.<br> > This doesn't currently doesn't handle the Boost tagging names<br> > stuff. As my use case only needed direct BB building.<br> ><br> > Does this look like a better direction?<br> ><br> <br> </div></div>This definitely looks interesting, thanks ! In particular, the<br> "module.external" thing sounds like it might be what I'm looking for.<br> I'll have to play with it.<br> <br> On the other hand, what I really want is this:<br> <br> For all prerequisite libraries:<br> <br> * provide the means to indicate search paths (header and library)<br> * add those paths to the compiler / linker flags<br> * really only build the local library, instead of first trying to build<br> prerequisites<br> <br> In other words, I'd like to be able to treat prerequisite boost libs as<br> normal external dependencies. I'm proposing to do this for boost.python,<br> which is relatively stable, and thus shouldn't depend on any new<br> features in its prerequisite libs, so it should be possible to build it<br> against a wide range of versions of the prerequisite libs, without<br> (much) concern for compatibility. Once this works, we can let<br> boost.python follow its own release schedule.<br></blockquote><div><br></div><div>I'm trying to decipher what your goals are. Since I can't see what use case you are trying to solve. Are you:</div><div><br></div><div>1. Trying to support building BPL against an external system provided regular Boost install?</div><div>2. Support building BPL with a full Boost tree checkout?</div><div>3. Users building their apps with BPL already built and installed?</div><div>4. Something else?</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"> (And if that experiment succeeds, I'm sure other library maintainers may<br> want to do something similar with their libraries. *That* would bring us<br> much closer to a "modular boost".)<br></blockquote><div><br></div><div>I would avoid putting too much effort into this until the use case(s) is *very* clear. Kludging something together in BB tends to backfire.</div></div><br clear="all"><div><br></div>-- <br><div class="gmail_signature"><div dir="ltr">-- Rene Rivera<br>-- Grafik - Don't Assume Anything<br>-- Robot Dreams - <a href="http://robot-dreams.net/" target="_blank">http://robot-dreams.net</a><br>-- rrivera/<a href="http://acm.org/" target="_blank">acm.org</a> (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail</div></div> </div></div>