[CMake] Pass args to ctest through "make check"

Orion Poplawski orion at cora.nwra.com
Thu Aug 1 18:57:50 EDT 2013


On 07/31/2013 03:08 PM, Orion Poplawski wrote:
> Is there a way to pass arguments to ctest via the "make check" target?
>

Okay, here's what's up.  This recipe: 
http://www.cmake.org/Wiki/CMakeEmulateMakeCheck :

add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})

is not terribly useful in that it appears impossible to pass options to ctest 
from the "make check" command line.  In Fedora packaging we want to generally 
add -V and sometimes exclude certain tests with -E 'test1|test2|...'.

I tried doing:

cmake -DCMAKE_CTEST_COMMAND="/usr/bin/ctest -V -E 'test'"

but then I end up with:

CMakeFiles/check.dir/build.make:
CMakeFiles/check:
         "/usr/bin/ctest -V -E 'test'"

which fails because of the quoting:

make[3]: Entering directory 
`/builddir/build/BUILD/eigen-eigen-ffa86ffb5570/noarch-redhat-linux-gnu'
"/usr/bin/ctest -V -E 'gmres_2|minres_1|bdcsvd_2'"
/bin/sh: /usr/bin/ctest -V -E 'gmres_2|minres_1|bdcsvd_2': No such file or 
directory
make[3]: *** [CMakeFiles/check] Error 127


At least with the old style:

add_custom_target(check COMMAND ${CMAKE_BUILD_TOOL} test)

You had access to the ARGS variable passed to ctest in the test target. 
Although that apparently breaks parallel make options 
(http://www.cmake.org/pipermail/cmake/2009-March/027941.html)


Thoughts?

-- 
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA, Boulder/CoRA Office             FAX: 303-415-9702
3380 Mitchell Lane                       orion at nwra.com
Boulder, CO 80301                   http://www.nwra.com


More information about the CMake mailing list