代码之家  ›  专栏  ›  技术社区  ›  AndreasT

CMAKE:如何制作一个脚本来复制程序附带的数据文件

  •  8
  • AndreasT  · 技术社区  · 15 年前

    我正试图用cmake自动化我的构建过程。 目前只有一个问题:

    在迈克的哲学中,哪里是最好的地方(如果有的话) 放置数据文件的复制。

    我有一个图书馆和一些例子。这些例子需要数据。

    我目前做以下工作:

    我在每个示例的cmakelists.txt中使用自定义命令将所有数据复制到 CMAKE_CURRENT_BINARY_DIR 在生成后步骤中。 我在调试工作流中使用了这个,所以还没有执行安装目标。

    这很有效,但有一些缺点:

    1. 每次生成项目时都会进行复制。与2005年相比,这有时会发生,即使它不是新建的。由于数据文件夹很大,复制需要时间,而且有点烦人。
    2. 我确信这是一种非常笨拙的方法。

    我想将这些目录复制到可执行路径,因此不需要提示如何设置调试工作目录。

    复制这些目录的最佳时间应该是cmake配置/生成时间,至少我这么认为。 我应该这样做吗?我该怎么做?

    1 回复  |  直到 15 年前
        1
  •  12
  •   Community CDub    8 年前

    最近在 this question ,你可以使用 configure_file 要将文件复制到生成目录,请执行以下操作:

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

    只在构建时和需要时执行一次。

    推荐文章