/* Ċ Ġ* Ġ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 ObjectFactory Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . Kotlin Compilation Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . Kotlin Target Ċ Ċ interface ĠKotlin Compilation Factory < T : ĠKotlin Compilation > Ġ: ĠNamed Domain ObjectFactory < T > Ġ{ ĊĠĠĠ Ġval Ġitem Class : ĠClass < T > Ċ } Ċ Ċ private Ġfun ĠKotlin Target . create Compilation Output ( name : ĠString ) Ġ= ĊĠĠĠ ĠKotlin Compilation Output ( project , Ġproject . build Dir . resolve (" processed Resources /$ name ")) Ċ Ċ class ĠKotlin Common Compilation Factory ( ĊĠĠĠ Ġval Ġtarget : ĠKotlin Only Target < Kotlin Common Compilation > Ċ ) Ġ: ĠKotlin Compilation Factory < Kotlin Common Compilation > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġitem Class : ĠClass < Kotlin Common Compilation > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠKotlin Common Compilation :: class . java ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( name : ĠString ): ĠKotlin Common Compilation Ġ= ĊĠĠĠĠĠĠĠ ĠKotlin Common Compilation ( target , Ġname , Ġtarget . create Compilation Output ( name )) Ċ } Ċ Ċ class ĠKotlin Jvm Compilation Factory ( ĊĠĠĠ Ġval Ġtarget : ĠKotlin Only Target < Kotlin Jvm Compilation > Ċ ) Ġ: ĠKotlin Compilation Factory < Kotlin Jvm Compilation > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġitem Class : ĠClass < Kotlin Jvm Compilation > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠKotlin Jvm Compilation :: class . java ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( name : ĠString ): ĠKotlin Jvm Compilation Ġ= ĊĠĠĠĠĠĠĠ ĠKotlin Jvm Compilation ( target , Ġname , Ġtarget . create Compilation Output ( name )) Ċ } Ċ Ċ class ĠKotlin With Java Compilation Factory ( ĊĠĠĠ Ġval Ġproject : ĠProject , ĊĠĠĠ Ġval Ġtarget : ĠKotlin With Java Target Ċ ) Ġ: ĠKotlin Compilation Factory < Kotlin With Java Compilation > Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġitem Class : ĠClass < Kotlin With Java Compilation > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠKotlin With Java Compilation :: class . java ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( name : ĠString ): ĠKotlin With Java Compilation Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresult Ġ= ĠKotlin With Java Compilation ( target , Ġname ) ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠKotlin Jvm Android Compilation Factory ( ĊĠĠĠ Ġval Ġproject : ĠProject , ĊĠĠĠ Ġval Ġtarget : ĠKotlin Android Target Ċ ) Ġ: ĠKotlin Compilation Factory < Kotlin Jvm Android Compilation > Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġitem Class : ĠClass < Kotlin Jvm Android Compilation > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠKotlin Jvm Android Compilation :: class . java ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( name : ĠString ): ĠKotlin Jvm Android Compilation Ġ= ĊĠĠĠĠĠĠĠ ĠKotlin Jvm Android Compilation ( target , Ġname , Ġtarget . create Compilation Output ( name )) Ċ } Ċ Ċ class ĠKotlin Js Compilation Factory ( ĊĠĠĠ Ġval Ġproject : ĠProject , ĊĠĠĠ Ġval Ġtarget : ĠKotlin Only Target < Kotlin Js Compilation > Ċ ) Ġ: ĠKotlin Compilation Factory < Kotlin Js Compilation > Ġ{ ĊĠĠĠ Ġoverride Ġval Ġitem Class : ĠClass < Kotlin Js Compilation > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠKotlin Js Compilation :: class . java ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( name : ĠString ): ĠKotlin Js Compilation Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Js Compilation ( target , Ġname , Ġtarget . create Compilation Output ( name )) Ċ } Ċ Ċ class ĠKotlin Native Compilation Factory ( ĊĠĠĠ Ġval Ġproject : ĠProject , ĊĠĠĠ Ġval Ġtarget : ĠKotlin Native Target Ċ ) Ġ: ĠKotlin Compilation Factory < Kotlin Native Compilation > Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġitem Class : ĠClass < Kotlin Native Compilation > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠKotlin Native Compilation :: class . java ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( name : ĠString ): ĠKotlin Native Compilation Ġ= ĊĠĠĠĠĠĠĠ ĠKotlin Native Compilation ( target , Ġname , Ġtarget . create Compilation Output ( name )). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( name Ġ== ĠKotlin Compilation . TEST _ COMPI L ATION _ NAME ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Kinds Ġ= Ġmutable ListOf ( Native Output Kind . EXECUT ABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Types Ġ= Ġmutable ListOf ( Native Build Type . DEBUG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Test Compilation Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild Types Ġ= Ġmutable ListOf ( Native Build Type . DEBUG , ĠNative Build Type . RELEASE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ }