/
kate.py
84 lines (67 loc) · 3.79 KB
/
kate.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
import info
from Blueprints.CraftPackageObject import CraftPackageObject
from CraftCore import CraftCore
class subinfo(info.infoclass):
def setTargets(self):
self.versionInfo.setDefaultValues()
self.displayName = "Kate"
self.description = "Modern text editor built on the KDE Frameworks and Qt"
self.webpage = "https://kate-editor.org/"
def setDependencies(self):
self.runtimeDependencies["virtual/base"] = None
self.buildDependencies["kde/frameworks/extra-cmake-modules"] = None
self.runtimeDependencies["libs/qt/qtbase"] = None
self.runtimeDependencies["kde/frameworks/tier1/kconfig"] = None
self.runtimeDependencies["kde/frameworks/tier1/kdbusaddons"] = None
self.runtimeDependencies["kde/frameworks/tier1/kguiaddons"] = None
self.runtimeDependencies["kde/frameworks/tier1/ki18n"] = None
self.runtimeDependencies["kde/frameworks/tier1/kitemmodels"] = None
self.runtimeDependencies["kde/frameworks/tier1/kwindowsystem"] = None
self.runtimeDependencies["kde/frameworks/tier2/kdoctools"] = None
self.runtimeDependencies["kde/frameworks/tier2/kjobwidgets"] = None
self.runtimeDependencies["kde/frameworks/tier3/kiconthemes"] = None
self.runtimeDependencies["kde/frameworks/tier3/kio"] = None
self.runtimeDependencies["kde/frameworks/tier3/knewstuff"] = None
self.runtimeDependencies["kde/frameworks/tier3/kparts"] = None
self.runtimeDependencies["kde/frameworks/tier3/ktexteditor"] = None
self.runtimeDependencies["kde/frameworks/tier3/kxmlgui"] = None
self.runtimeDependencies["kde/kdeutils/markdownpart"] = None
self.runtimeDependencies["kde/applications/konsole"] = None
self.runtimeDependencies["kde/frameworks/tier1/kuserfeedback"] = None
# try to use Breeze style as Windows style has severe issues for e.g. scaling
self.runtimeDependencies["kde/plasma/breeze"] = None
class Package(CraftPackageObject.get("kde").pattern):
def __init__(self, **kwargs):
super().__init__(**kwargs)
def createPackage(self):
self.blacklist_file.append(self.blueprintDir() / "blacklist.txt")
self.addExecutableFilter(r"(bin|libexec)/(?!(kate|update-mime-database|kioslave)).*")
self.defines["shortcuts"] = [{"name": "Kate", "target": "bin/kate.exe", "description": self.subinfo.description}]
# kate icons
self.defines["icon"] = self.buildDir() / "apps/kate/ICONS_SOURCES.ico"
# use special windows icons
self.defines["icon_png"] = self.sourceDir() / "apps/kate/icons/windows/150-apps-kate.png"
self.defines["icon_png_44"] = self.sourceDir() / "apps/kate/icons/windows/44-apps-kate.png"
self.defines["registry_hook"] = (
"""WriteRegStr SHCTX "Software\\Classes\\*\\shell\\EditWithKate" "" "Edit with Kate"\n"""
"""WriteRegStr SHCTX "Software\\Classes\\*\\shell\\EditWithKate\\command" "" '"$INSTDIR\\bin\\kate.exe" "%V"'\n"""
)
self.defines["mimetypes"] = [
"text/plain",
"text/html",
"text/xml",
"text/css",
"text/csv",
"application/json",
"application/xml",
"application/javascript",
]
self.defines["file_types"] = [".ini", ".conf", ".cfg", ".cpp", ".hpp", ".py", ".yaml", ".toml", ".log", ".md"]
self.defines["alias"] = "kate"
# skip some dependencies we don't need during runtime
self.ignoredPackages.append("binary/mysql")
self.ignoredPackages.append("libs/llvm")
# skip dbus for macOS and Windows, we don't use it there and it only leads to issues
if not CraftCore.compiler.isLinux:
self.ignoredPackages.append("libs/dbus")
return super().createPackage()