[CMake] add_test command in a sub-directory

romain.jacquet.dev at free.fr romain.jacquet.dev at free.fr
Thu Oct 1 12:30:43 EDT 2009


Hi everybody,

    I have found a strange behavior with CTest. I had a very simple projet with
one test, which works perfectly.
I have changed the architecture of my project. I have now a subdirectory.

Now:
CMakeLists.txt
->myDir/
->myDir/*cpp
->myDir/*h
->myDir/CMakeLists.txt

The idea behind is the top-level CMakeLists.txt just call the other
CMakeLists.txt with the add_subdirectory command. Everything works except that
the target make test.
$make test
make: *** No rule to make target `test'. Stop.

I have found some workaround, moving the add_test command in the level
directory. But it's not very easy to use.
Is there a reason for the add_test command to not work in a subdirectory?

Thanks in advance for any help.

------------------------------------------
The top-level CMakeLists.txt:
project(ROMAIN_CTEST)
cmake_minimum_required(VERSION 2.6)

SET(QT_DIR "/data/qt-x11-opensource-src-4.5.2/install_dir/")
SET(CMAKE_MODULE_PATH "/data/Development/Scripts/CMakeModules")
INCLUDE(Qt)


add_subdirectory("messagelib")
------------------------------------------
The inner CMakeLists.txt:

include_directories("/data/qt-x11-opensource-src-4.5.2/install_dir/include/QtCore/")
include_directories("/data/qt-x11-opensource-src-4.5.2/install_dir/include/")
link_directories("/data/qt-x11-opensource-src-4.5.2/install_dir/lib/")


QT4_AUTOMOC(mocGenList /data/messagelib/qb/message.h)

#add_library (message message.cpp ${mocGenList})
message("mocGenList ${mocGenList}")

add_executable (montest test.cpp message.cpp ${mocGenList})
target_link_libraries(montest QtCore)


ENABLE_TESTING()
ADD_TEST(SimpleTest montest)







More information about the CMake mailing list