MACOSX_PACKAGE_LOCATION¶
将源文件放置在应用程序包(MACOSX_BUNDLE)、Core Foundation 包(BUNDLE)或框架包(FRAMEWORK)内部。此属性适用于 macOS 和 iOS。
设置了 MACOSX_BUNDLE 属性的可执行目标在 Apple 平台上将构建为 macOS 或 iOS 应用程序包。设置了 FRAMEWORK 属性的共享库目标在 Apple 平台上将构建为 macOS 或 iOS 框架。设置了 BUNDLE 属性的模块库目标在 Apple 平台上将构建为 macOS CFBundle 包。在设置了此属性的目标中列出的源文件将被复制到属性值指定的包或框架内容文件夹内的目录中。对于 macOS 应用程序包,内容文件夹为 <name>.app/Contents。对于 macOS 框架,内容文件夹为 <name>.framework/Versions/<version>。对于 macOS CFBundle,内容文件夹为 <name>.bundle/Contents(除非扩展名已更改)。有关指定用于 Headers、PrivateHeaders 或 Resources 目录的文件,请参阅 PUBLIC_HEADER、PRIVATE_HEADER 和 RESOURCE 目标属性。
如果指定的位置等于 Resources,则结果位置与使用 RESOURCE 属性时的结果相同。如果指定的位置是 Resources 的子文件夹,它将被放置到相应的子文件夹中。注意:对于 iOS,Apple 使用的是不包含 Resources 文件夹的扁平化包布局。因此,CMake 会从指定位置中剔除 Resources 文件夹名称。
4.1 版本新增:MACOSX_PACKAGE_LOCATION 可以设置在源目录上,以将其整个目录树复制到包中。