On Fri, 2017-09-29 at 21:33 -0700, Robert Ramey via Boost wrote:
On 9/29/17 10:02 AM, paul via Boost wrote:
Hi all,
So I have been working at converting more of boost tests to cmake utilizing the BCM library, here:
https://github.com/boost-cmake/boost/tree/1.64
This is a build of Boost 1.64, with a majority of the tests integrated. There is still much more work needed to update the tests, as there are some that still fail. Also, some of the libraries were skipped due to missing headers in the 1.64 tag. You can check the library yourself by running cmake:
cd build mkdir build cmake .. cmake --build . --target check
This will build all the tests. You can check the tests for one target with:
Looking at the serialization library test because I'm familiar with it I see things like:
serialization_archive_test(test_forward_list A)
while in the CMakeLists.txt file I see
[ test-bsl-run_files test_forward_list_ptrs : A : : [ requires cxx11_hdr_forward_list ] ] # BOOST_NO_CXX11_HDR_FORWARD_LIST
In otherwords, the CMake version will run tests which cannot pass.
Currently, the feature checking from Boost.Config has not been implemented yet, although this could be fix with a simple `check_include_file`. Of course, this is just an initial implementation of the tests in cmake. There are many areas that need updates from authors, especially since they understand the test cases better than me. So, any PRs(or feedback) are welcomed to help improve the tests.
cmake --build . --target check-boost_core
Which will run the tests for just `boost_core`.
This was all generated using scripts in https://github.com/pfultz2/boost-c make
Where is the document which describes how to uses these scripts?
https://github.com/pfultz2/boost-cmake
I plan to update this to a newer version of boost. If anyone has fixes or changes they can send a PR or issue on either repos, and I will try to incorporate them in.
I think it's a waste of time trying to apply this to all of boost until one has demonstrated that the system actually works on test cases. That is what we're really going to review here is a library of CMake macros and these need to testable/demonstrably correct independent of any particular libraries.
Well we need to know that the cmake modules are sufficient. There are tests for BCM itself, but this says nothing about how well it will work with boost libraries. Also, doing this in parallel can help move boost quicker to cmake.
To put it another way:
a) Develop and test the system
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. .