[CMake] Where are tests located?

David Cole david.cole at kitware.com
Fri Nov 11 11:11:18 EST 2011


On Thu, Nov 10, 2011 at 4:41 PM, EXT-York, Gantry
<gantry.york at boeing.com> wrote:
> If I'm in a traversed subdirectory, is there a different variable other than ${CMAKE_CURRENT_SOURCE_DIR} that I should be using?
>
> This doesn't seem to work.
>
>
> Gantry York
> Chandler, Arizona
>
>
>
>
> -----Original Message-----
> From: cmake-bounces at cmake.org [mailto:cmake-bounces at cmake.org] On Behalf Of EXT-York, Gantry
> Sent: Thursday, November 10, 2011 2:34 PM
> To: David Cole
> Cc: cmake at cmake.org
> Subject: Re: [CMake] Where are tests located?
>
> OK, so if I'm trying to add a test do I just
>
> add_executable( run_main.pl IMPORTED )
> set_property(
>    TARGET test_script1
>    PROPERTY IMPORTED_LOCATION "${CMAKE_CURRENT_SOURCE_DIR}/run_main.pl"
> )
> add_test( test1 run_main.pl)
>
>
> If run_main.pl is
>
> #!/usr/bin/perl
> system "main --val 24"
>
>
> Main could be in the build tree if it comes from main.cxx or it could be in the source tree if it is a script.  How does cmake know where main is at?
>
>
> -----Original Message-----
> From: David Cole [mailto:david.cole at kitware.com]
> Sent: Thursday, November 10, 2011 1:09 PM
> To: EXT-York, Gantry
> Cc: cmake at cmake.org
> Subject: Re: [CMake] Where are tests located?
>
> When you add an IMPORTED target, CMake does not know where the
> imported target is AT ALL until you tell it.
>
> After:
>  add_executable(run_main.pl IMPORTED)
>
> You need:
>  set_property(TARGET run_main.pl PROPERTY IMPORTED_LOCATION
> "${CMAKE_CURRENT_SOURCE_DIR}/run_main.pl")
>
> See docs here:
>  http://cmake.org/cmake/help/cmake-2-8-docs.html#command:set_property
>  http://cmake.org/cmake/help/cmake-2-8-docs.html#prop_tgt:IMPORTED_LOCATION
>
>
> HTH,
> David
>
>
> On Thu, Nov 10, 2011 at 3:00 PM, EXT-York, Gantry
> <gantry.york at boeing.com> wrote:
>> When I do an
>>
>>
>>
>> add_executable( run_main.pl IMPORTED)
>>
>> add_test( test1 run_main.pl)
>>
>>
>>
>> How does it know where run_main.pl is located when you do an out of source
>> build?
>>
>>
>>
>> It seems to look in
>>
>> .
>>
>> Releases
>>
>> Debug
>>
>> MinSizeRel
>>
>> RelWithDebInfo
>>
>> Deployment
>>
>> Development
>>
>>
>>
>> which are directories that I don't even see existing.
>>
>>
>>
>> And if run_main.pl is just
>>
>>
>>
>> #!/usr/bin/perl
>>
>> system " ../exec/main"
>>
>>
>>
>>
>>
>> How does it know if ../exec/main is in the src tree or the build tree?  If
>> main is a C binary, it would be in the build tree, if it is just a script it
>> would be in the source tree.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Gantry York
>>
>> Chandler, Arizona
>>
>>
>>
>> --
>>
>> 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
>>
> --
>
> 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
>

CMAKE_SOURCE_DIR is the value of the top level source tree that you
give to cmake (or cmake-gui, or ccmake) when you configure a build
tree.

CMAKE_CURRENT_SOURCE_DIR starts out as CMAKE_SOURCE_DIR in the top
level CMakeLists.txt file, and then changes value as subdirectories
are traversed via add_subdirectory.


HTH,
David


More information about the CMake mailing list