I guess it doesn't really matter but for the libraries that don't have a single include header, should you be using these instead:
- container/container_fwd.hpp - exception/all.hpp - filesystem.hpp - math_fwd.hpp (instead of math/quaternion.hpp) - system/config.hpp - type_erasure/config.hpp They're "common" or "central" headers for the libraries instead of specific headers. - Chuck On Wed, May 11, 2016 at 10:38 AM, <rle...@codelibre.net> wrote: > On 2016-04-12 11:22, Joachim Wuttke wrote: > >> FindBoost does not detect absence of header files. >> >> To be specific: Run the following under cmake version 3.5.1: >> >> set(Boost_NO_BOOST_CMAKE ON) # prevent shortcut >> set(Boost_USE_STATIC_LIBS OFF) >> set(Boost_USE_MULTITHREADED ON) >> set(Boost_USE_STATIC_RUNTIME OFF) >> add_definitions(-DBOOST_ALL_DYN_LINK) # line is needed for MSVC >> #add_definitions(-DBOOST_LIB_DIAGNOSTIC) # shows during compilation >> auto-linked libraries >> if(WIN32) >> set(boost_libraries_required date_time chrono program_options zlib >> bzip2 iostreams system filesystem regex thread) >> else() >> set(boost_libraries_required date_time chrono program_options >> iostreams system filesystem regex thread) >> endif() >> find_package(Boost 1.48.0 COMPONENTS ${boost_libraries_required} REQUIRED) >> message(STATUS "--> Boost_INCLUDE_DIRS: ${Boost_INCLUDE_DIRS}") >> message(STATUS " Boost_LIBRARY_DIRS: ${Boost_LIBRARY_DIRS}") >> message(STATUS " Boost_LIBRARIES: ${Boost_LIBRARIES}") >> >> It will pass, even if files like /usr/include/boost/date_time.hpp &c are >> removed >> from the system. >> > > Attached is a patch to add this extra checking. > > For each library component, there is a corresponding header which has been > present in all versions of boost to date which provide the library; the > list used to validate this is also attached. I have also validated that > each component works with find_package for Boost 1.58 and 1.60. > > If your system contains both the libraries and headers, then FindBoost > will behave exactly as before. But if you have the libraries without the > headers, FindBoost will now fail, rather than passing and then having the > build subsequently fail when it tries to use the nonexistent headers. So > it's essentially adding an additional header check per component, which > will identify situations where the user has an incomplete Boost > installation e.g. no all the -dev packages are installed. > > I can merge this into next for testing, but if anyone wanted to have an > initial play with it to verify that it's still functional and that the > approach is sound, I can wait off for now. > > > Regards, > Roger > -- > > 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 >
-- 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