samedi 21 novembre 2015

CMake: download file, modify, add test from it

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)

INCLUDE(ExternalData)
set(
  ExternalData_URL_TEMPLATES
  "http://ift.tt/1LsZC0Y"
  )
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.

Aucun commentaire:

Enregistrer un commentaire