@ file : Suppress (" unused ") Ġ// Ġusage s Ġin Ġbuild Ġscripts Ġare Ġnot Ġtracked Ġproperly Ċ Ċ import Ġorg . gradle . api .* Ċ import Ġorg . gradle . api . plugins . Java Plugin Convention Ċ import Ġorg . gradle . api . tasks .* Ċ import Ġorg . gradle . kotlin . dsl .* Ċ // import Ġorg . jetbrains . kotlin . gradle . plugin . Kotlin Source Set Ċ Ċ inline Ġfun ĠProject . source Sets ( cross inline Ġbody : ĠSource Sets Builder . () Ġ-> ĠUnit ) Ġ= ĊĠĠĠĠĠĠĠ ĠSource Sets Builder ( this ). body () Ċ Ċ class ĠSource Sets Builder ( val Ġproject : ĠProject ) Ġ{ ĊĊĠĠĠ Ġinline Ġoperator Ġfun ĠString . invoke ( cross inline Ġbody : ĠSource Set . () Ġ-> ĠUnit ): ĠSource Set Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsource SetName Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġreturn Ġproject . java Plugin Convention (). source Sets . maybe Create ( source SetName ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnone () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbody () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠSource Set . none () Ġ{ ĊĠĠĠ Ġjava . set Src Dirs ( emptyList < String >()) ĊĠĠĠ Ġresources . set Src Dirs ( emptyList < String >()) Ċ } Ċ Ċ fun ĠSource Set . project Default () Ġ{ ĊĠĠĠ Ġwhen Ġ( name ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ" main " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava . src Dirs (" src ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . src Dir (" resources "). apply Ġ{ Ġinclude (" ** ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . src Dir (" src "). apply Ġ{ Ġinclude (" META - INF /** ", Ġ"** /*. properties ") Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" test " Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava . src Dirs (" test ", Ġ" tests ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠTODO : Ġadding ĠKotlin Source Set Ġdep Ġto Ġthe Ġplugin Ġbreaks Ġthe Ġbuild Ġunexpected ly , Ġresolve Ġand Ġuncomment Ċ // val ĠSource Set . kotlin : ĠSource Directory Set Ċ // ĠĠĠ Ġget () Ġ= Ċ // ĠĠĠĠĠĠĠ Ġ( this Ġas ĠHas Convention ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. convention Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get Plugin ( Kotlin Source Set :: class . java ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. kotlin Ċ // Ċ // Ċ // fun ĠSource Set . kotlin ( action : ĠSource Directory Set . () Ġ-> ĠUnit ) Ġ= Ċ // ĠĠĠĠĠĠĠ Ġkotlin . action () Ċ Ċ fun ĠProject . getSource Sets From ( project Path : ĠString ): ĠSource Set Container Ġ{ ĊĠĠĠ Ġevaluation Dep ends On ( project Path ) ĊĠĠĠ Ġreturn Ġproject ( project Path ). java Plugin Convention (). source Sets Ċ } ĊĊĊĊ