我使用CMake的生成构建文件的跨平台游戏,并希望在某一批量的Info.plist文件定制的MacOS捆绑与CMake的
这里指定自定义NSMainNibFile
和NSPrincipalClass
值Info.plist文件的相关部分我Info.plist.in模板:
<key>NSMainNibFile</key>
<string>${MAIN_NIBFILE}</string>
<key>NSPrincipalClass</key>
<string>${PRINCIPAL_CLASS}</string>
我在做什么,我的CMakeLists.txt是:
set_target_properties(GLWindow PROPERTIES
MACOSX_BUNDLE_BUNDLE_NAME "OpenGL Test"
MAIN_NIBFILE "MainMenu"
PRINCIPAL_CLASS "NSApplication")
MACOSX_BUNDLE_INFO_PLIST ${CMAKE_SOURCE_DIR}/CMake/Info.plist.in)`
如果我得到了MAIN_NIBFILE
属性为目标,它会按预期返回MainMenu,但实际生成的Info.plist为空。
但是...
如果我全局设置这些变量,它工作正常。
# I would prefer to set these at target scope,
# but it doesn't bloody work!
set(MAIN_NIBFILE "MainMenu")
set(PRINCIPAL_CLASS "NSApplication")
我失去了一些东西在这里还是这是CMake的的限制或如何处理的MacOS捆绑?
这可以说明一些原因。我不敢相信我没有拿起关于配置模板的一点(使用configure_file)。 无论如何我可以解决它,我只需要在plist中为某些工具指定XIB文件和NSApplication子类。 –