package Ġorg . jetbrains . kotlin . tools . project Wizard . module Configur ators Ċ Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . Ident ific ator Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . Settings Owner Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . core .* Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . core . cached Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . core . entity .* Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . ir . build system . Build System IR Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . ir . build system . Kotlin Build System Plugin IR Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . ir . build system . Std lib Type Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . ph ases . Generation Phase Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . plugins . kotlin . Module Configuration Data Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . plugins . kotlin . Module Type Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . plugins . kotlin . corre sponding Std lib Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . settings . Display able Setting Item Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . settings . build system .* Ċ import Ġorg . jetbrains . kotlin . tools . project Wizard . settings . version . Version Ċ import Ġjava . nio . file . Path Ċ import Ġkotlin . properties . ReadOnly Property ĊĊ Ċ sealed Ġclass ĠModule Cond if ur ator Settings Environment Ġ{ ĊĠĠĠ Ġabstract Ġval Ġ< V Ġ: ĠAny , ĠT Ġ: ĠSetting Type < V >> ĠModule Configurator Setting < V , ĠT >. reference : ĠModule Configurator Setting Reference < V , ĠT > Ċ } Ċ Ċ class ĠModule Based Configurator Settings Environment ( ĊĠĠĠ Ġprivate Ġval Ġconfigur ator : ĠModule Configurator , ĊĠĠĠ Ġprivate Ġval Ġmodule : ĠModule Ċ ) Ġ: ĠModule Cond if ur ator Settings Environment () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġ< V Ġ: ĠAny , ĠT Ġ: ĠSetting Type < V >> ĠModule Configurator Setting < V , ĠT >. reference : ĠModule Configurator Setting Reference < V , ĠT > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠModule Based Configurator Setting Reference ( configur ator , Ġmodule , Ġthis ) Ċ } Ċ Ċ class ĠId Based Configurator Settings Environment ( ĊĠĠĠ Ġprivate Ġval Ġconfigur ator : ĠModule Configurator , ĊĠĠĠ Ġprivate Ġval Ġmodule Id : ĠIdent ific ator Ċ ) Ġ: ĠModule Cond if ur ator Settings Environment () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġ< V Ġ: ĠAny , ĠT Ġ: ĠSetting Type < V >> ĠModule Configurator Setting < V , ĠT >. reference : ĠModule Configurator Setting Reference < V , ĠT > ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠId Based Configurator Setting Reference ( configur ator , Ġmodule Id , Ġthis ) Ċ } Ċ Ċ fun Ġ< T > Ġwith Settings Of ( ĊĠĠĠ Ġmodule Id : ĠIdent ific ator , ĊĠĠĠ Ġconfigur ator : ĠModule Configurator , ĊĠĠĠ Ġfunction : ĠModule Cond if ur ator Settings Environment . () Ġ-> ĠT Ċ ): ĠT Ġ= Ġfunction ( Id Based Configurator Settings Environment ( configur ator , Ġmodule Id )) Ċ Ċ fun Ġ< T > Ġwith Settings Of ( ĊĠĠĠ Ġmodule : ĠModule , ĊĠĠĠ Ġconfigur ator : ĠModule Configurator Ġ= Ġmodule . configur ator , ĊĠĠĠ Ġfunction : ĠModule Cond if ur ator Settings Environment . () Ġ-> ĠT Ċ ): ĠT Ġ= Ġfunction ( Module Based Configurator Settings Environment ( configur ator , Ġmodule )) ĊĊ Ċ abstract Ġclass ĠModule Configurator With Settings Ġ: ĠModule Configurator , ĠSettings Owner Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġ< V Ġ: ĠAny , ĠT Ġ: ĠSetting Type < V >> Ġsetting Delegate ( ĊĠĠĠĠĠĠĠ Ġcreate : Ġ( path : ĠString ) Ġ-> ĠSetting Builder < V , ĠT > ĊĠĠĠ Ġ): ĠReadOnly Property < Any ?, ĠModule Configurator Setting < V , ĠT >> Ġ= Ġcached Ġ{ Ġname Ġ-> ĊĠĠĠĠĠĠĠ ĠModule Configurator Setting ( create ( name ). build Internal ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġabstract Ġval Ġsettings : ĠList < Module Configurator Setting < *, Ġ* >> ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġ< V Ġ: ĠDisplay able Setting Item > Ġdrop Down Setting ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġneeded At Phase : ĠGeneration Phase , ĊĠĠĠĠĠĠĠ Ġparser : ĠParser < V >, ĊĠĠĠĠĠĠĠ Ġinit : ĠDrop Down Setting Type . Builder < V >. () Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠReadOnly Property < Any , ĠModule Configurator Setting < V , ĠDrop Down Setting Type < V >>> Ġ= ĊĠĠĠĠĠĠĠ Ġsuper . dropDown Setting ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġneeded At Phase , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparser , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠReadOnly Property < Any , ĠModule Configurator Setting < V , ĠDrop Down Setting Type < V >>> ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġstring Setting ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġneeded At Phase : ĠGeneration Phase , ĊĠĠĠĠĠĠĠ Ġinit : ĠString Setting Type . Builder . () Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠReadOnly Property < Any , ĠModule Configurator Setting < String , ĠString Setting Type >> Ġ= ĊĠĠĠĠĠĠĠ Ġsuper . string Setting ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġneeded At Phase , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠReadOnly Property < Any , ĠModule Configurator Setting < String , ĠString Setting Type >> ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġboolean Setting ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġneeded At Phase : ĠGeneration Phase , ĊĠĠĠĠĠĠĠ Ġinit : ĠBoolean Setting Type . Builder . () Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠReadOnly Property < Any , ĠModule Configurator Setting < Boolean , ĠBoolean Setting Type >> Ġ= ĊĠĠĠĠĠĠĠ Ġsuper . boolean Setting ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġneeded At Phase , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠReadOnly Property < Any , ĠModule Configurator Setting < Boolean , ĠBoolean Setting Type >> ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġ< V Ġ: ĠAny > Ġvalue Setting ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġneeded At Phase : ĠGeneration Phase , ĊĠĠĠĠĠĠĠ Ġparser : ĠParser < V >, ĊĠĠĠĠĠĠĠ Ġinit : ĠValue Setting Type . Builder < V >. () Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠReadOnly Property < Any , ĠModule Configurator Setting < V , ĠValue Setting Type < V >>> Ġ= ĊĠĠĠĠĠĠĠ Ġsuper . value Setting ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġneeded At Phase , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparser , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠReadOnly Property < Any , ĠModule Configurator Setting < V , ĠValue Setting Type < V >>> ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġversion Setting ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġneeded At Phase : ĠGeneration Phase , ĊĠĠĠĠĠĠĠ Ġinit : ĠVersion Setting Type . Builder . () Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠReadOnly Property < Any , ĠModule Configurator Setting < Version , ĠVersion Setting Type >> Ġ= ĊĠĠĠĠĠĠĠ Ġsuper . version Setting ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġneeded At Phase , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠReadOnly Property < Any , ĠModule Configurator Setting < Version , ĠVersion Setting Type >> ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġ< V Ġ: ĠAny > Ġlist Setting ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġneeded At Phase : ĠGeneration Phase , ĊĠĠĠĠĠĠĠ Ġparser : ĠParser < V >, ĊĠĠĠĠĠĠĠ Ġinit : ĠList Setting Type . Builder < V >. () Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠReadOnly Property < Any , ĠModule Configurator Setting < List < V >, ĠList Setting Type < V >>> Ġ= ĊĠĠĠĠĠĠĠ Ġsuper . list Setting ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġneeded At Phase , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparser , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠReadOnly Property < Any , ĠModule Configurator Setting < List < V >, ĠList Setting Type < V >>> ĊĊĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠ Ġoverride Ġfun Ġpath Setting ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġneeded At Phase : ĠGeneration Phase , ĊĠĠĠĠĠĠĠ Ġinit : ĠPath Setting Type . Builder . () Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠReadOnly Property < Any , ĠModule Configurator Setting < Path , ĠPath Setting Type >> Ġ= ĊĠĠĠĠĠĠĠ Ġsuper . path Setting ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġneeded At Phase , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠReadOnly Property < Any , ĠModule Configurator Setting < Path , ĠPath Setting Type >> ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠE > Ġenum Setting ( ĊĠĠĠĠĠĠĠ Ġtitle : ĠString , ĊĠĠĠĠĠĠĠ Ġneeded At Phase : ĠGeneration Phase , ĊĠĠĠĠĠĠĠ Ġcross inline Ġinit : ĠDrop Down Setting Type . Builder < E >. () Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġ) Ġwhere ĠE Ġ: ĠEnum < E >, ĠE Ġ: ĠDisplay able Setting Item Ġ= Ġdrop Down Setting < E >( title , Ġneeded At Phase , Ġenum Parser ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġvalues Ġ= Ġenum Values < E >(). asList () ĊĠĠĠĠĠĠĠ Ġinit () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġinit Default Values For ( module : ĠModule , Ġcontext : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith Settings Of ( module ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsettings . forEach Ġ{ Ġsetting Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠdefaultValue Ġ= Ġsetting . defaultValue Ġ?: Ġreturn @ forEach ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . setting Context [ setting . reference ] Ġ= ĠdefaultValue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ val ĠModule Configurator . settings ĊĠĠĠ Ġget () Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠModule Configurator With Settings Ġ-> Ġsettings ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġempty List () ĊĠĠĠ Ġ} Ċ Ċ val ĠModule . configur ator Settings ĊĠĠĠ Ġget () Ġ= Ġconfigur ator . settings . map Ġ{ Ġsetting Ġ-> ĊĠĠĠĠĠĠĠ ĠModule Based Configurator Setting Reference ( configur ator , Ġthis , Ġsetting ) ĊĠĠĠ Ġ} Ċ Ċ interface ĠModule Configurator Ġ: ĠDisplay able Setting Item , ĠEntities Owner Descriptor Ġ{ ĊĠĠĠ Ġval Ġmodule Kind : ĠModule Kind ĊĠĠĠ Ġval Ġmodule Type : ĠModule Type ĊĠĠĠ Ġoverride Ġval Ġtext : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġid ĊĊĠĠĠ Ġval Ġsuggested ModuleName : ĠString ? Ġget () Ġ= Ġnull ĊĠĠĠ Ġval Ġcan Contain Sub Modules : ĠBoolean Ġget () Ġ= Ġfalse ĊĊĠĠĠ Ġfun Ġcreate Build File IR s ( configuration Data : ĠModule Configuration Data , Ġmodule : ĠModule ): ĠList < Build System IR > Ġ= ĊĠĠĠĠĠĠĠ Ġempty List () ĊĊĠĠĠ Ġfun ĠValues Reading Context . create Module IR s ( configuration Data : ĠModule Configuration Data , Ġmodule : ĠModule ): ĠList < Build System IR > Ġ= ĊĠĠĠĠĠĠĠ Ġempty List () ĊĊĠĠĠ Ġfun Ġcreate Std lib Type ( configuration Data : ĠModule Configuration Data , Ġmodule : ĠModule ): ĠStd lib Type ? Ġ= ĊĠĠĠĠĠĠĠ Ġmodule Type . corre sponding Std lib () ĊĊĠĠĠ Ġfun Ġcreate Root Build File I rs ( configuration Data : ĠModule Configuration Data ): ĠList < Build System IR > Ġ= Ġempty List () ĊĠĠĠ Ġfun Ġcreate Kotlin Plugin IR ( configuration Data : ĠModule Configuration Data , Ġmodule : ĠModule ): ĠKotlin Build System Plugin IR ? Ġ= ĊĠĠĠĠĠĠĠ Ġnull ĊĊĠĠĠ Ġfun ĠTask Running Context . run Ar bitrary Task ( ĊĠĠĠĠĠĠĠ Ġconfiguration Data : ĠModule Configuration Data , ĊĠĠĠĠĠĠĠ Ġmodule : ĠModule , ĊĠĠĠĠĠĠĠ Ġmodule Path : ĠPath ĊĠĠĠ Ġ): ĠTask Result < Unit > Ġ= ĠUNIT _ SUCCESS ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠALL Ġ= Ġbuild List < Module Configurator > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Real Native Target Configurator . configur ators ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Native For Current System Target ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Js Browser Target Configurator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Js Node Target Configurator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Common Target Configurator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Jvm Target Configurator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Android Target Configurator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ M pp Module Configurator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Jvm Single Platform Module Configurator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ Android Single Platform Module Configurator ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ+ IO SS ingle Platform Module Configurator ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠALL . groupBy ( Module Configurator :: id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġ( id , Ġconfigur ators ) Ġ-> Ġassert ( configur ators . size Ġ== Ġ 1 ) Ġ{ Ġid Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠBY _ ID Ġ= ĠALL . associate By ( Module Configurator :: id ) ĊĠĠĠĠĠĠĠ Ġval ĠBY _ MODULE _ KIND Ġ= ĠALL . groupBy ( Module Configurator :: module Kind ) ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Parser ( module Ident ific ator : ĠIdent ific ator ): ĠParser < Module Configurator > Ġ= Ġmap Parser Ġ{ Ġmap , Ġpath Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( id ) Ġ= Ġmap . parse Value < String >( path , Ġ" name ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( configur ator ) Ġ= ĠBY _ ID [ id ]. to Result Ġ{ ĠConfigurator NotFoundError ( id ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( settings With Values ) Ġ= Ġconfigur ator . settings . map Compute M Ġ{ Ġsetting Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( setting Value ) Ġ= Ġmap [ setting . path ]. to Result Ġ{ ĠParse Error (" No Ġvalue Ġwas Ġfound Ġfor Ġa Ġkey Ġ`$ path .${ setting . path }` ") Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreference Ġ= Ġwith Settings Of ( module Ident ific ator , Ġconfigur ator ) Ġ{ Ġsetting . reference Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsetting . type . parse ( this , Ġsetting Value , Ġsetting . path ). map Ġ{ Ġreference Ġto Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate State Ġ{ Ġit . with Settings ( settings With Values ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigur ator ĊĠĠĠĠĠĠĠ Ġ} Ġor Ġvalue Parser M Ġ{ Ġvalue , Ġpath Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( id ) Ġ= Ġvalue . parse As < String >( path ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBY _ ID [ id ]. to Result Ġ{ ĠConfigurator NotFoundError ( id ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }