// ĠCopyright Ġ 2 0 0 0 - 2 0 2 1 ĠJetBrains Ġs . r . o . Ġand Ġcontributors . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe ĠLICENSE Ġfile . Ċ Ċ package Ġorg . jetbrains . kotlin . j ps . build Ċ Ċ import Ġorg . jetbrains . j ps . builders . storage . Build Data Paths Ċ import Ġorg . jetbrains . j ps . incremental . Module Build Target Ċ import Ġorg . jetbrains . j ps . incremental . storage . Build DataManager Ċ import Ġorg . jetbrains . kotlin . incremental . K OT LIN _ CACHE _ DIRECTORY _ NAME Ċ import Ġorg . jetbrains . kotlin . j ps . targets . Kotlin Module Build Target Ċ import Ġjava . io . File Ċ Ċ private Ġval ĠHAS _ K OT LIN _ MARKER _ FILE _ NAME Ġ= Ġ" has - kotlin - marker . txt " Ċ private Ġval ĠRE BUILD _ AFTER _ CACHE _ VERSION _ CHANGE _ MARKER Ġ= Ġ" rebuild - after - cache - version - change - marker . txt " Ċ Ċ abstract Ġclass ĠMarker File ( private Ġval ĠfileName : ĠString , Ġprivate Ġval Ġpaths : ĠBuild Data Paths ) Ġ{ ĊĠĠĠ Ġoperator Ġfun Ġget ( target : ĠKotlin Module Build Target < *> ): ĠBoolean ? Ġ= ĊĠĠĠĠĠĠĠ Ġget ( target . j ps Module Build Target ) ĊĊĠĠĠ Ġoperator Ġfun Ġget ( target : ĠModule Build Target ): ĠBoolean ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġtarget . marker File ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! file . exists ()) Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfile . read Text (). to Boolean () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġset ( target : ĠKotlin Module Build Target <* >, Ġvalue : ĠBoolean ) Ġ= ĊĠĠĠĠĠĠĠ Ġset ( target . j ps Module Build Target , Ġvalue ) ĊĊĠĠĠ Ġoperator Ġfun Ġset ( target : ĠModule Build Target , Ġvalue : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= Ġtarget . marker File ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! file . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . parent File . mkdir s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile . createNew File () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfile . write Text ( value . toString ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclean ( target : ĠKotlin Module Build Target <* >) Ġ= ĊĠĠĠĠĠĠĠ Ġclean ( target . j ps Module Build Target ) ĊĊĠĠĠ Ġfun Ġclean ( target : ĠModule Build Target ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget . marker File . delete () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠModule Build Target . marker File : ĠFile ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdirectory Ġ= ĠFile ( paths . getTarget Data Root ( this ), ĠK OT LIN _ CACHE _ DIRECTORY _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFile ( directory , ĠfileName ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ class ĠHas Kotlin Marker ( data Manager : ĠBuild DataManager ) Ġ: ĠMarker File ( HAS _ K OT LIN _ MARKER _ FILE _ NAME , Ġdata Manager . data Paths ) Ċ class ĠRe build After Cache Version Change Marker ( data Manager : ĠBuild DataManager ) Ġ: ĊĠĠĠ ĠMarker File ( RE BUILD _ AFTER _ CACHE _ VERSION _ CHANGE _ MARKER , Ġdata Manager . data Paths ) Ċ