/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 8 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ package Ġorg . jetbrains . kotlin . gradle . internal Ċ Ċ import Ġorg . gradle . api . file . File Collection Ċ import Ġorg . gradle . api . model . ObjectFactory Ċ import Ġorg . gradle . api . provider . Provider Ċ import Ġorg . gradle . api . tasks .* Ċ import Ġorg . gradle . api . tasks . incremental . Incremental Task Inputs Ċ import Ġorg . jetbrains . kotlin . cli . common . arguments . K 2 JVM Compiler Arguments Ċ import Ġorg . jetbrains . kotlin . compiler Runner . Gradle Compiler Environment Ċ import Ġorg . jetbrains . kotlin . compiler Runner . Gradle Compiler Runner Ċ import Ġorg . jetbrains . kotlin . compiler Runner . Output Items Collector Impl Ċ import Ġorg . jetbrains . kotlin . gradle . internal . k apt . incremental . K apt Incremental Changes Ċ import Ġorg . jetbrains . kotlin . gradle . internal . tasks . all Output Files Ċ import Ġorg . jetbrains . kotlin . gradle . logging . Gradle Kotlin Logger Ċ import Ġorg . jetbrains . kotlin . gradle . logging . Gradle Print ing Message Collector Ċ import Ġorg . jetbrains . kotlin . gradle . tasks .* Ċ import Ġorg . jetbrains . kotlin . gradle . utils .* Ċ import Ġorg . jetbrains . kotlin . gradle . utils . optional Provider Ċ import Ġorg . jetbrains . kotlin . gradle . utils . to Sorted Paths Array Ċ import Ġjava . io . File Ċ import Ġjavax . inject . Inject Ċ Ċ abstract Ġclass ĠK apt With Kotlin c Task Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġobject Factory : ĠObject Factory Ċ ) Ġ: ĠK apt Task ( object Factory ), ĊĠĠĠ ĠCompiler Argument Aware With Input < K 2 JVM Compiler Arguments >, ĊĠĠĠ ĠUses Kotlin Java Tool chain Ġ{ ĊĊĠĠĠ Ġ@ get : Internal ĊĠĠĠ Ġinternal Ġval Ġplugin Options Ġ= ĠCompiler Plugin Options () ĊĊĠĠĠ Ġ@ get : Classpath ĊĠĠĠ Ġ@ get : Input Files ĊĠĠĠ Ġval Ġplugin Classpath : ĠFile Collection Ġget () Ġ= Ġkotlin Compile Task . plugin Classpath ĊĊĠĠĠ Ġ@ get : Internal ĊĠĠĠ Ġval Ġtask Provider Ġ= ĠGradle Compile Task Provider ( this ) ĊĊĠĠĠ Ġfinal Ġoverride Ġval Ġkotlin Java Tool chain Provider : ĠProvider < Kotlin Java Tool chain Provider > Ġ= ĊĠĠĠĠĠĠĠ Ġobject Factory . property With New Instance () ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Compiler Args (): ĠK 2 JVM Compiler Arguments Ġ= ĠK 2 JVM Compiler Arguments () ĊĊĠĠĠ Ġprivate Ġval Ġcompile Kotlin Arguments Contributor Ġby Ġproject . provider Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin Compile Task . compiler Arguments Contributor ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsetup Compiler Args ( args : ĠK 2 JVM Compiler Arguments , Ġdefaults Only : ĠBoolean , Ġignore Classpath Resolution Errors : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcompile Kotlin Arguments Contributor . contribute Arguments ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs , Ġcompiler Arguments Configuration Flags ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefaults Only , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġignore Classpath Resolution Errors ĊĠĠĠĠĠĠĠ Ġ)) ĊĊĠĠĠĠĠĠĠ Ġargs . plugin Class paths Ġ= Ġplugin Classpath . to Sorted Paths Array () ĊĊĠĠĠĠĠĠĠ Ġval Ġplugin Options With K apt : ĠCompiler Plugin Options Ġ= Ġplugin Options . with Wrapped K apt Options ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith Ap Classpath Ġ= Ġk apt Classpath , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchanged Files Ġ= Ġchanged Files , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclasspath Changes Ġ= Ġclasspath Changes , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompiled Sources Dir Ġ= Ġcompiled Sources , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Increment ally Ġ= Ġprocess Increment ally ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġargs . plugin Options Ġ= Ġ( plugin Options With K apt . arguments Ġ+ Ġargs . plugin Options !! ). to Typed Array () ĊĊĠĠĠĠĠĠĠ Ġargs . verbose Ġ= Ġproject . has Property (" k apt . verbose ") Ġ&& Ġproject . property (" k apt . verbose "). toString (). to Boolean () Ġ== Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġwill Ġbe Ġpart Ġof Ġthe Ġsub plugin Ġoptions Ġthat Ġis Ġnot Ġpart Ġof Ġthe Ġinput Ġsnapshot ting , Ġso Ġjust Ġinitialize Ġit . ĠActual Ġvalue Ġis Ġset ĊĠĠĠĠ Ġ* Ġin Ġthe Ġtask Ġaction . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġchanged Files : ĠList < File > Ġ= Ġempty List () ĊĠĠĠ Ġprivate Ġvar Ġclasspath Changes : ĠList < String > Ġ= Ġempty List () ĊĠĠĠ Ġprivate Ġvar Ġprocess Increment ally Ġ= Ġfalse ĊĊĠĠĠ Ġprivate Ġval Ġjava Package Prefix Ġby Ġproject . optional Provider Ġ{ Ġkotlin Compile Task . java Package Prefix Ġ} ĊĠĠĠ Ġprivate Ġval Ġreporting Settings Ġby Ġproject . provider Ġ{ Ġkotlin Compile Task . reporting Settings Ġ} ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġcompile ( inputs : ĠIncrement al Task Inputs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . debug (" Running Ġk apt Ġannotation Ġprocessing Ġusing Ġthe ĠKotlin Ġcompiler ") ĊĠĠĠĠĠĠĠ Ġcheck Annotation Processor Classpath () ĊĊĠĠĠĠĠĠĠ Ġval Ġincremental Changes Ġ= Ġget Incremental Changes ( inputs ) ĊĠĠĠĠĠĠĠ Ġif Ġ( incremental Changes Ġis ĠK apt Incremental Changes . Known ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġchanged Files Ġ= Ġincremental Changes . changed Sources . toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclasspath Changes Ġ= Ġincremental Changes . changed Classpath Jvm Names . toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Increment ally Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġprepare Compiler Arguments () ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Collector Ġ= ĠGradle Print ing Message Collector ( Gradle Kotlin Logger ( logger ), Ġargs . all Warnings As Errors ) ĊĠĠĠĠĠĠĠ Ġval Ġoutput Item Collector Ġ= ĠOutput Items Collector Impl () ĊĠĠĠĠĠĠĠ Ġval Ġenvironment Ġ= ĠGradle Compiler Environment ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompiler Classpath , Ġmessage Collector , Ġoutput Item Collector , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreporting Settings Ġ= Ġreporting Settings , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Files Ġ= Ġall Output Files () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcompiler Runner Ġ= ĠGradle Compiler Runner ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask Provider , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Java Tool chain Provider . get (). java Executable . get (). as File , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Java Tool chain Provider . get (). jdk Tools Jar . or Null ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġcompiler Runner . run Jvm Compiler Async ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsources To Compile Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcommon Sources Ġ= Ġempty List (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Source Roots Ġ= Ġsource . files , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava Package Prefix Ġ= Ġjava Package Prefix , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs Ġ= Ġargs , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġenvironment Ġ= Ġenvironment ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ