from Blueprints.CraftPackageObject import CraftPackageObject from Package.CMakePackageBase import CMakePackageBase class subinfo(CraftPackageObject.get('qt-apps').subinfo): def populateCache(self): # 基础信息 self.displayName = "HeurAMS-K" self.description = "Kirigami frontend for HeurAMS memory scheduler" self.webpage = "https://git.pluv27.top/pluv/heurams-k" # 源码地址(使用 master 分支,KDE Invent 风格) self.svnTargets['master'] = '[git]https://git.pluv27.top/pluv/heurams-k.git|master' self.defaultTarget = 'master' def setDependencies(self): # 构建依赖(CMake 等由 Craft 自动处理) self.buildDependencies["dev-util/cmake"] = None # 运行时依赖:Kirigami 框架及 KDE 组件 self.runtimeDependencies["kde/frameworks/kirigami"] = None self.runtimeDependencies["kde/frameworks/kcoreaddons"] = None self.runtimeDependencies["kde/frameworks/kconfig"] = None self.runtimeDependencies["kde/frameworks/ki18n"] = None # Kirigami Addons(formcard, statefulapp 等) self.runtimeDependencies["kde/kirigami-addons"] = None # Qt 6 核心模块(Craft 会通过依赖自动处理,显式声明可选) self.runtimeDependencies["libs/qt6/qtbase"] = None self.runtimeDependencies["libs/qt6/qtdeclarative"] = None class Package(CMakePackageBase): def __init__(self): super().__init__() # 禁用测试(项目目前无测试) self.subinfo.options.configure.args += ["-DBUILD_TESTING=OFF"] # 指定 CMake 构建类型(Release 适合发布) self.subinfo.options.configure.args += ["-DCMAKE_BUILD_TYPE=Release"] def createPackage(self): # 定义主程序名(与 desktop 文件中的 Exec 字段一致) self.defines["appname"] = "heurams-k" # 调用父类打包方法,生成 APK/AppImage 等 return super().createPackage()