Ich bin mit CMake-Dateien für ein Cross-Plattform-Spiel erzeugen bauen und benutzerdefinierte NSMainNibFile
und NSPrincipalClass
Werte in bestimmten Bundles Info.plist DateiCustomizing MacOS Bundle des Info.plist Datei mit CMake
Hier ist der relevante Teil angeben mag von meine Info.plist.in Vorlage:
<key>NSMainNibFile</key>
<string>${MAIN_NIBFILE}</string>
<key>NSPrincipalClass</key>
<string>${PRINCIPAL_CLASS}</string>
Was ich in meinem CMakeLists.txt tun ist:
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)`
Wenn ich die 012 bekommenEigenschaft für das Ziel, gibt MainMenu wie erwartet zurück, aber die tatsächlich generierte Info.plist ist leer.
ABER ...
Wenn ich diese Variablen global festgelegt, es funktioniert gut.
# I would prefer to set these at target scope,
# but it doesn't bloody work!
set(MAIN_NIBFILE "MainMenu")
set(PRINCIPAL_CLASS "NSApplication")
Am ich hier etwas fehlt oder ist dies eine Einschränkung von CMake oder wie Griffe es macOS Bündel?
Das wirft Licht darauf. Ich kann nicht glauben, dass ich nicht das bisschen über das Konfigurieren der Vorlage (unter Verwendung von configure_file) unter der Haube aufgeschnappt habe. Ich kann sowieso umgehen, ich brauche nur XIB-Dateien und NSApplication-Unterklassen in einem Plist für einige Tools angeben. –