On 12/01/2015 10:58 AM, rle...@codelibre.net wrote:
> I'd definitely like to see this for future Boost releases, though for
> historical releases we're a bit stuck.  I'll revisit the work I pointed to
> and see if I can figure out bjam/boost-build and integrate this, since it
> would effectively give us CMake configuration "for free" off the back of
> the autolink data, and would also come directly from the compiler so
> wouldn't require parsing all the headers by hand.

Good.  Once Boost provides that then our FindBoost script can switch
to looking for it when the version number is high enough.

> I've attached an updated version of the patch which does this.  The
> behaviour is otherwise identical to the earlier patches.  It's less awful
> than I expected--the information for many Boost releases was the same so
> it could be reduced in size significantly.  This also includes a utility
> script to do the parsing, so it can be potentially used for future Boost
> releases as well.  I've run the script against all versions of Boost
> supported by the script, and it's verified with the unit test for some of
> the components.
[snip]
> The dependency parsing handles the case where the component library name
> matches the include directory name.  For most cases, this is correct, but
> there are cases marked * where it isn't.  These cases require the user to
> request the appropriate component name by hand with find_package (since
> the include directory name isn't a valid component name).  For most cases
> we can't make the assumption since e.g. if you use <boost/archive> we have
> no idea which serialisation library to use; and if you use <boost/math> we
> don't know which of the math_* libraries you /might/ use.  We have to
> leave that up to the user.  Likewise for <boost/test>.  For these
> libraries we also need to special-case the dependency info since we can't
> easily get it via the headers; currently only mpi_python needed handling
> in this way; the others have no dependencies.

Great.  Please split this up into a few commits, perhaps:

- Add parsing script, perhaps `Utilities/Scripts/BoostScanDeps.cmake`.
  I see it documents in the comments the need for special cases already.
  Please also add a comment next to each special case to explain it.

- Run script to populate the table in FindBoost.cmake.  Document in
  the commit message the range of versions included.

- Add imported targets using the now-available tables.

Thanks,
-Brad

-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to