我的项目组织如下:
>包括/
> src /
>分享/ myprogram /
其中share / myprogram /包含资源.
我的程序正在使用相对路径访问这些资源.可执行文件希望在../share/myprogram/中找到它们.
我想跑的时候:
mkdir build
cd build
cmake ..
make
要做到以下几点:
>制作一个bin目录
>编译并将可执行文件放入bin /
>复制构建目录中的共享目录
我正在寻找一种干净的方式来做到这一点.理想情况下,我希望CMake将资源视为资源.
我知道我可以使用复制自定义命令.这是实现这一目标的唯一途径吗?
奖金
如果在使用Xcode生成器时资源可以出现在Xcode中的Resources下,并且副本是mybin目标下的干净复制阶段,那将是非常棒的(这就是我所说的CMake将资源视为资源的意思.)
更新:
我到目前为止:
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
add_executable(mybin ${Headers} ${Sources})
add_custom_target(
Resources ALL
${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/share ${PROJECT_BINARY_DIR}/share
SOURCES ${Resources}
)
最佳答案 您可以使用Configure_file将文件从源目录复制到二进制目录.它有参数Copyonly.