Boost logo

Boost :

Subject: Re: [boost] Boost Cmake Modules
From: Egor Pugin (egor.pugin_at_[hidden])
Date: 2017-01-12 14:51:46


> 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.

Standard cmake process works fine in the most cases, that's true. But
it's not very strict and uniform.

> ... but one problem I find with most package management tools built for C++ is that it doesn't support the common cmake libraries.

What do you mean here? Qt? What are common cmake libs?

> 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).

For libraries that has some default layout (include, src) cppan tries
to detect it and there's no really extra config needed. You just drop
a repo url (+tag&ver. optionally) when adding a version to your
library (after registration).

> 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.

Yes, cppan requires yet another build config, it could not work or
process existings cmake rules.
But it supports include()s of other cmake files (e.g. checks or setup files).

> ... Boost.Fit, ... prove or args ... cmark or tensile(which is not supported in CPPAN either)

I've added some of your libs [1]. As for cmark/tensile - I'm adding
new libs from time to time when I hear about them from different
sources. Cmark is added now too, tensile is on todo list.

> Does CPPAN support building and running the tests?

Not yet. They're on the roadmap with things like build matrices,
installation, doc generation, ?sans and other useful things Niall
described in his post. Cppan could bring a uniform way of doing this
for every package added. I have some thoughts about these things, but
investigating the best way to implement them.
Cppan also aims for decentralization. Every client already downloading
a database with info about all packages (dependencies only) [2]. And
full specs for each project is available in [3] repo. So it will be
very easy to create mirrors like with debian/ubuntu/... distro
packages.

[1] https://cppan.org/projects/pvt.cppan.demo.pfultz2
[2] https://github.com/cppan/database
[3] https://github.com/cppan/specs

-- 
Egor Pugin

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