/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* Ġ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 . descriptors . common izer . kon an Ċ Ċ import Ġorg . jetbrains . kotlin . builtins . Kotlin Built Ins Ċ import Ġorg . jetbrains . kotlin . config . Language Version Settings Impl Ċ import Ġorg . jetbrains . kotlin . descriptors . Module Descriptor Ċ import Ġorg . jetbrains . kotlin . descriptors . common izer . Built Ins Provider Ċ import Ġorg . jetbrains . kotlin . descriptors . common izer . Modules Provider Ċ import Ġorg . jetbrains . kotlin . descriptors . common izer . Modules Provider . Module Info Ċ import Ġorg . jetbrains . kotlin . descriptors . common izer . utils . Native Factories Ċ import Ġorg . jetbrains . kotlin . descriptors . common izer . utils . create Kotlin Native Forward Declarations Module Ċ import Ġorg . jetbrains . kotlin . incremental . components . Lookup Tracker Ċ import Ġorg . jetbrains . kotlin . kon an . library . K ON AN _ STD LIB _ NAME Ċ import Ġorg . jetbrains . kotlin . storage . Storage Manager Ċ import Ġjava . io . File Ċ Ċ internal Ġclass ĠNative Distribution Modules Provider ( ĊĠĠĠ Ġprivate Ġval Ġstorage Manager : ĠStorage Manager , ĊĠĠĠ Ġprivate Ġval Ġlibraries : ĠNative Distribution Libraries Ċ ) Ġ: ĠBuilt Ins Provider , ĠModules Provider Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġload Built Ins (): ĠKotlin Built Ins Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstdlib Ġ= ĠNative Factories . Default Deserial ized Descriptor Factory . create Descriptor And New Built Ins ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlibrary Ġ= Ġlibraries . stdlib . library , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Version Settings Ġ= ĠLanguage Version Settings Impl . DEFAULT , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Manager Ġ= Ġstorage Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Access Handler Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġstdlib . set Dependencies ( listOf ( stdlib )) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġstdlib . built Ins ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Module Infos (): ĠMap < String , ĠModule Info > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlibraries . platform Lib s . associate Ġ{ Ġlibrary Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġlibrary . manifest Data . unique Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocation Ġ= ĠFile ( library . library . library File . path ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġto ĠModule Info ( name , Ġlocation ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload Modules (): ĠCollection < Module Descriptor > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilt Ins Ġ= Ġload Built Ins () ĊĠĠĠĠĠĠĠ Ġval Ġstdlib Ġ= Ġbuilt Ins . built Ins Module ĊĊĠĠĠĠĠĠĠ Ġval Ġplatform Modules Map Ġ= Ġlibraries . platform Lib s . associate Ġ{ Ġlibrary Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġlibrary . manifest Data . unique Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmodule Ġ= ĠNative Factories . Default Deserial ized Descriptor Factory . create Descriptor Optional Built Ins ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlibrary Ġ= Ġlibrary . library , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Version Settings Ġ= ĠLanguage Version Settings Impl . DEFAULT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Manager Ġ= Ġstorage Manager , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilt Ins Ġ= Ġbuilt Ins , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpackage Access Handler Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlookup Tracker Ġ= ĠLookup Tracker . DO _ NOTH ING ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġto Ġmodule ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġforward Declarations Ġ= Ġcreate Kotlin Native Forward Declarations Module ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Manager Ġ= Ġstorage Manager , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilt Ins Ġ= Ġbuilt Ins ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġplatform Modules Map . forEach Ġ{ Ġ( name , Ġmodule ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġlibraries . get Manifest ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. dependencies ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġif Ġ( it Ġ== ĠK ON AN _ STD LIB _ NAME ) Ġstdlib Ġelse Ġplatform Modules Map . getValue ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodule . set Dependencies ( listOf ( module ) Ġ+ Ġdependencies Ġ+ Ġforward Declarations ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġplatform Modules Map . values . toList () ĊĠĠĠ Ġ} Ċ } Ċ