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