Subject: Re: [Boost-build] third-party library dependencies
From: Stefan Seefeld (stefan_at_[hidden])
Date: 2018-06-08 19:14:19
On 2018-05-23 09:26 AM, stefan wrote:
> On 2018-05-23 09:06 AM, Steven Watanabe via Boost-build wrote:
>> On 05/20/2018 02:03 PM, Stefan Seefeld via Boost-build wrote:
>>> I'm trying to add a few library dependencies to a (boost) project.
>>> https://boostorg.github.io/build/tutorial.html#best_practices explains
>>> how to add
>>> lib xml : : <name>libxml <search>C:/lib : : <include>C:/include ;
>>> Â to a user-config.jam file, then use it from a Jamfile via
>>> `<library>/user-config//xml`. This approach seems to require the
>>> user-config.jam file to contain a call to `lib xml`. Is there a way to
>>> make that optional (so a default `xml` target gets instantiated with
>>> default paths, only to be overridden if any custom paths or requirements
>>> are needed ? Or would that require an `xml` module to be created, as is
>>> done for a few other third-party packages b2 has builtin support for
>>> (zlib, libpng, etc.) ?
>> You really should use a module. All the module needs to
>> do is wrap up the logic for tracking whether the target
>> has been created yet. The lib rule is not really designed
>> to handle this. Hypothetically, I suppose you could make
>> a module that searches config files for targets.
> OK, I have done that. Actually I need to look for two libs (opencl and
> clblas), so I created two modules. Now I want to add opencl as a
> (usage) requirement to clblas, i.e. make it such that whenever a user
> links to clblas//clblas, opencl gets linked also.
> Here are my two modules:
> how should I modify clblas.jam to add opencl to its usage requirements ?
> And finally, what would be the right place to put these modules, such
> that users can see / use them ?
> While I'm of course happy to contribute them to Boost.Build itself,
> I'm not sure this is the right solution in general. There needs to be
> a mechanism for users to write and publish their own modules, but I
> couldn't quite figure out how.
> (Also, as a side-note: the two modules above contain a lot of
> boilerplate code. Is there a way to compact that, or even create
> something like a module template that I could use and parametrize for
> the specifics of a given library ?
> Many thanks,
> ...ich hab' noch einen Koffer in Berlin...
-- ...ich hab' noch einen Koffer in Berlin...
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