ping ?


On 2018-05-23 09:26 AM, stefan wrote:

On 2018-05-23 09:06 AM, Steven Watanabe via Boost-build wrote:

AMDG

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:
https://github.com/stefanseefeld/boost.ublas/blob/opencl/opencl.jam
https://github.com/stefanseefeld/boost.ublas/blob/opencl/clblas.jam

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,

Stefan
--

      ...ich hab' noch einen Koffer in Berlin...
    

Stefan
--

      ...ich hab' noch einen Koffer in Berlin...