On Mon, Oct 2, 2017 at 9:59 AM, paul via Boost
On Mon, 2017-10-02 at 08:33 -0700, Robert Ramey via Boost wrote:
On 10/2/17 8:27 AM, paul via Boost wrote:
On Fri, 2017-09-29 at 21:33 -0700, Robert Ramey via Boost wrote:
Thats what is being done.
If that passes and is accepted
b) Apply to all the libraries desired.
No, apply to all libraries period, as authors of upstream libraries shouldn't hold back a library from moving to cmake.
I think it would be unwise to presume that you can enforce this.
I believe that is what the SC decision was about.
What I believe Robert's, and others, point on this is that the SC can make pronouncements as to how things have to be. But library authors are free to ignore such pronouncements. As it's *their* libraries. Hence unless you convince them of concrete benefits over what they have now you aren't going to make a lot of forward progress. Just remember that programmers tend to be inherently lazy (except for Vinnie).
Such
approaches have failed in the past. You would be better served by focusing on creating a system whose benefits are sufficiently compelling that the question of imposing the new system doesn't arise.
One of the important use cases to support cmake in boost, is to move away from problematic find modules for `find_package`.
For example, you may want to support cmake in Boost.Serialization, but Boost.Iterator does not desire to update to cmake. So now you will need to create a Findboost_iterator.cmake module for Boost.Serialization. Not only that, but any downstream users of Boost.Serialization will need to a copy of the Findboost_iterator.cmake module. Now when the usage requirements for Boost.Iterator changes all these modules will be wrong.
Or you could just use conan, and not force any particular build system on anyone. With the large number of libraries in boost, having boost half-implemented
in cmake will just be a nightmare for users. They will need to figure out which libraries have cmake support and which ones need find modules. They will need to fix the modules on their own when the usage requirements for non-cmake libraries change.
Or you could tell users that conan is the public interface to Boost and not force a particular build system on anyone. Also, a lot of the libraries are very intertwined, so its not really
possible to update to cmake piecewise. For example, to implement the build and tests in cmake for Boost.Config, we need cmake support for tr1, core, type_traits, and detail, which these libraries already depended on Boost.Config as well.
The suggestion has been made before that it's perfectly possible to provide a build system agnostic interface to testing and other aspects of building libraries. -- -- Rene Rivera -- Grafik - Don't Assume Anything -- Robot Dreams - http://robot-dreams.net -- rrivera/acm.org (msn) - grafikrobot/aim,yahoo,skype,efnet,gmail