Browse Source

Add missing info.plist

https://github.com/Ultimaker/cura-build/blob/2ce60de673a424dbc9438df7c9c50492b1fb0e6d/packaging/Info.plist.in#L5

Contributes to CURA-9365
j.spijker@ultimaker.com 2 years ago
parent
commit
c100f68f58
2 changed files with 23 additions and 1 deletions
  1. 17 0
      Ultimaker-Cura.spec.jinja
  2. 6 1
      conanfile.py

+ 17 - 0
Ultimaker-Cura.spec.jinja

@@ -247,4 +247,21 @@ app = UMBUNDLE(
     name='{{ name }}.app',
     icon={{ icon }},
     bundle_identifier={{ osx_bundle_identifier }}
+    version={{ version }},
+    info_plist={
+        'CFBundleDisplayName': '{{ display_name }}',
+        'NSPrincipalClass': 'NSApplication',
+        'CFBundleDevelopmentRegion': 'English',
+        'CFBundleExecutable': '{{ name }}',
+        'CFBundleInfoDictionaryVersion': '6.0',
+        'CFBundlePackageType': 'APPL',
+        'CFBundleShortVersionString': '{{ short_version }}',
+        'CFBundleDocumentTypes': [{
+                'CFBundleTypeRole': 'Viewer',
+                'CFBundleTypeExtensions': ['*'],
+                'CFBundleTypeName': 'Model Files',
+                'LSItemContentTypes': ['com.example.myformat'],
+                'LSHandlerRank': 'Owner'
+            }]
+        },
 ){% endif %}

+ 6 - 1
conanfile.py

@@ -185,9 +185,12 @@ class CuraConan(ConanFile):
         with open(Path(__file__).parent.joinpath("Ultimaker-Cura.spec.jinja"), "r") as f:
             pyinstaller = Template(f.read())
 
+        cura_version = tools.Version(self.version)
+
         with open(Path(location, "Ultimaker-Cura.spec"), "w") as f:
             f.write(pyinstaller.render(
                 name = str(self.options.display_name).replace(" ", "-"),
+                display_name = self.options.display_name,
                 entrypoint = entrypoint_location,
                 datas = datas,
                 binaries = binaries,
@@ -199,7 +202,9 @@ class CuraConan(ConanFile):
                 upx = str(self.settings.os == "Windows"),
                 strip = False,  # This should be possible on Linux and MacOS but, it can also cause issues on some distributions. Safest is to disable it for now
                 target_arch = "'x86_64'" if self.settings.os == "Macos" else "None",  # FIXME: Make this dependent on the settings.arch_target
-                macos = self.settings.os == "Macos"
+                macos = self.settings.os == "Macos",
+                version = self.version,
+                short_version = f"{cura_version.major}.{cura_version.minor}.{cura_version.patch}",
             ))
 
     def source(self):