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