Open jeremy-murphy opened 3 weeks ago
This is still somewhat broken, I haven't got the tests to compile properly yet, I think it's partly missing the required Boost.UTF macros, but also some unexpected static_assert
failures.
I actually don't know who else works on Boost.Graph and prefers CMake, so I'll just tag a few recent contributors to see if they are interested: @jan-grimo @danielyxyang @brunom @sehe @jcdong98 @andrea-cassioli-maersk @vslashg
Peter, I assigned you because I assume you know about the super-project CMake business.
I do work with CMake usually/
This looks OK at a first glance, but you should change
if (BOOST_SUPERPROJECT_VERSION)
to
if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
which checks whether this is the root project (as opposed to checking whether it's part of the Boost superproject.)
In principle, Boost libraries are also usable without a superproject, as direct subprojects, although in this specific case this probably isn't very practical because of the number of dependencies.
Also, if you're going to make changes to CMakeLists.txt, you should first add CI jobs that verify that current uses aren't broken. Or I can add them for you if you prefer.
Also, if you're going to make changes to CMakeLists.txt, you should first add CI jobs that verify that current uses aren't broken. Or I can add them for you if you prefer.
If you have some pre-canned test, then yes, please go ahead!
This looks OK at a first glance, but you should change
if (BOOST_SUPERPROJECT_VERSION)
to
if(NOT CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
which checks whether this is the root project (as opposed to checking whether it's part of the Boost superproject.)
In principle, Boost libraries are also usable without a superproject, as direct subprojects, although in this specific case this probably isn't very practical because of the number of dependencies.
OK, sure, will do. I see there are some new variables with PROJECT
in their name specifically for this purpose, but they require a fairly recent version of CMake, so I'll just go with whatever is supported by our minimum requirement.
CI jobs for testing CMake subdir/install use added. I arbitrarily picked the adj_list_edge_list_set.cpp
test as the main.cpp
file in both cases.
I prefer to use CMake as a build system, but the existing CMake files in Boost don't really help.
I'm always maintaining some split-identity CMake like this in order to do work, so I thought I may as well merge it upstream if