[CMake] How to emulate autotools "make check"?

Marcel Loose loose at astron.nl
Thu Mar 26 04:39:27 EDT 2009


On Wed, 2009-03-25 at 17:40 +0100, Hendrik Sattler wrote:
> Marcel Loose schrieb:
> > On Wed, 2009-03-25 at 15:16 +0100, Eric Noulard wrote:
> >> 2009/3/25 Marcel Loose <loose at astron.nl>:
> >>
> > OK, it's done.
> > 
> > I've added http://www.cmake.org/Wiki/CMakeEmulateMakeCheck to "Specific
> > Topics".
> 
> Wouldn't a macro for
> add_executable(<testprog> EXCLUDE_FROM_ALL ...)
> add_test(<testprog> <testprog>)
> add_dependencies(check <testprog>)
> 
> be better than complaining about having to retype that all (untested):
> macro ( add_check prog )
>   if ( NOT TARGET check )
>     add_custom_target(check COMMAND ${CMAKE_TEST_COMMAND})
>   endif ( NOT TARGET check )
>   add_executable(${prog} EXCLUDE_FROM_ALL ${ARGN})
>   add_test(${prog})
>   add_dependencies(check ${prog})
> endmacro ( add_check )
> 
> then use add_check() like add_executable().
> 
> HS

Hi Hendrik,

Your idea sounds good, but usually you will also need to use a
target_link_libraries() command. How would you fit that into your macro?
So the sequence of commands would be something like:
  add_executable(<prog> <prog-srcs>)
  add_test(<prog> <prog>)
  add_dependencies(check <prog>)
  target_link_libraries(prog <dep-libs>)

How do I pass both <prog-srcs> and <dep-libs> as arguments to the
add_check macro?

Regards,
Marcel Loose.




More information about the CMake mailing list