CMake/Help/prop_tgt/RESOURCE.rst
Bartosz Kosiorek e76ee2c006 iOS: Fix framework resource directory layout (#15848)
A typical iOS application bundle (also Framework Bundle) contains the
application executable and any resources used by the application (for
instance, the application icon, other images, and localized content) in
the top-level bundle directory.  The same rule applies to Framework
Bundles.
2015-12-03 08:52:09 -05:00

62 lines
1.5 KiB
ReStructuredText

RESOURCE
--------
Specify resource files in a :prop_tgt:`FRAMEWORK` or :prop_tgt:`BUNDLE`.
Target marked with the :prop_tgt:`FRAMEWORK` or :prop_tgt:`BUNDLE` property
generate framework or application bundle (both OS X 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 OS X) 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:
.. code-block:: cmake
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 OS X 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