Removed references to AndroidDependencyResolver from KotlinMultiplatformExtension

This commit is contained in:
Vyacheslav Karpukhin
2020-02-12 19:12:01 +01:00
parent bdb8811f95
commit 082c358f9d
3 changed files with 14 additions and 14 deletions
@@ -141,7 +141,7 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
@Suppress("UNCHECKED_CAST")
val sourceSets =
(getSourceSets(kotlinExt) as? NamedDomainObjectContainer<Named>)?.asMap?.values ?: emptyList<Named>()
val androidDeps = buildAndroidDeps(kotlinExt, project)
val androidDeps = buildAndroidDeps(kotlinExt.javaClass.classLoader, project)
// Some performance optimisation: do not build metadata dependencies if source set is not common
val doBuildMetadataDependencies =
@@ -171,16 +171,20 @@ class KotlinMPPGradleModelBuilder : ModelBuilderService {
}
}
private fun buildAndroidDeps(kotlinExt: Any, project: Project): Map<String, List<Any>>? {
private fun buildAndroidDeps(classLoader: ClassLoader, project: Project): Map<String, List<Any>>? {
val includeAndroidDeps = project.properties["kotlin.include.android.dependencies"]?.toString()?.toBoolean() == true
if (includeAndroidDeps) {
val getAndroidSourceSetDependencies =
kotlinExt.javaClass.getMethodOrNull("getAndroidSourceSetDependencies", Project::class.java)
@Suppress("UNCHECKED_CAST")
return getAndroidSourceSetDependencies?.let { it(kotlinExt, project) } as Map<String, List<Any>>?
} else {
return emptyMap()
try {
val resolverClass = classLoader.loadClass("org.jetbrains.kotlin.gradle.targets.android.internal.AndroidDependencyResolver")
val getAndroidSourceSetDependencies = resolverClass.getMethodOrNull("getAndroidSourceSetDependencies", Project::class.java)
val resolver = resolverClass.getField("INSTANCE").get(null)
@Suppress("UNCHECKED_CAST")
return getAndroidSourceSetDependencies?.let { it(resolver, project) } as Map<String, List<Any>>?
} catch (e: Exception) {
logger.info("Unexpected exception", e)
}
}
return null
}
private fun buildSourceSet(
@@ -8,7 +8,6 @@ package org.jetbrains.kotlin.gradle.dsl
import groovy.lang.Closure
import org.gradle.api.InvalidUserCodeException
import org.gradle.api.NamedDomainObjectCollection
import org.gradle.api.Project
import org.gradle.util.ConfigureUtil
import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset
@@ -55,10 +54,6 @@ open class KotlinMultiplatformExtension :
internal val rootSoftwareComponent: KotlinSoftwareComponent by lazy {
KotlinSoftwareComponentWithCoordinatesAndPublication("kotlin", targets)
}
@Suppress("unused")
fun getAndroidSourceSetDependencies(project: Project) =
AndroidDependencyResolver.getAndroidSourceSetDependencies(project)
}
internal fun KotlinTarget.isProducedFromPreset(kotlinTargetPreset: KotlinTargetPreset<*>): Boolean =
@@ -3,7 +3,7 @@
* 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.dsl
package org.jetbrains.kotlin.gradle.targets.android.internal
import com.android.build.gradle.BaseExtension
import com.android.build.gradle.api.AndroidSourceSet
@@ -34,6 +34,7 @@ data class AndroidDependency(
val collection: Set<File>? = null
)
@Suppress("unused")
object AndroidDependencyResolver {
private fun getAndroidSdkJar(project: Project): AndroidDependency? {
val androidExtension = project.extensions.findByName("android") as BaseExtension? ?: return null