/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 1 8 ĠJetBrains Ġs . r . o . Ġ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 . plugin . mpp Ċ Ċ import Ġorg . gradle . api . Named Domain Object Container Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . artifacts . Dependency Ċ import Ġorg . gradle . api . attributes . Attribute Ċ import Ġorg . gradle . api . attributes . Attribute Container Ċ import Ġorg . gradle . api . internal . component . Usage Context Ċ import Ġorg . gradle . api . plugins . Java Plugin Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . Kotlin Compilation Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . Kotlin Compilation To Runnable Files Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . Kotlin Platform Type Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . Kotlin Target Ċ import Ġorg . jetbrains . kotlin . gradle . utils . lower Camel Case Name Ċ import Ġorg . jetbrains . kotlin . kon an . target . Kon an Target Ċ Ċ abstract Ġclass ĠAbstract Kotlin Target Ġ( ĊĠĠĠ Ġoverride Ġval Ġproject : ĠProject Ċ ) Ġ: ĠKotlin Target Ġ{ ĊĠĠĠ Ġprivate Ġval Ġattribute Container Ġ= ĠH ierarchy Attribute Container ( parent Ġ= Ġnull ) ĊĊĠĠĠ Ġoverride Ġfun Ġget Attributes (): ĠAttribute Container Ġ= Ġattribute Container ĊĊĠĠĠ Ġoverride Ġval Ġdefault Configuration Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdis amb igu ate Name (" default ") ĊĊĠĠĠ Ġoverride Ġval Ġapi Elements Configuration Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdis amb igu ate Name (" api Elements ") ĊĊĠĠĠ Ġoverride Ġval Ġruntime Elements Configuration Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdis amb igu ate Name (" runtime Elements ") ĊĊĠĠĠ Ġoverride Ġval Ġartifacts Task Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdis amb igu ate Name (" jar ") ĊĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ= Ġ" target Ġ$ name Ġ($ platform Type )" ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Usage Contexts (): ĠSet < Usage Context > Ġ= ĊĠĠĠĠĠĠĠ Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Platform Usage Context ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject , Ġthis , ĠKotlin Software Component . kotlin Api Usage ( project ), Ġapi Elements Configuration Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ġ+ Ġif Ġ( comp il ations . get ByName ( Kotlin Compilation . MAIN _ COMPI L ATION _ NAME ) Ġis ĠKotlin Compilation To Runnable Files ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Platform Usage Context ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Software Component . kotlin Runtime Usage ( project ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġruntime Elements Configuration Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġelse Ġempty List () Ċ } Ċ Ċ internal Ġfun ĠKotlin Target . dis amb igu ate Name ( simple Name : ĠString ) Ġ= ĊĠĠĠ Ġlower Camel Case Name ( target Name , Ġsimple Name ) Ċ Ċ open Ġclass ĠKotlin Android Target ( ĊĠĠĠ Ġoverride Ġval Ġtarget Name : ĠString , ĊĠĠĠ Ġproject : ĠProject Ċ ) Ġ: ĠAbstract Kotlin Target ( project ) Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġdis amb ig uation Classifier : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġinternal Ġset ĊĊĠĠĠ Ġoverride Ġval Ġplatform Type : ĠKotlin Platform Type ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠKotlin Platform Type . android Jvm ĊĊĠĠĠ Ġprivate Ġval Ġcompilation Factory Ġ= ĠKotlin Jvm Android Compilation Factory ( project , Ġthis ) ĊĊĠĠĠ Ġoverride Ġval Ġcompil ations : ĠNamed Domain Object Container < out ĠKotlin Jvm Android Compilation > Ġ= ĊĠĠĠĠĠĠĠ Ġproject . container ( compilation Factory . item Class , Ġcompilation Factory ) ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Usage Contexts (): ĠSet < Usage Context > Ġ{ ĊĠĠĠĠĠĠĠ Ġ// TODO Ġsetup ĠAndroid Ġlibraries Ġpublishing . ĠThis Ġwill Ġlikely Ġrequire Ġnew ĠAPI Ġin Ġthe ĠAndroid ĠGradle Ġplugin ĊĠĠĠĠĠĠĠ Ġreturn Ġempty Set () ĊĠĠĠ Ġ} Ċ } Ċ Ċ open Ġclass ĠKotlin With Java Target ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġoverride Ġval Ġplatform Type : ĠKotlin Platform Type , ĊĠĠĠ Ġoverride Ġval Ġtarget Name : ĠString Ċ ) Ġ: ĠAbstract Kotlin Target ( project ) Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġdis amb ig uation Classifier : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġinternal Ġset ĊĊĠĠĠ Ġoverride Ġval Ġdefault Configuration Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠDependency . DEFAULT _ CONFIGURATION ĊĊĠĠĠ Ġoverride Ġval Ġapi Elements Configuration Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠJava Plugin . API _ ELEMENT S _ CONFIGURATION _ NAME ĊĊĠĠĠ Ġoverride Ġval Ġruntime Elements Configuration Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠJava Plugin . RUNTIME _ ELEMENT S _ CONFIGURATION _ NAME ĊĊĠĠĠ Ġoverride Ġval Ġartifacts Task Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠJava Plugin . JAR _ TASK _ NAME ĊĊĠĠĠ Ġoverride Ġval Ġcompil ations : ĠNamed Domain Object Container < Kotlin With Java Compilation > Ġ= ĊĠĠĠĠĠĠĠ Ġproject . container ( Kotlin With Java Compilation :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin With Java Compilation Factory ( project , Ġthis ) ĊĠĠĠĠĠĠĠ Ġ) Ċ } Ċ Ċ open Ġclass ĠKotlin Only Target < T Ġ: ĠKotlin Compilation >( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġoverride Ġval Ġplatform Type : ĠKotlin Platform Type Ċ ) Ġ: ĠAbstract Kotlin Target ( project ) Ġ{ ĊĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġcompil ations : ĠNamed Domain Object Container < T > ĊĠĠĠĠĠĠĠ Ġinternal Ġset ĊĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġtarget Name : ĠString ĊĠĠĠĠĠĠĠ Ġinternal Ġset ĊĊĠĠĠ Ġoverride Ġvar Ġdis amb ig uation Classifier : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġinternal Ġset Ċ } Ċ Ċ class ĠKotlin Native Target ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġval Ġkon an Target : ĠKon an Target Ċ ) Ġ: ĠKotlin Only Target < Kotlin Native Compilation >( project , ĠKotlin Platform Type . native ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġattributes . attribute ( kon an Target Attribute , Ġkon an Target . name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO : ĠShould Ġbinary Ġfiles Ġbe Ġoutput Ġof Ġa Ġtarget Ġor Ġa Ġcompilation ? ĊĠĠĠ Ġoverride Ġval Ġartifacts Task Name : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġdis amb igu ate Name (" link ") ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkon an Target Attribute Ġ= ĠAttribute . of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . jetbrains . kotlin . native . target ", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠString :: class . java ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } ĊĊ