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