add_test command in a sub-directory

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

add_test command in a sub-directory

romain.jacquet.dev
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)





_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: add_test command in a sub-directory

Nathaniel Waisbrot (Cont ARL/CISD)
Try moving the ENABLE_TESTING() call to the top-level CMakeLists.txt,
before any calls to add_subdirectory().  Add_test() can stay where it
is.


-N


On Thu, 2009-10-01 at 18:30 +0200, [hidden email] wrote:

> 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)


_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake
Reply | Threaded
Open this post in threaded view
|

Re: add_test command in a sub-directory

romain.jacquet.dev
Selon "Nathaniel Waisbrot (Cont ARL/CISD)" <[hidden email]>:

> Try moving the ENABLE_TESTING() call to the top-level CMakeLists.txt,
> before any calls to add_subdirectory().  Add_test() can stay where it
> is.
Thanks it works perfectly. But the behavior of ENABLE_TESTING() is disturbing. I
think it will be great if this issue was present in the documentation (i.e.
cmake --help ENABLE_TESTING).

Thanks for all.
_______________________________________________
Powered by www.kitware.com

Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake