我们正在OS X上构建一个应用程序,构建管理正在CMake中实现。 在应用程序的CMakeLists.txt中,目标将添加为:
add_executable(${PROJECT_NAME} MACOSX_BUNDLE
${${PROJECT_NAME}_HEADERS}
${${PROJECT_NAME}_SOURCES}
${${PROJECT_NAME}_RESOURCES}
main.mm
)
使用${PROJECT_NAME}_RESOURCES
变量列出xib和图像文件。我们还设置目标属性并按如下方式配置安装:
set_target_properties(${PROJECT_NAME} PROPERTIES
VERSION "${VERSION}"
SOVERSION "${SOVERSION}"
RESOURCE "${${PROJECT_NAME}_RESOURCES}"
)
install(TARGETS ${PROJECT_NAME}
BUNDLE DESTINATION ${RUNTIME_OUTPUT_DIRECTORY}
)
引用documentation(强调我的):
PRIVATE_HEADER,PUBLIC_HEADER和RESOURCE参数导致 要应用于安装FRAMEWORK共享的后续属性 库目标在非Apple平台上的相关文件。的规则 这些参数定义的内容在Apple平台上被忽略,因为 相关文件安装在里面的适当位置 框架文件夹。
所以我们理解在我们的情况下会忽略为RESOURCE
指定install()
参数。然而,CMake发出此消息(红色):
安装目标 - 目标Xxx具有RESOURCE文件但没有RESOURCE 目的地。
编辑:在RESOURCE DESTINATION
命令中设置install()
的值会禁用该消息。在这种情况下,资源仍然会在正确的位置复制到应用程序包中,但它们也会复制到提供的值中。
至少有一种方法可以在不引入OS X上无用的副本的情况下关闭此消息吗?