/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ġand Ġrespective Ġauthors Ġand Ġdevelopers . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . compose . desktop . tasks Ċ Ċ import Ġorg . gradle . api . Default Task Ċ import Ġorg . gradle . api . file . Directory Ċ import Ġorg . gradle . api . file . FileSystem Location Ċ import Ġorg . gradle . api . internal . file . File Operations Ċ import Ġorg . gradle . api . model . ObjectFactory Ċ import Ġorg . gradle . api . provider . Property Ċ import Ġorg . gradle . api . provider . Provider Ċ import Ġorg . gradle . api . provider . Provider Factory Ċ import Ġorg . gradle . api . tasks . Internal Ċ import Ġorg . gradle . api . tasks . Local State Ċ import Ġorg . gradle . process . Exec Operations Ċ import Ġorg . jetbrains . compose . desktop . application . internal . Compose Properties Ċ import Ġorg . jetbrains . compose . desktop . application . internal . External Tool Runner Ċ import Ġorg . jetbrains . compose . desktop . application . internal . notNull Property Ċ import Ġjavax . inject . Inject Ċ Ċ abstract Ġclass ĠAbstract Compose Desktop Task Ġ: ĠDefault Task () Ġ{ ĊĠĠĠ Ġ@ get : Inject ĊĠĠĠ Ġprotected Ġabstract Ġval Ġobjects : ĠObject Factory ĊĊĠĠĠ Ġ@ get : Inject ĊĠĠĠ Ġprotected Ġabstract Ġval Ġproviders : ĠProvider Factory ĊĊĠĠĠ Ġ@ get : Inject ĊĠĠĠ Ġprotected Ġabstract Ġval Ġexec Operations : ĠExec Operations ĊĊĠĠĠ Ġ@ get : Inject ĊĠĠĠ Ġprotected Ġabstract Ġval Ġfile Operations : ĠFile Operations ĊĊĠĠĠ Ġ@ get : Local State ĊĠĠĠ Ġprotected Ġval Ġlogs Dir : ĠProvider < Directory > Ġ= Ġproject . layout . build Directory . dir (" compose / logs /$ name ") ĊĊĠĠĠ Ġ@ get : Internal ĊĠĠĠ Ġval Ġverbose : ĠProperty < Boolean > Ġ= Ġobjects . notNull Property < Boolean >(). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġset ( providers . provider Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . isDebugEnabled Ġ|| ĠCompose Properties . is Verbose ( providers ). get () ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ get : Internal ĊĠĠĠ Ġinternal Ġval Ġrun External Tool : ĠExternal Tool Runner ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠExternal Tool Runner ( verbose , Ġlogs Dir , Ġexec Operations ) ĊĊĠĠĠ Ġprotected Ġfun Ġclean Dirs ( var arg Ġdirs : ĠProvider < out ĠFileSystem Location >) Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( dir Ġin Ġdirs ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Operations . delete ( dir ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile Operations . mkdir ( dir ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }