RESOURCE

FRAMEWORKBUNDLE 中指定资源文件。

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

以下是应用程序包的示例

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