RESOURCE — CMake 4.3.0 Documentation

# RESOURCE

Specify resource files in a `FRAMEWORK` or `BUNDLE`.

Target marked with the `FRAMEWORK` or `BUNDLE` property generate framework or application bundle (both macOS and iOS is supported) or normal shared libraries on other platforms. This property may be set to a list of files to be placed in the corresponding directory (eg. `Resources` directory for macOS) inside the bundle. On non-Apple platforms these files may be installed using the `RESOURCE` option to the `install(TARGETS)` command.

Following example of Application Bundle:

    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}")

will produce flat structure for iOS systems:

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

For macOS systems it will produce following directory structure:

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

For Linux, such CMake script produce following files:

    ExecutableTarget
    Resources
      appres.txt
      resourcefile.txt