开发者

cmake: How to make a script for copying Data files accompanying my program

I am trying to automate my build process with cmake. There is currently only one issue:

Where is, in cmake's philosophy (if there is one), the best place to put the copying of data files.

I have a library and a few examples.开发者_运维问答 The examples need the data.

I currently do the following:

I use a custom command in each example's CMakeLists.txt to copy all the Data into the CMAKE_CURRENT_BINARY_DIR in a post-build step. I use this in my debugging workflow, so no install target is executed yet.

This works quite well, but has certain drawbacks:

  1. The copying occurs everytime the project is built. With VS 2005 this sometimes occurs even if it is not newly built. Since the data folders are big, the copying takes time, and it gets a bit annoying.
  2. I am certain that this is a very clumsy way of doing this.

I want to copy those directories to the executable paths, so I don't need hints how to set the debug working directory

The perfect time to copy these directories would be at cmake configuration/generation time, at least I think so. Should I do this, and how would I do this?


As recently seen in this question, you can use configure_file to copy files to the build directory:

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/input.txt
    ${CMAKE_CURRENT_BINARY_DIR}/output.txt COPYONLY)

That does it once at build time and only when needed.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜