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
and
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
as
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:
> http://lists.boost.org/mailman/listinfo.cgi/boost
>


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