MACOSX_PACKAGE_LOCATION

将源文件放置在应用程序包(MACOSX_BUNDLE)、Core Foundation 包(BUNDLE)或框架包(FRAMEWORK)中。适用于 macOS 和 iOS。

在 Apple 平台上,设置了 MACOSX_BUNDLE 属性的可执行目标将作为 macOS 或 iOS 应用程序包构建。设置了 FRAMEWORK 属性的共享库目标将作为 macOS 或 iOS 框架构建。设置了 BUNDLE 属性的模块库目标将作为 macOS CFBundle 包构建。在此属性设置中列出的源文件将被复制到包或框架内容文件夹内的目录中,该目录由属性值指定。对于 macOS 应用程序包,内容文件夹是 <name>.app/Contents。对于 macOS 框架,内容文件夹是 <name>.framework/Versions/<version>。对于 macOS CFBundle,内容文件夹是 <name>.bundle/Contents(除非更改了扩展名)。有关指定用于 HeadersPrivateHeadersResources 目录的文件,请参见 PUBLIC_HEADERPRIVATE_HEADERRESOURCE 目标属性。

如果指定位置等于 Resources,则结果位置将与使用了 RESOURCE 属性时相同。如果指定位置是 Resources 的子文件夹,它将被放置到相应的子文件夹中。注意:对于 iOS,Apple 使用扁平的包布局,其中不存在 Resources 文件夹。因此,CMake 会从指定位置中剥离 Resources 文件夹名称。

在 4.1 版中新增:MACOSX_PACKAGE_LOCATION 可以在源目录上设置,以将其整个树复制到包中。