Boost logo

Boost :

Subject: Re: [boost] Boost Cmake Modules
From: paul (pfultz2_at_[hidden])
Date: 2017-01-12 13:09:19


On Thu, 2017-01-12 at 02:55 +0300, Egor Pugin wrote:
> Hi,
>
> I'm working in the same area, but more globally - dependency
> management. See [1]. There're a lot of packages already, not only
> boost.
> I did a small announcement about CPPAN here (in boost ML) some time
> ago.

The goal of the cmake modules is to help libraries support the standard
cmake process(build, installing, and testing). Once this is setup other
third-party tools can take care of installing the packages, or users
can install each module manually if they choose.

>
> Cppan tries to manage C/C++ libs with simple declarative syntax
> (YAML)
> with ability to include and insert cmake scripts of any complexity.
> From such description or declaration a complex CMakeLists.txt is
> generated and then used by CMake. See example of generated file for
> boost::log [6].
> Of course cppan supports including selected deps to your usual
> CMakeLists.txt project.

It does have a quite extensive list of packages, but one problem I find
with most package management tools built for C++ is that it doesn't
support the common cmake libraries. I see it has support for Boost.Fit,
however, I don't see how I could install my other libraries such as
prove or args, without needing extra configuration(I could be wrong
about this). With cget, I can install these libraries, plus unrelated
libraries like cmark or tensile(which is not supported in CPPAN
either), all because it supports the standard cmake flow. 

>
> You can find all boost packages here [2]. They are currently is under
> 'pvt.cppan.demo.boost' namespace -
> 'private.username.my_demo_directory'.
> If boost is willing to go to cppan officially, it could create and
> use
> organization 'org.boost' namespace ('com.???') is also available.
> Such
> naming came from other langs (java, c# and also from future
> C++Modules
> proposal).
> For example, names could be 'org.boost.hana', 'org.boost.asio',
> 'org.google.protobuf', 'com.intel.tbb', 'com.ibm.whatever',
> 'org.qt.multimedia', 'org.kde.*' etc.
> I'm adding boost there since 1.61.0, see [3].
> Dependencies is not the strongest boost part because many of libs are
> header only, so people don't track them properly. I wrote a program
> to
> track them automatically [4]. (It builds with cppan only already in
> script style 'cppan --build main.cpp'.)
> Cppan specification example is on the page [5].

Actually, Peter Dimov already has tool to find the dependencies, and he
has added recently to track the test dependencies. Does CPPAN support
building and running the tests? I see it list the dependencies, but it
doesn't seem to distiguish between usage, build and test dependencies.

Paul


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk