[EMAIL PROTECTED] wrote:
Hi all!

I'm trying to integrate cppunit tests using cmake in our ims library and
cannot solve the problem how to build tests executables only by demand,
i.e. by calling 'make test'. I'm quite new to cmake and don't know if this
is possible at all, but I suppose it should be possible :-)
I have found some related issues, i.e. this thread,
http://www.cmake.org/pipermail/cmake/2007-March/013242.html, but that
didn't help much.

I followed the steps to enable testing as described in cmake tutorial (or
here is another link I followed
http://techbase.kde.org/index.php?title=Development/Tutorials/Unittests&printable=yes#Tutorial_6:_Integrating_with_CMake)
namely:

1. enable testing in main CMakeLists.txt

2. add test in tests/CMakeLists.txt, here is it:

# sets test sources
set(IMSLIB_TESTS
        tests.cpp
        alphabettest.cpp
        elementtest.cpp)

add_executable(imslib-tests ${IMSLIB_TESTS})
target_link_libraries(imslib-tests ${CPPUNIT_LIBRARIES} ims)
add_test(imslib-tests  ${CMAKE_CURRENT_SOURCE_DIR}/imslib-tests)

If this is all what I do, then running 'make test' gives error
...
 1/  1 Testing imslib-tests                  Unable to find executable:
/home/imslib/tests/imslib-tests
...

so executable is not even built.

If I add tests directory to project subdirectories (in main
CMakeLists.txt) via
add_subdirectory(tests)

then obviously already calling 'make' tries to build executable. In this
case building and calling tests succeed, but I don't want to build tests
already by calling 'make', instead give users the opportunity to build
them by demand.

I also tried to add tests directory via add_subdirectory(tests
EXLCUDE_FROM_ALL) but that again didn't build test by calling 'make test'.

It looks like running 'make test' doesn't see the dependency that the
library should be first built and then run, not just run.

Do I oversee something?
You want to look at ctest --build-and-test, there are examples in the CMake source tree of how to do this. With this you run cmake and make on something that is not even part of the larger
project.

-Bill

_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to