Open luoshi006 opened 1 year ago
cmake doc:
Those of you familiar with the GNU Autotools probably know that the
all
target in a Makefile generated by autoconf/automake does not cause
a (re)build of your test programs (assuming you've listed them as
check_PROGRAMS
). This is IMHO a very nice feature, because the normal
build is not bogged down by the compilation of many test programs, or
worse, comes to a grinding halt due to a compilation error in one of the
test programs you didn't have time to fix yet. When the time has come to
run your test suite, you simply type make check
and your test programs
will be (re)build and run.
This feature can be emulated in CMake.
First you need to define a custom target check
. You only need to do
this once, so doing this in your toplevel CMakeLists.txt
file is
probably a good idea.
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND})
eg, you could add set(CMAKE_CTEST_COMMAND ctest -V) to see the printouts from the tests.
To add a test program
add_executable(<testprog> EXCLUDE_FROM_ALL ...)
add_test(<testprog> <testprog>)
add_dependencies(check <testprog>)
The option EXCLUDE_FROM_ALL
is essential here; it causes all
target is built.
If you organize all your test programs in one directory, you can use the
EXCLUDE_FROM_ALL
option with the add_subdirectory
command. That way,
you don't need to specify this option with every add_executable
command.
This page was initially populated by conversion from its original location in another wiki.
https://gitlab.kitware.com/cmake/community/-/wikis/doc/tutorials/EmulateMakeCheck
check
target that will build testsall
targetso, only change name from
tests_build
tocheck
?