Я использую CMake генерацию файлов сборки для кросса игровой платформы и хочет задать пользовательские NSMainNibFile
и NSPrincipalClass
значение в файле Info.plist определенного расслоения вCUSTOMIZING MacOS расслоения с CMake
Вот соответствующая часть мой 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) под капотом. Я могу обойти это так или иначе, мне нужно только указать XIB-файлы и подклассы NSApplication в plist для некоторых инструментов. –