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
+
+
+
+