import ĠCom _ mine in aby ss _ con ventions _ platform _ gradle . Deps Ċ import Ġde . under couch . gradle . tasks . download . Download Ċ import Ġorg . codehaus . plex us . util . Os Ċ import Ġorg . jetbrains . compose . compose Ċ import Ġorg . jetbrains . compose . desktop . application . dsl . Target Format Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" com . mine in aby ss . con ventions . kotlin ") ĊĠĠĠ Ġid (" org . jetbrains . compose ") Ġversion Ġ" 1 . 1 . 1 " ĊĠĠĠ Ġkotlin (" plugin . serialization ") Ċ // ĠĠĠ Ġid (" com . github . john ren gel man . shadow ") Ġversion Ġ" 7 . 1 . 1 " Ċ // ĠĠĠ Ġid (" pro guard ") Ġversion Ġ" 7 . 1 . 0 " Ċ Ċ } Ċ Ċ /* build script Ġ{ ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven Central () ĊĠĠĠ Ġ} ĊĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠ Ġclasspath (" com . gu ards quare : pro guard - gradle : 7 . 1 . 0 ") ĊĠĠĠ Ġ} Ċ }*/ Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġgoogle () ĊĠĠĠ Ġmaven Central () ĊĠĠĠ Ġmaven (" https :// maven . pkg . jetbrains . space / public / p / compose / dev ") ĊĠĠĠ Ġmaven (" https :// maven . fabric mc . net ") Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation ( kotlin (" reflect ")) ĊĠĠĠ Ġimplementation ( files (" deps / Browser Launcher 2 - all - 1 _ 3 . jar ")) ĊĠĠĠ Ġimplementation ( compose . desktop . current Os ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexclude ( group Ġ= Ġ" org . jetbrains . compose . material ", Ġmodule Ġ= Ġ" material ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Opt In ( org . jetbrains . compose . Experimental Compose Library :: class ) ĊĠĠĠ Ġimplementation ( compose . material 3 ) ĊĠĠĠ Ġimplementation ( compose . material Icons Extended ) ĊĠĠĠ Ġimplementation ( Deps . kotlin x . serialization . json ) ĊĠĠĠ Ġimplementation ( Deps . kotlin x . serialization . k aml ) ĊĠĠĠ Ġimplementation (" io . ktor : ktor - client - core : 1 . 6 . 8 ") ĊĠĠĠ Ġimplementation (" io . ktor : ktor - client - c io : 1 . 6 . 8 ") ĊĊĠĠĠ Ġimplementation (" org . json : json : 2 0 2 1 0 3 0 7 ") ĊĠĠĠ Ġimplementation (" net . fabric mc : fabric - installer : 0 . 9 . 0 ") ĊĠĠĠ Ġimplementation (" edu . stanford . ej al bert : Browser Launcher 2 : 1 . 3 ") Ċ } Ċ Ċ tasks . with Type < Kotlin Compile > Ġ{ ĊĠĠĠ Ġkotlin Options . jvm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġkotlin Options . free Compiler Args Ġ= ĠlistOf ("- opt - in = android x . compose . material 3 . Experimental Material 3 Api ") Ċ } Ċ Ċ val ĠappName Ġ= Ġ" Mine In A by ss _ Launcher -" Ġ+ Ġwhen Ġ{ ĊĠĠĠ ĠOs . is Family ( Os . FAMILY _ MAC ) Ġ-> Ġ" macOS " ĊĠĠĠ ĠOs . is Family ( Os . FAMILY _ WINDOWS ) Ġ-> Ġ" windows " ĊĠĠĠ Ġelse Ġ-> Ġ" linux " Ċ } Ċ Ċ compose . desktop Ġ{ ĊĠĠĠ Ġapplication Ġ{ ĊĠĠĠĠĠĠĠ Ġmain Class Ġ= Ġ" com . mine in aby ss . launch y . Main Kt " ĊĠĠĠĠĠĠĠ Ġnative Dist ributions Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOs . is Family ( Os . FAMILY _ MAC ) Ġ-> Ġtarget Formats ( Target Format . D mg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠOs . is Family ( Os . FAMILY _ WINDOWS ) Ġ-> Ġtarget Formats ( Target Format . Exe ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġtarget Formats ( Target Format . App Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodules (" java . instrument ", Ġ" jdk . unsupported ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠpackageName Ġ= ĠappName ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Version Ġ= Ġ"${ project . version }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicons Root Ġ= Ġproject . file (" packaging / icons ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠmacOS Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon File . set ( icons Root . resolve (" icon . ic ns ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindows Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupgrade Uuid Ġ= Ġ" b 6 2 7 d 7 8 b - 9 4 7 c - 4 f 5 c - 9 f 3 b - ae 0 2 bfa 9 7 d 0 8 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon File . set ( icons Root . resolve (" icon . ico ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinux Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġicon File . set ( icons Root . resolve (" icon . png ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ val Ġlinux App Dir Ġ= Ġproject . file (" packaging / app image / Mine Ġin ĠAby ss . App Dir ") Ċ val Ġapp Image Tool Ġ= Ġproject . file (" deps / app ima get ool . App Image ") Ċ val Ġcompose Package Dir Ġ= Ġ"$ build Dir / compose / binaries / main /${ ĊĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ ĠOs . is Family ( Os . FAMILY _ MAC ) Ġ-> Ġ" dmg " ĊĠĠĠĠĠĠĠ ĠOs . is Family ( Os . FAMILY _ WINDOWS ) Ġ-> Ġ" exe " ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ" app " ĊĠĠĠ Ġ} Ċ }" Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġval Ġdownload App Image Builder Ġby Ġregistering ( Download :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsrc (" https :// github . com / App Image / App Image Kit / releases / download / 1 3 / app ima get ool - x 8 6 _ 6 4 . App Image ") ĊĠĠĠĠĠĠĠ Ġdest ( app Image Tool ) ĊĠĠĠĠĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexec Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcommand Line (" chmod ", Ġ"+ x ", Ġ" deps / app ima get ool . App Image ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdelete Old App Dir Files Ġby Ġregistering ( Delete :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelete ("$ linux App Dir / usr / bin ", Ġ"$ linux App Dir / usr / lib ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcopy Build To Pack aging Ġby Ġregistering ( Copy :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On (" package ") ĊĠĠĠĠĠĠĠ Ġdepends On ( delete Old App Dir Files ) ĊĠĠĠĠĠĠĠ Ġfrom ("$ build Dir / compose / binaries / main / app /$ appName ") ĊĠĠĠĠĠĠĠ Ġinto ("$ linux App Dir / usr ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġexecute App Image Builder Ġby Ġregistering ( Exec :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On ( download App Image Builder ) ĊĠĠĠĠĠĠĠ Ġdepends On ( copy Build To Pack aging ) ĊĠĠĠĠĠĠĠ Ġenvironment (" ARCH ", Ġ" x 8 6 _ 6 4 ") ĊĠĠĠĠĠĠĠ Ġcommand Line ( app Image Tool , Ġlinux App Dir , Ġ" releases /$ appName -${ project . version }. App Image ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġexe Release Ġby Ġregistering ( Copy :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On (" package ") ĊĠĠĠĠĠĠĠ Ġfrom ( compose Package Dir ) ĊĠĠĠĠĠĠĠ Ġinclude (" *. exe ") ĊĠĠĠĠĠĠĠ Ġinto (" releases ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġd mg Release Ġby Ġregistering ( Copy :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On (" package ") ĊĠĠĠĠĠĠĠ Ġfrom ( compose Package Dir ) ĊĠĠĠĠĠĠĠ Ġinclude (" *. dmg ") ĊĠĠĠĠĠĠĠ Ġinto (" releases ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpackage For Release Ġby Ġregistering Ġ{ ĊĠĠĠĠĠĠĠ Ġmkdir ( project . file (" releases ")) ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOs . is Family ( Os . FAMILY _ WINDOWS ) Ġ-> Ġdepends On ( exe Release ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠOs . is Family ( Os . FAMILY _ MAC ) Ġ-> Ġdepends On ( dmg Release ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġdepends On ( execute App Image Builder ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /* Ċ tasks Ġ{ ĊĠĠĠ Ġshadow Jar Ġ{ ĊĠĠĠĠĠĠĠ Ġmerge Service Files () ĊĠĠĠĠĠĠĠ Ġminimize Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude ( dependency (" org . jetbrains . compose . desktop : desktop - jvm .* : .* ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude ( dependency (" io . ktor : ktor - client .* : .* ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude ( dependency ((" org . jetbrains . compose . material : material - icons .* : .* "))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude (" android x / compose / material / icons / filled /** ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude (" android x / compose / material / icons / outlined /** ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude (" android x / compose / material / icons / sharp /** ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude (" android x / compose / material / icons / tw ot one /** ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmanifest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes ( map Of (" Main - Class " Ġto Ġ" com . mine in aby ss . launch y . Main Kt ")) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On ( shadow Jar ) ĊĠĠĠ Ġ} Ċ } Ċ