[CMake] download file, modify, add test from it
Nico Schlömer
nico.schloemer at gmail.com
Sun Nov 22 14:02:24 EST 2015
Thanks for the hints!
I'm almost there now, the only thing missing is to have my test depend on
the custom_target. This
```
SET_TESTS_PROPERTIES(testname PROPERTIES DEPENDS convert)
```
doesn't do the trick: The target `convert` isn't executed before `ctest`.
Any hints?
Cheers,
Nico
On Sun, Nov 22, 2015 at 3:18 AM David Cole <DLRdave at aol.com> wrote:
> Did you try using full path names for the add_custom_command file names?
>
> And the NAME/COMMAND form of the add_test command?
>
> Also, I've always found custom commands to work best when they're
> associated with a target. And if it was part of a target you could make the
> target depend on the external data target with add_dependencies if
> necessary.
>
>
> HTH,
> David C.
>
>
> On Saturday, November 21, 2015, Nico Schlömer <nico.schloemer at gmail.com>
> wrote:
>
>> Hi everyone,
>>
>> I would like to create a CMake test that does the following:
>> * Download a file from an external resource
>> * Do something with the file
>> * compile an executable myTest
>> * execute myTest outputfile
>>
>> Using ExternalData for downloading the file works well, but the second
>> step (file conversion, in this example cp for simplicity) does not work:
>> ```
>> cmake_minimum_required(VERSION 3.2)
>>
>> project(mytest)
>>
>> # Download the files
>> INCLUDE(ExternalData)
>> set(
>> ExternalData_URL_TEMPLATES
>> "https://downloads.sourceforge.net/project/noshdata/%(algo)/%(hash)"
>> )
>> ExternalData_Expand_Arguments(
>> testFetchData
>> OUT_DATA DATA{${CMAKE_SOURCE_DIR}/test.e}
>> )
>> ExternalData_Add_Target(testFetchData)
>>
>> add_custom_command(
>> OUTPUT test.g
>> COMMAND cp test.e test.g
>> DEPENDS test.e
>> )
>>
>> ADD_EXECUTABLE("myTest" main.cpp)
>>
>> add_test(myTest test.g)
>> ```
>> I suppose I'm missing something about the dependencies here; after all,
>> the `add_custom_command` has to wait for `testFetchData` to complete.
>> Likewise, `add_test` has to wait for `add_custom_command` to complete.
>>
>> Hints appreciated.
>>
>> Cheers,
>> Nico
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake/attachments/20151122/adb3e297/attachment.html>
More information about the CMake
mailing list