/* Ċ Ġ* ĠCopyright Ġ 2 0 1 8 ĠThe ĠB azel ĠAuthors . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġio . bazel . kotlin . builder . mode . jvm . actions Ċ Ċ import Ġcom . google . inject . Implemented By Ċ import Ġcom . google . inject . Inject Ċ import Ġio . bazel . kotlin . builder . Compilation Status Exception Ċ import Ġio . bazel . kotlin . builder . Kotlin Tool chain Ċ import Ġio . bazel . kotlin . builder . utils . addAll Ċ import Ġio . bazel . kotlin . model . Kotlin Model . Builder Command Ċ Ċ @ Implemented By ( Default Java Compiler :: class ) Ċ interface ĠJava Compiler Ġ{ ĊĠĠĠ Ġfun Ġcompile ( command : ĠBuilder Command ) Ċ } Ċ Ċ private Ġclass ĠDefault Java Compiler Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġval Ġjav ac Invoker : ĠKotlin Tool chain . J av ac Invoker Ċ ) Ġ: ĠJava Compiler Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcompile ( command : ĠBuilder Command ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi Ġ= Ġcommand . inputs ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġcommand . directories ĊĠĠĠĠĠĠĠ Ġif Ġ( i . java Sources List . isNotEmpty () Ġ|| Ġi . generated Java Sources List . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= Ġmutable ListOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- cp ", Ġ"${ d . classes }/ :${ d . temp }/ :${ i . joined Classpath }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- d ", Ġd . classes ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . addAll ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠKotlin Ġtakes Ġcare Ġof Ġannotation Ġprocessing . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- proc : none ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDisable Ġoption Ġlint ing , Ġit Ġwill Ġcompl ain Ġabout Ġthe Ġsource . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- X lint :- options ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- source ", Ġcommand . info . toolchain Info . jvm . jvm Target , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- target ", Ġcommand . info . toolchain Info . jvm . jvm Target ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . addAll ( i . java Sources List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . addAll ( i . generated Java Sources List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . to Typed Array () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjav ac Invoker . compile ( args ). take If Ġ{ Ġit Ġ!= Ġ 0 Ġ} ?. also Ġ{ Ġthrow ĠCompilation Status Exception (" javac Ġfailed ", it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }