CMAKE设置默认资源/资产目录

CMake set default resource/asset directory

本文关键字:设置 默认 资源 CMAKE      更新时间:2023-10-16

我正在尝试使用cmake制作简单的sfml/c 应用程序。

假设我需要在代码中的某个地方参考一个简单的foo.png。我发现只有在build文件夹内部,我才能这样做。这是我调用cmake ..命令的文件夹,以及所有CMAKE文件(除了CMakeLists.txt和库模块,例如FindSFML.cmake(。

我不希望它在那里看...但是在build的父目录中称为art的文件夹中。我想这样做是为了使"构建"文件夹对项目而言并不重要(从某种意义上说,任何人都可以构建项目而不依赖其中的内容(。

根据我所看到的 - 在线查看 - 每个人都倾向于建议使用file(COPY ...)命令(或类似的内容(,以复制与我之前提到的build相似的另一个文件夹中的所有必需资产/资源文件夹(我知道这必须有一个技术术语...构建目录,也许是吗?(和获利。但是这个复制过程真的需要吗?您不应该只指定一个加载资产/资源的不同目录吗?

,或者也许我已经错了... Cmake有时很难理解。预先感谢并原谅我缺乏技术知识。

我找到了使用符号链接和add_custom_command函数的解决方案。

在这里(假设上述布局(:

set (source "${CMAKE_SOURCE_DIR}/resources")
set (destination "${CMAKE_CURRENT_BINARY_DIR}/resources")
add_custom_command(
    TARGET ${PROJECT_NAME} POST_BUILD
    COMMAND ${CMAKE_COMMAND} -E create_symlink ${source} ${destination} 
    DEPENDS ${destination}
    COMMENT "symbolic link resources folder from ${source} => ${destination}"
)

我实际上是从博客那里得到的...这是指向良好公民身份的文章的链接:http://qrikko.blogspot.it/2016/05/cmake-and cmake-and-how-to-copy-copy-resources-during.html

过得愉快。