[CMake] Adding compile and build type tests to CMake/CTest

Dvir Yitzchaki Dvir.Yitzchaki at ceva-dsp.com
Tue Sep 5 02:47:58 EDT 2017


There's already CheckCXXSourceCompiles and friends. 
The only problem is that try_compile is not scriptable otherwise you could let the test invoke 
${CMAKE_COMMAND} -P check_source_compiles.cmake.

-----Original Message-----
From: CMake [mailto:cmake-bounces at cmake.org] On Behalf Of Roger Leigh
Sent: Monday, September 4, 2017 16:51
To: cmake at cmake.org
Subject: Re: [CMake] Adding compile and build type tests to CMake/CTest

On 04/09/17 14:40, Edward Diener wrote:
> Boost Build has tests for running an application successfully or not, 
> for compiling one or more source files successfully or not, and for 
> building one or more source files into an exe or not. These tests in 
> Boost Build are the run/run-fail, compile/compile-fail, and 
> link/link-fail rules.
> 
> CMake/CTest has the exact equivalent to the run/run-fail rule in its 
> add_test framework, but there is not add_test equivalent to the other 
> two sets of rules. It sure would be nice, when Boost transitions to 
> using CMake/CTest instead of Boost Build, if CMake/CTest had the 
> equivalent of the other two sets of types of test in its add_test 
> framework.
> 
> Is there any consensus that these other two types of tests might be 
> valuable for CMake/CTest, or any way to make this happen ?

I've certainly wished for them.  Particularly when testing templated code where you want to test that certain things fail correctly, e.g. via static_assert or simply being invalid.

I understand it's possible to make this work partially, by creating targets which aren't built by default, and then add tests which invoke the targets.  But this appears to have some caveats, such as potential misbehaviour with parallel testing.  Or you can have a separate CMake build for each individual target, but it's extra complexity.  Having a proper means of registering such tests would be very, very nice.


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


More information about the CMake mailing list