On 7. Jul, 2010, at 16:01 , Paul Harris wrote: > Hi all, > > I have looked and can't find the answer, so I turn to the list. > > I have a CMakeLists.txt and a subdirectory called utils, which also has its > own CMakeLists.txt > > In the parent CML.txt, I have something like: > > ENABLE_TESTING() > add_subdirectory(utils) > > In my utils CML.txt, I have > > ADD_EXECUTABLE(unit_1 units/unit_1.cpp) > ADD_TEST( unit_1 ${EXECUTABLE_OUTPUT_PATH}/unit_1 ) >
Simplify this to ADD_TEST(unit_1 unit_1) CMake will figure out by itself that unit_1 is a target and invoke the executable correctly (your code would break for multi-configuration IDE generators). As for the dependencies, I agree that it would be nice if the "test" target depended on the executables. But what is wrong with "make all test" (apart from the fact that it possibly compiles more than you actually need to run the test)? You could also wrap the add_executable call in a custom function which creates a custom target (say test_exes) and makes it depend on all the executables: function(add_test_executable name) if(NOT TARGET ${name}) add_custom_target(test_exes) endif() add_executable(${name} ${ARGN}) add_dependencies(test_exes ${name}) endfunction() Then you can do "make test_exes test". HTH Michael _______________________________________________ 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