如何使用CMake添加额外的plist属性?

Jes*_*der 7 iphone macos cmake plist

我正在尝试添加该项目

<key>UIStatusBarHidden</key><true/>
Run Code Online (Sandbox Code Playgroud)

我的plist是由CMake自动生成的.对于某些键,似乎有预先定义的方法来添加项目; 例如:

set(MACOSX_BUNDLE_ICON_FILE ${ICON})
Run Code Online (Sandbox Code Playgroud)

但我找不到添加任意属性的方法.

我尝试使用MACOSX_BUNDLE_INFO_PLISTtarget属性,如下所示:我希望生成的plist与旧的plist相同,除了我想要的新属性,所以我只是复制了自动生成的plist并将其设置为我的模板.但是plist使用了一些Xcode变量,看起来也像${foo},并且CMake对此抱怨:

解析字符串时cmake代码中的语法错误

  <string>com.bedaire.${PRODUCT_NAME:identifier}</string>
Run Code Online (Sandbox Code Playgroud)

语法错误,意外的cal_SYMBOL,期待}(47)

未设置策略CMP0010:错误的变量引用语法是错误.运行"cmake --help-policy CMP0010"以获取策略详细信息.使用cmake_policy命令设置策略并禁止显示此警告.此警告适用于项目开发人员.使用-Wno-dev来抑制它.

无论如何,我甚至不确定这是正确的做法.我找不到一个好的例子或任何关于此的好文档.理想情况下,我只是让CMake像以前一样生成所有内容,只需添加一条额外的行.我能做什么?

met*_*sim 6

您是否考虑过复制相关*.plist.in文件/opt/local/share/cmake-2.8/Modules(例如MacOSXBundleInfo.plist.in),编辑它以放置<key>UIStatusBarHidden</key><true/>(或@VAR_TO_REPLACE_BY_CMAKE@),并在CMAKE_MODULE_PATH?中添加已编辑版本的目录?

如果您将CMake安装为应用程序包,则该文件的位置为 /Applications/CMake.app/Contents/share/cmake-N.N/Modules

  • 仅供参考:看起来`MacOSXBundleInfo.plist.in`已被移至`/ Applications/CMake 2.8-10.app/Contents/share/cmake-2.8/Modules` ......或者可能有不同的CMake安装选项确定这些文件的最终位置. (2认同)