On 8. Jul, 2010, at 7:25 , Paul Harris wrote: > On 8 July 2010 12:56, Michael Wild <them...@gmail.com> wrote: > >> >> On 8. Jul, 2010, at 4:40 , Paul Harris wrote: >> >>> On 7 July 2010 23:05, Michael Wild <them...@gmail.com> wrote: >>> >>>> >>>> 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). >>>> >>>> >>> This does not work for me. If I do not have the EXECUTABLE_OUTPUT_PATH >> in >>> add_test, I get a message like this when i run "make test" (shortened for >>> brevity): >>> >>> 1/ 1 Testing unit_string_numeric_utils Could not find executable >>> unit_string_numeric_utils >>> Looked in the following places: >>> unit_string_numeric_utils >>> unit_string_numeric_utils >>> Release/unit_string_numeric_utils >>> Release/unit_string_numeric_utils >> >> Mmmh, works fine for me: >> >> --------->8--------- >> cmake_minimum_required(VERSION 2.8) >> project(tmp) >> >> enable_testing() >> >> add_executable(unit1 unit1.cpp) >> add_test(unit1 unit1) >> ---------<8--------- >> >> Where unit1.cpp is just a simple hello-world program. Running it: >> >> > snip > > My project is a lot bigger than a hello-world program. It has > subdirectories for a start, and I do things like > SET(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin CACHE INTERNAL "Single > output directory for building all executables.") > > I'm not sure at which point things stop working, do you want me to try and > build a test-case?
You are right, it seems that the documentation is misleading (or IMHO outright wrong). This, however, works for me and is safe: add_test(NAME unit1 COMMAND $<TARGET_FILE:unit1>) Note that NAME and COMMAND are required for this to work. BTW: EXECUTABLE_OUTPUT_PATH is deprecated, you should use CMAKE_RUNTIME_OUTPUT_DIRECTORY instead. _______________________________________________ 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