我的项目的目录结构基本如下:
根/源
根/ Assets
根/库
我目前已经设置了 CMake 来编译源代码、编译库,然后通过从根目录调用 make 来链接它们。
然后我必须手动将可执行文件移动到原始 Assets 目录中以使其运行,因为这是它期望的位置(并且我们希望使用我们的 Assets 目录结构进行测试,使其接近我们在完成时的预期)。
那么,有什么方法可以告诉 CMake 自动将编译后的二进制文件粘贴到该目录中,并将 Assets 复制过来?由于我们正在构建源代码,因此将可执行文件放回到原始项目源的 Assets 文件夹中似乎很奇怪。
简而言之,有两个问题:有没有办法让 CMake 复制 Assets 和代码,有没有办法让它将生成的可执行文件复制到构建树中的特定位置?
任何帮助将不胜感激---谢谢!
最佳答案
这是一个简单的示例,其结构类似于您的结构:
这是cmake文件:
PROJECT(HelloCMake)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${HelloCMake_SOURCE_DIR}/assets)
add_executable (HelloCMake src/main.cpp)
当我使用 Visual Studio 对此进行构建时,我将输出放置在 root/assets/debug 中。我必须深入研究如何摆脱额外的配置文件夹(调试)。不完美,但希望这能让你走上正轨。
编辑...甚至更好:
INSTALL(TARGETS HelloCMake DESTINATION ${HelloCMake_SOURCE_DIR}/assets)
关于file - 让 CMake 将生成的二进制文件与 Assets 一起放在特定的目录结构中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4928341/