Boost logo

Boost :

Subject: Re: [boost] [CMake] what to do now?
From: Paul Fultz II (pfultz2_at_[hidden])
Date: 2016-04-14 11:57:29

On Thursday, April 14, 2016 at 9:56:56 AM UTC-5, Peter Dimov wrote:
> Paul Fultz II wrote:
> > If boost ever wants to support the standard `make && make check && make
> > install` with cmake then this will be a cycle.
> OK. Why is having a cycle unacceptable?
> Ah, wait, I get it, you can't 'make install' before you 'make check', and
> you can't 'make check' before 'make install'-ing both libraries first.
> Persuading people to support this will be... difficult. The standard
> answer
> is that the tools need to be made smarter.

Yep, and iOS doesn't handle facebook's scale.

> bpm doesn't have a problem with cycles because it doesn't have a separate
> install step.

However, bpm can't remove or update a library either.

> Your 'make check' step would need to be able to find the downloaded
> dependency in-place, without relying on it being 'make install'-ed first.
> So
> when you do cget boostorg/config, it would need to download Config, Core,
> Assert, Predef, Type Traits, and whatever else is required, then 'make
> check' at the download location using the downloaded libraries. Which is
> probably out of scope for cget, as it's generic and this workflow is
> boost-specific.

There would need to be a staging step first, and then the test can be run
then the libraries installed. However, this process is quite unconventional,
and could be problematic for basic package management.

> How does cget find the dependencies now by the way?

It sets up the cmake prefix path, and then dependencies can be found using
either cmake package files, pkg-config, or find_library. Also, include
directories are setup as well to search in ${CMAKE_PREFIX_PATH}/include. So
for header only libraries, no extra search step is needed for dependencies.

cget can auto install the dependecies as well. Currently, it grabs
dependencies listed in a requirements.txt file, which it will do a `cget
install` on everything listed there. Test dependencies can be distinguished
well, so they are only installed when doing something like
`cget install --test boostorg/config`.

In the future, it will support channels which will allow multiple versions,
constraints and SAT solving to find the best version.

> _______________________________________________
> Unsubscribe & other changes:

Boost list run by bdawes at, gregod at, cpdaniel at, john at