/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 6 ĠJetBrains Ġs . r . o . Ċ Ġ* Ċ Ġ* Ġ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 Ġorg . jetbrains . kotlin . gradle . plugin Ċ Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . jetbrains . kotlin . gradle . dsl . Cor outines Ċ import Ġorg . jetbrains . kotlin . gradle . targets . native . Disabled Native Targets Reporter Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Abstract Kotlin Compile Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin 2 Js Compile Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ import Ġorg . jetbrains . kotlin . gradle . utils . Single Warning Per Build Ċ import Ġjava . io . File Ċ import Ġjava . util .* Ċ Ċ internal Ġfun ĠProperties Provider . map Kotlin Task Properties ( task : ĠAbstract Kotlin Compile <* >) Ġ{ ĊĠĠĠ Ġcor outines ?. let Ġ{ Ġtask . coroutines From Gradle Properties Ġ= Ġit Ġ} ĊĠĠĠ Ġuse Fallback Compiler Search ?. let Ġ{ Ġtask . use Fallback Compiler Search Ġ= Ġit Ġ} ĊĊĠĠĠ Ġif Ġ( task Ġis ĠKotlin Compile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġincremental Jvm ?. let Ġ{ Ġtask . incremental Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠ Ġuse Prec ise Java Tracking ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask . use Prec ise Java Tracking Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( task Ġis ĠKotlin 2 Js Compile ) Ġ{ ĊĠĠĠĠĠĠĠ Ġincremental Js ?. let Ġ{ Ġtask . incremental Ġ= Ġit Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġclass ĠProperties Provider Ġprivate Ġconstructor ( private Ġval Ġproject : ĠProject ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlocal Properties : ĠProperties Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠProperties (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocal Properties File Ġ= Ġproject . root Project . file (" local . properties ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( local Properties File . isFile ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Properties File . inputStream (). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġcor outines : ĠCor outines ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġproperty (" kotlin . coroutines ") ?. let Ġ{ ĠCor outines . by Compiler Argument ( it ) Ġ} ĊĊĠĠĠ Ġval Ġbuild Report Enabled : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . build . report . enable ") Ġ?: Ġfalse ĊĊĠĠĠ Ġval Ġbuild Report Verbose : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . build . report . verbose ") Ġ?: Ġfalse ĊĊĠĠĠ Ġval Ġbuild Report Dir : ĠFile ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġproperty (" kotlin . build . report . dir ") ?. let Ġ{ ĠFile ( it ) Ġ} ĊĊĠĠĠ Ġval Ġincremental Jvm : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . incremental ") ĊĊĠĠĠ Ġval Ġincremental Js : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . incremental . js ") ĊĊĠĠĠ Ġval Ġincremental Multi platform : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . incremental . multi platform ") ĊĊĠĠĠ Ġval Ġuse Prec ise Java Tracking : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . incremental . use Prec ise Java Tracking ") ĊĊĠĠĠ Ġval Ġuse Fallback Compiler Search : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . use Fallback Compiler Search ") ĊĊĠĠĠ Ġval Ġkeep M pp Dependencies Int act In P oms : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . mpp . keep M pp Dependencies Int act In P oms ") ĊĊĠĠĠ Ġval Ġignore Plugin Loaded In Multiple Projects : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . plugin Loaded In Multiple Projects . ignore ") ĊĊĠĠĠ Ġval Ġset Jvm Target From Android Compile Options : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . set Jvm Target From Android Compile Options ") ĊĊĠĠĠ Ġval Ġenable Gran ular Source Sets Metadata : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . mpp . enable Gran ular Source Sets Metadata ") ĊĊĠĠĠ Ġval Ġignore Disabled Native Targets : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property ( Disabled Native Targets Reporter . DISABLE _ WARNING _ PROPERTY _ NAME ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEnables Ġparallel Ġtasks Ġexecution Ġwithin Ġa Ġproject Ġwith ĠWork ers ĠAPI . ĊĠĠĠĠ Ġ* ĠDoes Ġnot Ġenable Ġusing Ġactual Ġworker Ġproc cesses ĊĠĠĠĠ Ġ* Ġ( Kotlin ĠDa emon Ġcan Ġbe Ġshared Ġwhich Ġuses Ġless Ġmemory ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġparallel Tasks In Project : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . parallel . tasks . in . project ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEnables Ġindividual Ġtest Ġtask Ġreporting Ġfor Ġaggregated Ġtest Ġtasks . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠBy Ġdefault Ġindividual Ġtest Ġtasks Ġwill Ġnot Ġfail Ġbuild Ġif Ġthis Ġtask Ġwill Ġbe Ġexecuted , ĊĠĠĠĠ Ġ* Ġalso Ġindividual Ġhtml Ġand Ġxml Ġreports Ġwill Ġreplaced Ġby Ġone Ġcon solid ated Ġhtml Ġreport . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġindividual Task Reports : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . tests . individual Task Reports ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFor ces Ġusing Ġa Ġ" restricted " Ġdistribution Ġof ĠKotlin / Native . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠA Ġrestricted Ġdistribution Ġis Ġavailable Ġfor ĠMacOS Ġonly Ġand Ġdoesn 't Ġcontain Ġplatform Ġlibraries . ĊĠĠĠĠ Ġ* ĠIf Ġa Ġhost Ġplatform Ġis Ġnot ĠMacOS , Ġthe Ġflag Ġis Ġignored . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġnative Restricted Distribution : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . native . restricted Distribution ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAllows Ġa Ġuser Ġto Ġprovide Ġa Ġlocal ĠKotlin / Native Ġdistribution Ġinstead Ġof Ġa Ġdownloaded Ġone . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġnative Home : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġproperty With Deprecated Variant ( K OT LIN _ NATIVE _ HOME , Ġ" org . jetbrains . kotlin . native . home ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAllows Ġa Ġuser Ġto Ġoverride ĠKotlin / Native Ġversion . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġnative Version : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġproperty With Deprecated Variant (" kotlin . native . version ", Ġ" org . jetbrains . kotlin . native . version ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAllows Ġa Ġuser Ġto Ġspecify Ġadditional Ġarguments Ġof Ġa ĠJVM Ġexecuting Ġa ĠK / N Ġcompiler . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġnative Jvm Args : ĠString ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġproperty With Deprecated Variant (" kotlin . native . jvm Args ", Ġ" org . jetbrains . kotlin . native . jvm Args ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGenerate Ġkotlin / js Ġexternal Ġdeclarations Ġfrom Ġall Ġ. d . ts Ġfiles Ġfound Ġin Ġnpm Ġmodules ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġjs Generate External s : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . js . experimental . generate Kotlin External s ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAutomatic aly Ġdiscover Ġexternal Ġ. d . ts Ġdeclarations ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġjs Discover Types : ĠBoolean ? ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġboolean Property (" kotlin . js . experimental . discover Types ") ĊĊĠĠĠ Ġprivate Ġfun Ġproperty With Deprecated Variant ( prop Name : ĠString , Ġdeprecated Prop Name : ĠString ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdeprecated Property Ġ= Ġproperty ( deprecated Prop Name ) ĊĠĠĠĠĠĠĠ Ġif Ġ( deprecated Property Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSingle Warning Per Build . show ( project , Ġ" Project Ġproperty Ġ'$ deprecated Prop Name ' Ġis Ġdeprecated . ĠPlease Ġuse Ġ'$ prop Name ' Ġinstead .") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġproperty ( prop Name ) Ġ?: Ġdeprecated Property ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġboolean Property ( prop Name : ĠString ): ĠBoolean ? Ġ= ĊĠĠĠĠĠĠĠ Ġproperty ( prop Name )?. to Boolean () ĊĊĠĠĠ Ġprivate Ġfun Ġproperty ( prop Name : ĠString ): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ( project . has Property ( prop Name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . property ( prop Name ) Ġas ? ĠString ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Properties . getProperty ( prop Name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠK OT LIN _ NATIVE _ HOME Ġ= Ġ" kotlin . native . home " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠC ACHED _ PROVIDER _ EXT _ NAME Ġ= Ġ" kotlin . properties . provider " ĊĊĠĠĠĠĠĠĠ Ġoperator Ġfun Ġinvoke ( project : ĠProject ): ĠProperties Provider Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( project . extensions . extra Properties ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! has ( C ACHED _ PROVIDER _ EXT _ NAME )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( C ACHED _ PROVIDER _ EXT _ NAME , ĠProperties Provider ( project )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġget ( C ACHED _ PROVIDER _ EXT _ NAME ) Ġas ? ĠProperties Provider ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠProperties Provider ( project ) Ġ// ĠF allback Ġif Ġmultiple Ġclass Ġload ers Ġare Ġinvolved ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ