diff --git a/.gitignore b/.gitignore index e12c3f96..20079fdc 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ setup.iss /novelwriter.desktop /novelWriter.pyw +/setup/macos/Info.plist # Translations /novelwriter/assets/i18n/*.qm diff --git a/setup.py b/setup.py index 574096ef..b54f3797 100755 --- a/setup.py +++ b/setup.py @@ -71,25 +71,6 @@ def extractVersion(): return numVers, hexVers, relDate -def extractCopyright(): - """Extract the novelWriter copyright notice without having to import - anything else from the main package. - """ - copyright = "Unknown" - initFile = os.path.join("novelwriter", "__init__.py") - try: - with open(initFile, mode="r", encoding="utf-8") as inFile: - for aLine in inFile: - if aLine.startswith("__copyright__"): - copyright = (aLine).partition("=")[2].strip().strip('"') - except Exception as exc: - print("Could not read file: %s" % initFile) - print(str(exc)) - - print("novelWriter copyright: %s " % (copyright)) - - return copyright - def compactVersion(numVers): """Make the version number more compact.""" @@ -414,102 +395,36 @@ def buildQtI18nTS(sysArgs): return + ## # Generage MacOS PList ## def genMacOSPlist(): - - # Set Up Folder - # ============= - + """Set necessary values for .plist file. + """ numVers, _, _ = extractVersion() pkgVers = compactVersion(numVers) - outDir = "setup/macos" - macosBundleName = "novelWriter" - macosBundleExeName = "novelWriter" - macosBundleInfo = "novelWriter: A markdown-like text editor for planning and writing novels." - macosBundleIcon = "novelwriter.icns" - macosBundleIdent = "io.novelwriter.novelWriter" - macosBundleSVers = pkgVers - macosBundleVers = numVers - macosBundleCopyright = extractCopyright() + copyrightYear = datetime.datetime.now().year # These keys are no longer used but are present for compatability - macosBundleVersMajor, macosBundleVersMinor, _ = pkgVers.split(".") + pkgVersMaj, pkgVersMin, _ = pkgVers.split(".") - - plistXML = ( - "\n" - "\n" - "\n" - "\n" - "NSPrincipalClass\n" - "NSApplication\n" - "NSHighResolutionCapable\n" - "True\n" - "CFBundleDevelopmentRegion\n" - "English\n" - "CFBundleExecutable\n" - f"{macosBundleExeName}\n" - "CFBundleGetInfoString\n" - f"{macosBundleInfo}\n" - "CFBundleIconFile\n" - f"{macosBundleIcon}\n" - "CFBundleIdentifier\n" - f"{macosBundleIdent}\n" - "CFBundleName\n" - f"{macosBundleName}\n" - "CFBundleDisplayName\n" - f"{macosBundleName}\n" - "CFBundleInfoDictionaryVersion\n" - "6.0\n" - "CFBundleShortVersionString\n" - f"{macosBundleSVers}\n" - "CFBundleSignature\n" - "????\n" - "CFBundleVersion\n" - f"{macosBundleVers}\n" - "CFBundlePackageType\n" - "APPL\n" - "NSHumanReadableCopyright\n" - f"{macosBundleCopyright}\n" - "IFMajorVersion\n" - f"{macosBundleVersMajor}\n" - "IFMinorVersion\n" - f"{macosBundleVersMinor}\n" - "CFBundleDocumentTypes\n" - " \n" - " \n" - " CFBundleTypeExtensions\n" - " \n" - " nwx\n" - " \n" - " CFBundleTypeName\n" - " novelWriter Project\n" - " CFBundleTypeOSTypes\n" - " \n" - " TEXT\n" - " utxt\n" - " TUTX\n" - " ****\n" - " \n" - " CFBundleTypeRole\n" - " Viewer\n" - " LSHandlerRank\n" - " Alternate\n" - " \n" - " \n" - "\n" - "\n" + plistXML = readFile(f"{outDir}/Info.plist.template").format( + macosBundleSVers=pkgVers, + macosBundleVers=numVers, + macosBundleVersMajor=pkgVersMaj, + macosBundleVersMinor=pkgVersMin, + macosBundleCopyright=f"Copyright 2018–{copyrightYear}, Veronica Berglyd Olsen", ) print(f"Writing Info.plist to {outDir}/Info.plist") - writeFile(f"{outDir}/Info.plist", plistXML) + return + ## # Sample Project ZIP File Builder (sample) @@ -2059,7 +1974,7 @@ if __name__ == "__main__": if "clean-assets" in sys.argv: sys.argv.remove("clean-assets") cleanBuiltAssets() - + if "gen-plist" in sys.argv: sys.argv.remove("gen-plist") genMacOSPlist() diff --git a/setup/macos/App.entitlements b/setup/macos/App.entitlements index 40dc976a..8274a218 100644 --- a/setup/macos/App.entitlements +++ b/setup/macos/App.entitlements @@ -7,4 +7,4 @@ com.apple.security.cs.allow-dyld-environment-variables - \ No newline at end of file + diff --git a/setup/macos/Info.plist.template b/setup/macos/Info.plist.template new file mode 100644 index 00000000..d239a050 --- /dev/null +++ b/setup/macos/Info.plist.template @@ -0,0 +1,62 @@ + + + + + NSPrincipalClass + NSApplication + NSHighResolutionCapable + True + CFBundleDevelopmentRegion + English + CFBundleExecutable + novelWriter + CFBundleGetInfoString + novelWriter: A markdown-like text editor for planning and writing novels. + CFBundleIconFile + novelwriter.icns + CFBundleIdentifier + io.novelwriter.novelWriter + CFBundleName + novelWriter + CFBundleDisplayName + novelWriter + CFBundleInfoDictionaryVersion + 6.0 + CFBundleShortVersionString + {macosBundleSVers} + CFBundleSignature + ???? + CFBundleVersion + {macosBundleVers} + CFBundlePackageType + APPL + NSHumanReadableCopyright + {macosBundleCopyright} + IFMajorVersion + {macosBundleVersMajor} + IFMinorVersion + {macosBundleVersMinor} + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + nwx + + CFBundleTypeName + novelWriter Project + CFBundleTypeOSTypes + + TEXT + utxt + TUTX + **** + + CFBundleTypeRole + Viewer + LSHandlerRank + Alternate + + + +