我正在尝试使用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
过得愉快。