让CMake将生成的二进制文件放在具有资产的特定目录结构中

Koz*_*aki 7 build-automation file cmake

我项目的目录结构基本如下:

根/ SRC

根/资产

根/库

我目前已经设置了CMake来编译源代码,编译库,然后通过从根目录调用make来链接它们.

然后我必须手动将可执行文件移动到原始资产目​​录中以使其运行,因为它是预期的位置(并且我们希望在资产中使用我们的目录结构进行测试,这与我们在完成时的预期接近).

那么,有没有办法告诉CMake自动将已编译的二进制文件粘贴在该目录中,以及复制资产?由于我们正在完成源代码构建,因此将可执行文件重新粘贴到原始项目源的资源文件夹中似乎很奇怪.

简而言之,有两个问题:有没有办法让CMake复制资产和代码,有没有办法让生成的可执行文件复制到构建树中的特定位置?

任何帮助将不胜感激---谢谢!

Dar*_*ryl 9

这是一个像你这样的结构的简单例子:

  • root/src/main.cpp(只有源文件)
  • root/assets(我希望可执行文件在哪里)

这是cmake文件:

PROJECT(HelloCMake)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${HelloCMake_SOURCE_DIR}/assets)
add_executable (HelloCMake src/main.cpp) 
Run Code Online (Sandbox Code Playgroud)

当我使用Visual Studio构建时,我将输出放在root/assets/debug中.我必须挖掘出如何摆脱额外的配置文件夹(调试).不完美,但希望能让你走上正轨.

编辑......更好:

INSTALL(TARGETS HelloCMake DESTINATION ${HelloCMake_SOURCE_DIR}/assets)
Run Code Online (Sandbox Code Playgroud)