【问题标题】:Having CMake put generated binaries in a specific directory structure with assets让 CMake 将生成的二进制文件放在带有资产的特定目录结构中
【发布时间】:2011-02-08 00:29:34
【问题描述】:

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

根目录/src

根/资产

根/库

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

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

那么,有没有办法告诉 CMake 自动将编译后的二进制文件粘贴到该目录中,以及将资产复制过来?由于我们在进行源外构建,因此将可执行文件放回原始项目源的 assets 文件夹中似乎很奇怪。

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

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

【问题讨论】:

    标签: file build-automation cmake


    【解决方案1】:

    这是一个与您的结构类似的简单示例:

    • root/src/main.cpp(仅源文件)
    • root/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)
    

    【讨论】:

    • 这似乎非常适合我们的项目。 "make install" 和 VS 似乎都把东西放在了正确的地方! (只有非常小的想法是它似乎误用了安装命令,我有点不熟悉,但它有效!不知道该怎么做。)
    • 这是具有一定复杂性的 Cmake 项目的黄金
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2014-07-27
    • 1970-01-01
    • 2016-04-12
    • 2016-04-20
    • 1970-01-01
    相关资源
    最近更新 更多