资源

FRAMEWORKBUNDLE 中指定资源文件。

FRAMEWORKBUNDLE 属性标记的目标会生成框架或应用程序包(macOS 和 iOS 均受支持)或其他平台上的普通共享库。此属性可以设置为一个文件列表,以便放置在包中的相应目录(例如 macOS 的 Resources 目录)中。在非 Apple 平台上,可以使用 RESOURCE 选项通过 install(TARGETS) 命令安装这些文件。

应用程序包的以下示例

add_executable(ExecutableTarget
  addDemo.c
  resourcefile.txt
  appresourcedir/appres.txt)

target_link_libraries(ExecutableTarget heymath mul)

set(RESOURCE_FILES
  resourcefile.txt
  appresourcedir/appres.txt)

set_target_properties(ExecutableTarget PROPERTIES
  MACOSX_BUNDLE TRUE
  MACOSX_FRAMEWORK_IDENTIFIER org.cmake.ExecutableTarget
  RESOURCE "${RESOURCE_FILES}")

将生成 iOS 系统的平面结构

ExecutableTarget.app
  appres.txt
  ExecutableTarget
  Info.plist
  resourcefile.txt

将为 macOS 系统生成以下目录结构

ExecutableTarget.app/
  Contents
    Info.plist
    MacOS
      ExecutableTarget
    Resources
      appres.txt
      resourcefile.txt

对于 Linux,此类 CMake 脚本会生成以下文件

ExecutableTarget
Resources
  appres.txt
  resourcefile.txt