我的项目组织如下:
其中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.