/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 2 Ġ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 . gradle . k pm . idea Ċ Ċ import Ġorg . gradle . api . artifacts . component . Module Component Identifier Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . Metadata Dependency Resolution . Choose Visible Source Sets Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . Metadata Dependency Resolution . Choose Visible Source Sets . Metadata Provider . Jar Metadata Provider Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . Metadata Dependency Resolution . Choose Visible Source Sets . Metadata Provider . Project Metadata Provider Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . pm 2 0 . Fragment Gran ular Metadata Resolver Factory Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . pm 2 0 . Kotlin Gradle Fragment Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . pm 2 0 . Kotlin Gradle Module . Companion . moduleName Ċ import Ġorg . jetbrains . kotlin . gradle . plugin . mpp . pm 2 0 . to Module Dependency Ċ import Ġorg . jetbrains . kotlin . gradle . utils . with Temporary Directory Ċ Ċ internal Ġclass ĠIde a Kotlin Metadata Binary Dependency Resolver ( ĊĠĠĠ Ġprivate Ġval Ġfragment Gran ular Metadata Resolver Factory : ĠFragment Gran ular Metadata Resolver Factory Ċ ) Ġ: ĠIde a Kotlin Dependency Resolver Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġresolve ( fragment : ĠKotlin Gradle Fragment ): ĠSet < Ide a Kotlin Dependency > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfragment Gran ular Metadata Resolver Factory . get OrCreate ( fragment ). resolution s ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Is Instance < Choose Visible Source Sets >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ Ġresolution Ġ-> Ġresolve ( fragment , Ġresolution ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toSet () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġresolve ( fragment : ĠKotlin Gradle Fragment , Ġresolution : ĠChoose Visible Source Sets ): ĠIterable < Ide a Kotlin Dependency > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgradle Module Identifier Ġ= Ġresolution . dependency . id Ġas ? ĠModule Component Identifier Ġ?: Ġreturn Ġempty Set () ĊĠĠĠĠĠĠĠ Ġval Ġkotlin Module Identifier Ġ= Ġresolution . dependency . to Module Dependency (). module Identifier ĊĊĠĠĠĠĠĠĠ Ġ/* ĠProject Ġto Ġproject Ġmetadata Ġdependencies Ġshall Ġbe Ġresolved Ġas Ġsource Ġdependencies , Ġsomewhere Ġelse Ġ*/ ĊĠĠĠĠĠĠĠ Ġval Ġmetadata Provider Ġ= Ġwhen Ġ( resolution . metadata Provider ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠProject Metadata Provider Ġ-> Ġreturn Ġempty Set () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠJar Metadata Provider Ġ-> Ġresolution . metadata Provider ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresolution . all Visible Source Set Names . map NotNull Ġ{ Ġvisible Fragment Name Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinary File Ġ= Ġwith Temporary Directory (" metadata Binary Dependency Resolver ") Ġ{ Ġtemporary Directory Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsource Binary File Ġ= Ġmetadata Provider . getSource Set Compiled Metadata ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsource SetName Ġ= Ġvisible Fragment Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Directory Ġ= Ġtemporary Directory , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaterial ize File Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! source Binary File . isFile ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ map NotNull Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . project . rootDir ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resolve (". gradle "). resolve (" kotlin "). resolve (" transformed Kotlin Metadata ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resolve ( gradle Module Identifier . group ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resolve ( gradle Module Identifier . module ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resolve ( gradle Module Identifier . version ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resolve ( kotlin Module Identifier . moduleName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resolve ( visible Fragment Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. resolve ( source Binary File . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ Ġif Ġ(! isFile ) Ġsource Binary File . copy To ( this ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠIde a Kotlin Resolved Binary Dependency Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinary Type Ġ= ĠIde a Kotlin Dependency . CLAS SPATH _ BINARY _ TYPE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinary File Ġ= Ġbinary File , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcoordinates Ġ= ĠIde a Kotlin Binary Coordinates Impl ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgroup Ġ= Ġgradle Module Identifier . group , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodule Ġ= Ġgradle Module Identifier . module , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġgradle Module Identifier . version , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin ModuleName Ġ= Ġkotlin Module Identifier . moduleName , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Fragment Name Ġ= Ġvisible Fragment Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ