package Ġnet . bnb 1 . k rad le Ċ Ċ import Ġnet . bnb 1 . k rad le . features . Feature Registry Ċ import Ġnet . bnb 1 . k rad le . features . Feature Set Registry Ċ import Ġnet . bnb 1 . k rad le . features . Properties Registry Ċ import Ġnet . bnb 1 . k rad le . presets . Preset Registry Ċ import Ġnet . bnb 1 . k rad le . support . Tracer Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . Task Ċ import Ġorg . gradle . api . model . ObjectFactory Ċ import Ġorg . gradle . api . provider . Property Ċ import Ġorg . gradle . api . tasks . Source Set Container Ċ import Ġorg . gradle . kotlin . dsl . Dependency Handler Scope Ċ import Ġorg . gradle . kotlin . dsl . extra Ċ Ċ const Ġval ĠK RAD LE _ TASK _ GROUP Ġ= Ġ" K rad le " Ċ const Ġval ĠHEL PER _ TASK _ GROUP Ġ= Ġ" K rad le Ġhelper " Ċ Ċ // ĠProject Ċ Ċ fun Ġ< T Ġ: ĠPlugin < out ĠProject >> ĠProject . apply ( type : ĠClass < T >) Ġ= Ġplugin Manager . apply ( type ) Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠTask > ĠProject . create Task ( ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġdescription : ĠString , ĊĠĠĠ Ġno inline Ġconfigure : ĠT . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġcreate Task ( KR AD LE _ TASK _ GROUP , Ġname , Ġdescription , ĠT :: class . java , Ġconfigure ) Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT Ġ: ĠTask > ĠProject . create Helper Task ( ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġdescription : ĠString , ĊĠĠĠ Ġno inline Ġconfigure : ĠT . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠT Ġ{ ĊĠĠĠ Ġreturn Ġcreate Task ( HELPER _ TASK _ GROUP , Ġname , Ġdescription , ĠT :: class . java , Ġconfigure ) Ċ } Ċ Ċ fun Ġ< T Ġ: ĠTask > ĠProject . create Task ( ĊĠĠĠ Ġgroup : ĠString , ĊĠĠĠ Ġname : ĠString , ĊĠĠĠ Ġdescription : ĠString , ĊĠĠĠ Ġtype : ĠClass < T >, ĊĠĠĠ Ġconfigure : ĠT . () Ġ-> ĠUnit Ġ= Ġ{} Ċ ): ĠT Ġ{ ĊĠĠĠ Ġval Ġtask Ġ= Ġtasks . create ( name , Ġtype ) Ġ{ Ġconfigure () Ġ} ĊĠĠĠ Ġtask . group Ġ= Ġgroup ĊĠĠĠ Ġtask . description Ġ= Ġdescription ĊĠĠĠ Ġreturn Ġtask Ċ } Ċ Ċ fun ĠProject . alias ( name : ĠString , Ġdescription : ĠString , Ġtarget Task : ĠString ): ĠTask Ġ{ ĊĠĠĠ Ġval Ġtask Ġ= Ġcreate Task < Task >( name , Ġ"$ description Ġ( alias Ġfor Ġ'$ target Task ') ") ĊĠĠĠ Ġtask . depends On ( target Task ) ĊĠĠĠ Ġreturn Ġtask Ċ } Ċ Ċ val ĠProject . extra Dir ĊĠĠĠ Ġget () Ġ= Ġfile ( this . project Dir . resolve (" src / main / extra ")) Ċ Ċ val ĠProject . source Sets ĊĠĠĠ Ġget () Ġ= Ġthis . extensions . getBy Type ( Source Set Container :: class . java ) Ċ Ċ val ĠProject . tracer ĊĠĠĠ Ġget () Ġ= Ġthis . extra . get (" tracer ") Ġas ĠTr acer Ċ Ċ val ĠProject . feature Registry ĊĠĠĠ Ġget () Ġ= Ġthis . extra . get (" feature Registry ") Ġas ĠFeature Registry Ċ Ċ val ĠProject . properties Registry ĊĠĠĠ Ġget () Ġ= Ġthis . extra . get (" properties Registry ") Ġas ĠProperties Registry Ċ Ċ val ĠProject . preset Registry ĊĠĠĠ Ġget () Ġ= Ġthis . extra . get (" preset Registry ") Ġas ĠP reset Registry Ċ Ċ val ĠProject . feature Set Registry ĊĠĠĠ Ġget () Ġ= Ġthis . extra . get (" feature Set Registry ") Ġas ĠFeature Set Registry Ċ Ċ // ĠDependency Handler Scope Ċ Ċ fun ĠDependency Handler Scope . implementation ( notation : ĠAny ) Ġ= Ġadd (" implementation ", Ġnotation ) Ċ fun ĠDependency Handler Scope . test Implementation ( notation : ĠAny ) Ġ= Ġadd (" test Implementation ", Ġnotation ) Ċ fun ĠDependency Handler Scope . test Runtime Only ( notation : ĠAny ) Ġ= Ġadd (" test Runtime Only ", Ġnotation ) Ċ Ċ // ĠObject Factory Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠObject Factory . property ( default : ĠT ): ĠProperty < T > Ġ{ ĊĠĠĠ Ġreturn Ġproperty ( T :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġconvention ( default ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ inline Ġfun Ġ< re ified ĠT > ĠObject Factory . empty (): ĠProperty < T > Ġ= Ġproperty ( T :: class . java ) Ċ