<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">&lt;<a href="mailto:stefan@seefeld.name" target="_blank">stefan@seefeld.name</a>&gt;</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>
&gt;<br>
&gt;<br>
&gt; On Mon, May 4, 2015 at 11:17 AM, Rene Rivera &lt;<a href="mailto:grafikrobot@gmail.com">grafikrobot@gmail.com</a><br>
</span><span class="">&gt; &lt;mailto:<a href="mailto:grafikrobot@gmail.com">grafikrobot@gmail.com</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;     On Mon, May 4, 2015 at 10:50 AM, Stefan Seefeld<br>
</span><div><div class="h5">&gt;     &lt;<a href="mailto:stefan@seefeld.name">stefan@seefeld.name</a> &lt;mailto:<a href="mailto:stefan@seefeld.name">stefan@seefeld.name</a>&gt;&gt; wrote:<br>
&gt;<br>
&gt;<br>
&gt;         Indeed. Is there a better way to approach this ? If<br>
&gt;         boost.python (as<br>
&gt;         well as most other libraries, I&#39;d assume) depend (at least<br>
&gt;         implicitly)<br>
&gt;         on boostcpp.jam, shouldn&#39;t that dependency be made explicit by<br>
&gt;         having<br>
&gt;         another module / component &quot;own&quot; it, such that boost.python<br>
&gt;         can then<br>
&gt;         depend on it ?<br>
&gt;<br>
&gt;         It seems to me that for the last couple of years people have been<br>
&gt;         arguing about modularizing boost with a very narrow focus on<br>
&gt;         things like<br>
&gt;         header dependencies and source tree layouts, when there are<br>
&gt;         many other<br>
&gt;         issues to be resolved.<br>
&gt;         How useful is it to hold individual boost libraries in<br>
&gt;         distinct git<br>
&gt;         repositories, if I still need to check out the entire boost repo<br>
&gt;         including its submodules, to be able to build an individual<br>
&gt;         library ?<br>
&gt;<br>
&gt;<br>
&gt;     Because of some external needs I started on a method to build<br>
&gt;     Boost libraries without needing to do that full checkout. But<br>
&gt;     obviously you would need to git clone the individual repos of all<br>
&gt;     the dependencies.<br>
&gt;<br>
<br>
</div></div>OK. Isn&#39;t this similar to a normal boost build with an explicit<br>
--with-&lt;library&gt; argument ?<br></blockquote><div><br></div><div>No. I don&#39;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&#39;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">
&gt;     They BB support for this is in<br>
&gt;     &lt;<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>&gt;.<br>
&gt;     Using it looks something like this:<br>
&gt;<br>
&gt;     === Jamroot.jam<br>
&gt;     import modular ;<br>
&gt;     # Adds location to search for /boost/* lib references..<br>
&gt;     modular.add-location libs/boost /boost ;<br>
&gt;     # Adds external (to lib build files) dependency references..<br>
&gt;     modular.external /boost/config : /boost/predef//library ;<br>
&gt;     ===<br>
&gt;     === Jamfile.jam<br>
&gt;     import modular ;<br>
&gt;     exe my_program :  [ glob ../src/*.cpp ] /boost/config//library<br>
&gt;       /boost/system//boost_system ;<br>
&gt;     ===<br>
&gt;<br>
&gt;<br>
&gt; Oops, forgot something in that example:<br>
&gt;<br>
&gt; === Jamfile.jam<br>
&gt; import modular ;<br>
&gt; exe my_program : [ glob ../src/*.cpp ]<br>
&gt;   [ modular.find /boost/config//library ]<br>
&gt;   [ modular.find /boost/system//boost_system ] ;<br>
&gt; ===<br>
&gt;<br>
&gt;     All that it expects (or at least the goal is this) is that you<br>
&gt;     have the needed libs in the search path as specified in the<br>
&gt;     modular.add-location calls. Everything else should be handled.<br>
&gt;     This doesn&#39;t currently doesn&#39;t handle the Boost tagging names<br>
&gt;     stuff. As my use case only needed direct BB building.<br>
&gt;<br>
&gt;     Does this look like a better direction?<br>
&gt;<br>
<br>
</div></div>This definitely looks interesting, thanks ! In particular, the<br>
&quot;module.external&quot; thing sounds like it might be what I&#39;m looking for.<br>
I&#39;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&#39;d like to be able to treat prerequisite boost libs as<br>
normal external dependencies. I&#39;m proposing to do this for boost.python,<br>
which is relatively stable, and thus shouldn&#39;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&#39;m trying to decipher what your goals are. Since I can&#39;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&#39;m sure other library maintainers may<br>
want to do something similar with their libraries. *That* would bring us<br>
much closer to a &quot;modular boost&quot;.)<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&#39;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>