On Thu, 2017-07-13 at 10:55 -0700, Louis Dionne via Boost wrote:
In branch feature/install-cmake-config-2 of the superproject, you can find an improved version of the award-winning work presented in my previous follow-up. This one integrates into the top-level "b2 install" and "b2 stage" and installs (or, respectively, stages) the CMake configuration files necessary for find_package to work.
[...]
I think this is a very good start! It shows that we can automate part of the process of creating the CMake XYZConfig.cmake files for existing libraries, which is nice. However, the resulting XYZConfig files are not always sufficient, for example Boost.Interprocess, which requires additional libraries to link. Specifically, the config file for Boost.Interprocess would need to specify something along the lines of:
if ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") target_link_libraries(boost_interprocess INTERFACE -lrt) endif()
Actually, using the scripts I have here:
https://github.com/pfultz2/boost-cmake
This will let you inject extra cmake code for projects. That's how I generate code for Boost.Context, which needs a lot of custom work. The same could be done for Boost.Interprocess. Its fairly simple to add if you would like to add your patches.
It currently can build all of boost, but there is some more work that needs to be done, including adding more tests, and disabling libraries such as MPI or Python that need external dependencies.
I looked quickly at your solution, and it appears that you're writing quite a bit of custom CMake code (and I don't see how things could be any different). This also appears to be missing some things like the fact that Hana has a requirement on C++14: target_compile_features(hana INTERFACE cxx_std_14) Or are you reusing Hana's CMakeLists.txt? I'm not sure that's going to work out of the box, since I have not written Hana's CMakeLists.txt with the idea that one would use it through add_subdirectory. I think your (and Peter's) tools are really cool and they show us how we can use tooling to help us migrate if/when we decide to do so. In the end, I do believe we'd have some manual work to do, but that's fine IMO. Louis -- View this message in context: http://boost.2283326.n4.nabble.com/Follow-up-to-the-follow-up-of-the-CMake-f... Sent from the Boost - Dev mailing list archive at Nabble.com.