Get rid of kotlinPluginVersion in the constructors throughout the plugin
We passed the kotlinPluginVersion which was only used for a single purpose in countless constructors. In fact, the plugin version is easy to load at the call site, as it gets loaded from the plugin's resources. So rework the plugin version loading code so that it doesn't rely on the applied plugin, and don't pass the plugin version in all those constructors.
This commit is contained in:
+26
-43
@@ -180,8 +180,7 @@ internal abstract class KotlinSourceSetProcessor<T : AbstractKotlinCompile<*>>(
|
|||||||
|
|
||||||
internal class Kotlin2JvmSourceSetProcessor(
|
internal class Kotlin2JvmSourceSetProcessor(
|
||||||
tasksProvider: KotlinTasksProvider,
|
tasksProvider: KotlinTasksProvider,
|
||||||
kotlinCompilation: KotlinCompilationData<*>,
|
kotlinCompilation: KotlinCompilationData<*>
|
||||||
private val kotlinPluginVersion: String
|
|
||||||
) : KotlinSourceSetProcessor<KotlinCompile>(
|
) : KotlinSourceSetProcessor<KotlinCompile>(
|
||||||
tasksProvider, "Compiles the $kotlinCompilation.", kotlinCompilation
|
tasksProvider, "Compiles the $kotlinCompilation.", kotlinCompilation
|
||||||
) {
|
) {
|
||||||
@@ -200,7 +199,7 @@ internal class Kotlin2JvmSourceSetProcessor(
|
|||||||
ScriptingGradleSubplugin.configureForSourceSet(project, kotlinCompilation.compilationPurpose)
|
ScriptingGradleSubplugin.configureForSourceSet(project, kotlinCompilation.compilationPurpose)
|
||||||
|
|
||||||
project.whenEvaluated {
|
project.whenEvaluated {
|
||||||
val subpluginEnvironment = SubpluginEnvironment.loadSubplugins(project, kotlinPluginVersion)
|
val subpluginEnvironment = SubpluginEnvironment.loadSubplugins(project)
|
||||||
|
|
||||||
if (kotlinCompilation is KotlinCompilation<*>) // FIXME support compiler plugins with PM20
|
if (kotlinCompilation is KotlinCompilation<*>) // FIXME support compiler plugins with PM20
|
||||||
subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation)
|
subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation)
|
||||||
@@ -233,8 +232,7 @@ internal fun KotlinCompilationOutput.addClassesDir(classesDirProvider: () -> Fil
|
|||||||
|
|
||||||
internal class Kotlin2JsSourceSetProcessor(
|
internal class Kotlin2JsSourceSetProcessor(
|
||||||
tasksProvider: KotlinTasksProvider,
|
tasksProvider: KotlinTasksProvider,
|
||||||
kotlinCompilation: KotlinCompilationData<*>,
|
kotlinCompilation: KotlinCompilationData<*>
|
||||||
private val kotlinPluginVersion: String
|
|
||||||
) : KotlinSourceSetProcessor<Kotlin2JsCompile>(
|
) : KotlinSourceSetProcessor<Kotlin2JsCompile>(
|
||||||
tasksProvider,
|
tasksProvider,
|
||||||
taskDescription = "Compiles the Kotlin sources in $kotlinCompilation to JavaScript.",
|
taskDescription = "Compiles the Kotlin sources in $kotlinCompilation to JavaScript.",
|
||||||
@@ -290,7 +288,7 @@ internal class Kotlin2JsSourceSetProcessor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val subpluginEnvironment: SubpluginEnvironment = SubpluginEnvironment.loadSubplugins(project, kotlinPluginVersion)
|
val subpluginEnvironment: SubpluginEnvironment = SubpluginEnvironment.loadSubplugins(project)
|
||||||
if (kotlinCompilation is KotlinCompilation<*>) { // FIXME support compiler plugins with PM20
|
if (kotlinCompilation is KotlinCompilation<*>) { // FIXME support compiler plugins with PM20
|
||||||
subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation)
|
subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation)
|
||||||
}
|
}
|
||||||
@@ -300,8 +298,7 @@ internal class Kotlin2JsSourceSetProcessor(
|
|||||||
|
|
||||||
internal class KotlinJsIrSourceSetProcessor(
|
internal class KotlinJsIrSourceSetProcessor(
|
||||||
tasksProvider: KotlinTasksProvider,
|
tasksProvider: KotlinTasksProvider,
|
||||||
kotlinCompilation: AbstractKotlinCompilation<*>,
|
kotlinCompilation: AbstractKotlinCompilation<*>
|
||||||
private val kotlinPluginVersion: String
|
|
||||||
) : KotlinSourceSetProcessor<Kotlin2JsCompile>(
|
) : KotlinSourceSetProcessor<Kotlin2JsCompile>(
|
||||||
tasksProvider, taskDescription = "Compiles the Kotlin sources in $kotlinCompilation to JavaScript.",
|
tasksProvider, taskDescription = "Compiles the Kotlin sources in $kotlinCompilation to JavaScript.",
|
||||||
kotlinCompilation = kotlinCompilation
|
kotlinCompilation = kotlinCompilation
|
||||||
@@ -350,7 +347,7 @@ internal class KotlinJsIrSourceSetProcessor(
|
|||||||
}
|
}
|
||||||
|
|
||||||
project.whenEvaluated {
|
project.whenEvaluated {
|
||||||
val subpluginEnvironment: SubpluginEnvironment = SubpluginEnvironment.loadSubplugins(project, kotlinPluginVersion)
|
val subpluginEnvironment: SubpluginEnvironment = SubpluginEnvironment.loadSubplugins(project)
|
||||||
subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation)
|
subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -358,8 +355,7 @@ internal class KotlinJsIrSourceSetProcessor(
|
|||||||
|
|
||||||
internal class KotlinCommonSourceSetProcessor(
|
internal class KotlinCommonSourceSetProcessor(
|
||||||
compilation: KotlinCompilationData<*>,
|
compilation: KotlinCompilationData<*>,
|
||||||
tasksProvider: KotlinTasksProvider,
|
tasksProvider: KotlinTasksProvider
|
||||||
private val kotlinPluginVersion: String
|
|
||||||
) : KotlinSourceSetProcessor<KotlinCompileCommon>(
|
) : KotlinSourceSetProcessor<KotlinCompileCommon>(
|
||||||
tasksProvider, taskDescription = "Compiles the kotlin sources in $compilation to Metadata.", kotlinCompilation = compilation
|
tasksProvider, taskDescription = "Compiles the kotlin sources in $compilation to Metadata.", kotlinCompilation = compilation
|
||||||
) {
|
) {
|
||||||
@@ -372,7 +368,7 @@ internal class KotlinCommonSourceSetProcessor(
|
|||||||
|
|
||||||
if (kotlinCompilation is AbstractKotlinCompilation<*>) {
|
if (kotlinCompilation is AbstractKotlinCompilation<*>) {
|
||||||
project.whenEvaluated {
|
project.whenEvaluated {
|
||||||
val subpluginEnvironment: SubpluginEnvironment = SubpluginEnvironment.loadSubplugins(project, kotlinPluginVersion)
|
val subpluginEnvironment: SubpluginEnvironment = SubpluginEnvironment.loadSubplugins(project)
|
||||||
subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation)
|
subpluginEnvironment.addSubpluginOptions(project, kotlinCompilation)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -389,24 +385,23 @@ internal class KotlinCommonSourceSetProcessor(
|
|||||||
|
|
||||||
internal abstract class AbstractKotlinPlugin(
|
internal abstract class AbstractKotlinPlugin(
|
||||||
val tasksProvider: KotlinTasksProvider,
|
val tasksProvider: KotlinTasksProvider,
|
||||||
protected val kotlinPluginVersion: String,
|
|
||||||
val registry: ToolingModelBuilderRegistry
|
val registry: ToolingModelBuilderRegistry
|
||||||
) : Plugin<Project> {
|
) : Plugin<Project> {
|
||||||
|
|
||||||
internal abstract fun buildSourceSetProcessor(
|
internal abstract fun buildSourceSetProcessor(
|
||||||
project: Project,
|
project: Project,
|
||||||
compilation: AbstractKotlinCompilation<*>,
|
compilation: AbstractKotlinCompilation<*>
|
||||||
kotlinPluginVersion: String
|
|
||||||
): KotlinSourceSetProcessor<*>
|
): KotlinSourceSetProcessor<*>
|
||||||
|
|
||||||
override fun apply(project: Project) {
|
override fun apply(project: Project) {
|
||||||
|
val kotlinPluginVersion = project.getKotlinPluginVersion()
|
||||||
project.plugins.apply(JavaPlugin::class.java)
|
project.plugins.apply(JavaPlugin::class.java)
|
||||||
|
|
||||||
val target = (project.kotlinExtension as KotlinSingleJavaTargetExtension).target
|
val target = (project.kotlinExtension as KotlinSingleJavaTargetExtension).target
|
||||||
|
|
||||||
configureTarget(
|
configureTarget(
|
||||||
target,
|
target,
|
||||||
{ compilation -> buildSourceSetProcessor(project, compilation, kotlinPluginVersion) }
|
{ compilation -> buildSourceSetProcessor(project, compilation) }
|
||||||
)
|
)
|
||||||
|
|
||||||
applyUserDefinedAttributes(target)
|
applyUserDefinedAttributes(target)
|
||||||
@@ -601,16 +596,15 @@ internal abstract class AbstractKotlinPlugin(
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal open class KotlinPlugin(
|
internal open class KotlinPlugin(
|
||||||
kotlinPluginVersion: String,
|
|
||||||
registry: ToolingModelBuilderRegistry
|
registry: ToolingModelBuilderRegistry
|
||||||
) : AbstractKotlinPlugin(KotlinTasksProvider(), kotlinPluginVersion, registry) {
|
) : AbstractKotlinPlugin(KotlinTasksProvider(), registry) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val targetName = "" // use empty suffix for the task names
|
private const val targetName = "" // use empty suffix for the task names
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun buildSourceSetProcessor(project: Project, compilation: AbstractKotlinCompilation<*>, kotlinPluginVersion: String) =
|
override fun buildSourceSetProcessor(project: Project, compilation: AbstractKotlinCompilation<*>) =
|
||||||
Kotlin2JvmSourceSetProcessor(tasksProvider, compilation, kotlinPluginVersion)
|
Kotlin2JvmSourceSetProcessor(tasksProvider, compilation)
|
||||||
|
|
||||||
override fun apply(project: Project) {
|
override fun apply(project: Project) {
|
||||||
val target =
|
val target =
|
||||||
@@ -632,9 +626,8 @@ internal open class KotlinPlugin(
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal open class KotlinCommonPlugin(
|
internal open class KotlinCommonPlugin(
|
||||||
kotlinPluginVersion: String,
|
|
||||||
registry: ToolingModelBuilderRegistry
|
registry: ToolingModelBuilderRegistry
|
||||||
) : AbstractKotlinPlugin(KotlinTasksProvider(), kotlinPluginVersion, registry) {
|
) : AbstractKotlinPlugin(KotlinTasksProvider(), registry) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val targetName = "common"
|
private const val targetName = "common"
|
||||||
@@ -642,10 +635,9 @@ internal open class KotlinCommonPlugin(
|
|||||||
|
|
||||||
override fun buildSourceSetProcessor(
|
override fun buildSourceSetProcessor(
|
||||||
project: Project,
|
project: Project,
|
||||||
compilation: AbstractKotlinCompilation<*>,
|
compilation: AbstractKotlinCompilation<*>
|
||||||
kotlinPluginVersion: String
|
|
||||||
): KotlinSourceSetProcessor<*> =
|
): KotlinSourceSetProcessor<*> =
|
||||||
KotlinCommonSourceSetProcessor(compilation, tasksProvider, kotlinPluginVersion)
|
KotlinCommonSourceSetProcessor(compilation, tasksProvider)
|
||||||
|
|
||||||
override fun apply(project: Project) {
|
override fun apply(project: Project) {
|
||||||
val target = KotlinWithJavaTarget<KotlinMultiplatformCommonOptions>(
|
val target = KotlinWithJavaTarget<KotlinMultiplatformCommonOptions>(
|
||||||
@@ -661,9 +653,8 @@ internal open class KotlinCommonPlugin(
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal open class Kotlin2JsPlugin(
|
internal open class Kotlin2JsPlugin(
|
||||||
kotlinPluginVersion: String,
|
|
||||||
registry: ToolingModelBuilderRegistry
|
registry: ToolingModelBuilderRegistry
|
||||||
) : AbstractKotlinPlugin(KotlinTasksProvider(), kotlinPluginVersion, registry) {
|
) : AbstractKotlinPlugin(KotlinTasksProvider(), registry) {
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
private const val targetName = "2Js"
|
private const val targetName = "2Js"
|
||||||
@@ -672,12 +663,9 @@ internal open class Kotlin2JsPlugin(
|
|||||||
|
|
||||||
override fun buildSourceSetProcessor(
|
override fun buildSourceSetProcessor(
|
||||||
project: Project,
|
project: Project,
|
||||||
compilation: AbstractKotlinCompilation<*>,
|
compilation: AbstractKotlinCompilation<*>
|
||||||
kotlinPluginVersion: String
|
|
||||||
): KotlinSourceSetProcessor<*> =
|
): KotlinSourceSetProcessor<*> =
|
||||||
Kotlin2JsSourceSetProcessor(
|
Kotlin2JsSourceSetProcessor(tasksProvider, compilation)
|
||||||
tasksProvider, compilation, kotlinPluginVersion
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun apply(project: Project) {
|
override fun apply(project: Project) {
|
||||||
if (!PropertiesProvider(project).noWarn2JsPlugin) {
|
if (!PropertiesProvider(project).noWarn2JsPlugin) {
|
||||||
@@ -691,7 +679,6 @@ internal open class Kotlin2JsPlugin(
|
|||||||
}
|
}
|
||||||
|
|
||||||
internal open class KotlinAndroidPlugin(
|
internal open class KotlinAndroidPlugin(
|
||||||
private val kotlinPluginVersion: String,
|
|
||||||
private val registry: ToolingModelBuilderRegistry
|
private val registry: ToolingModelBuilderRegistry
|
||||||
) : Plugin<Project> {
|
) : Plugin<Project> {
|
||||||
|
|
||||||
@@ -701,20 +688,19 @@ internal open class KotlinAndroidPlugin(
|
|||||||
val androidTarget = KotlinAndroidTarget("", project)
|
val androidTarget = KotlinAndroidTarget("", project)
|
||||||
(project.kotlinExtension as KotlinAndroidProjectExtension).target = androidTarget
|
(project.kotlinExtension as KotlinAndroidProjectExtension).target = androidTarget
|
||||||
|
|
||||||
applyToTarget(kotlinPluginVersion, androidTarget)
|
applyToTarget(androidTarget)
|
||||||
|
|
||||||
applyUserDefinedAttributes(androidTarget)
|
applyUserDefinedAttributes(androidTarget)
|
||||||
|
|
||||||
customizeKotlinDependencies(project)
|
customizeKotlinDependencies(project)
|
||||||
|
|
||||||
registry.register(KotlinModelBuilder(kotlinPluginVersion, androidTarget))
|
registry.register(KotlinModelBuilder(project.getKotlinPluginVersion(), androidTarget))
|
||||||
|
|
||||||
project.whenEvaluated { project.components.addAll(androidTarget.components) }
|
project.whenEvaluated { project.components.addAll(androidTarget.components) }
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
fun androidTargetHandler(
|
fun androidTargetHandler(
|
||||||
kotlinPluginVersion: String,
|
|
||||||
androidTarget: KotlinAndroidTarget
|
androidTarget: KotlinAndroidTarget
|
||||||
): AbstractAndroidProjectHandler {
|
): AbstractAndroidProjectHandler {
|
||||||
val tasksProvider = AndroidTasksProvider()
|
val tasksProvider = AndroidTasksProvider()
|
||||||
@@ -727,25 +713,22 @@ internal open class KotlinAndroidPlugin(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val kotlinTools = KotlinConfigurationTools(
|
val kotlinTools = KotlinConfigurationTools(
|
||||||
tasksProvider,
|
tasksProvider
|
||||||
kotlinPluginVersion
|
|
||||||
)
|
)
|
||||||
|
|
||||||
return Android25ProjectHandler(kotlinTools)
|
return Android25ProjectHandler(kotlinTools)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun applyToTarget(
|
fun applyToTarget(
|
||||||
kotlinPluginVersion: String,
|
|
||||||
kotlinTarget: KotlinAndroidTarget
|
kotlinTarget: KotlinAndroidTarget
|
||||||
) {
|
) {
|
||||||
androidTargetHandler(kotlinPluginVersion, kotlinTarget).configureTarget(kotlinTarget)
|
androidTargetHandler(kotlinTarget).configureTarget(kotlinTarget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class KotlinConfigurationTools internal constructor(
|
class KotlinConfigurationTools internal constructor(
|
||||||
val kotlinTasksProvider: KotlinTasksProvider,
|
val kotlinTasksProvider: KotlinTasksProvider
|
||||||
val kotlinPluginVersion: String
|
|
||||||
)
|
)
|
||||||
|
|
||||||
abstract class AbstractAndroidProjectHandler(private val kotlinConfigurationTools: KotlinConfigurationTools) {
|
abstract class AbstractAndroidProjectHandler(private val kotlinConfigurationTools: KotlinConfigurationTools) {
|
||||||
@@ -827,7 +810,7 @@ abstract class AbstractAndroidProjectHandler(private val kotlinConfigurationTool
|
|||||||
val compilation = kotlinAndroidTarget.compilations.getByName(getVariantName(variant))
|
val compilation = kotlinAndroidTarget.compilations.getByName(getVariantName(variant))
|
||||||
postprocessVariant(variant, compilation, project, ext, plugin)
|
postprocessVariant(variant, compilation, project, ext, plugin)
|
||||||
|
|
||||||
val subpluginEnvironment = SubpluginEnvironment.loadSubplugins(project, kotlinConfigurationTools.kotlinPluginVersion)
|
val subpluginEnvironment = SubpluginEnvironment.loadSubplugins(project)
|
||||||
subpluginEnvironment.addSubpluginOptions(project, compilation)
|
subpluginEnvironment.addSubpluginOptions(project, compilation)
|
||||||
}
|
}
|
||||||
checkAndroidAnnotationProcessorDependencyUsage(project)
|
checkAndroidAnnotationProcessorDependencyUsage(project)
|
||||||
|
|||||||
+22
-16
@@ -53,7 +53,6 @@ import kotlin.reflect.KClass
|
|||||||
abstract class KotlinBasePluginWrapper : Plugin<Project> {
|
abstract class KotlinBasePluginWrapper : Plugin<Project> {
|
||||||
|
|
||||||
private val log = Logging.getLogger(this.javaClass)
|
private val log = Logging.getLogger(this.javaClass)
|
||||||
val kotlinPluginVersion = loadKotlinVersionFromResource(log)
|
|
||||||
|
|
||||||
open val projectExtensionClass: KClass<out KotlinTopLevelExtension> get() = KotlinProjectExtension::class
|
open val projectExtensionClass: KClass<out KotlinTopLevelExtension> get() = KotlinProjectExtension::class
|
||||||
|
|
||||||
@@ -61,6 +60,8 @@ abstract class KotlinBasePluginWrapper : Plugin<Project> {
|
|||||||
DefaultKotlinSourceSetFactory(project)
|
DefaultKotlinSourceSetFactory(project)
|
||||||
|
|
||||||
override fun apply(project: Project) {
|
override fun apply(project: Project) {
|
||||||
|
val kotlinPluginVersion = project.getKotlinPluginVersion()
|
||||||
|
|
||||||
val listenerRegistryHolder = BuildEventsListenerRegistryHolder.getInstance(project)
|
val listenerRegistryHolder = BuildEventsListenerRegistryHolder.getInstance(project)
|
||||||
val statisticsReporter = KotlinBuildStatsService.getOrCreateInstance(project, listenerRegistryHolder)
|
val statisticsReporter = KotlinBuildStatsService.getOrCreateInstance(project, listenerRegistryHolder)
|
||||||
statisticsReporter?.report(StringMetrics.KOTLIN_COMPILER_VERSION, kotlinPluginVersion)
|
statisticsReporter?.report(StringMetrics.KOTLIN_COMPILER_VERSION, kotlinPluginVersion)
|
||||||
@@ -116,7 +117,7 @@ abstract class KotlinBasePluginWrapper : Plugin<Project> {
|
|||||||
.maybeCreate(COMPILER_CLASSPATH_CONFIGURATION_NAME)
|
.maybeCreate(COMPILER_CLASSPATH_CONFIGURATION_NAME)
|
||||||
.defaultDependencies {
|
.defaultDependencies {
|
||||||
it.add(
|
it.add(
|
||||||
project.dependencies.create("$KOTLIN_MODULE_GROUP:$KOTLIN_COMPILER_EMBEDDABLE:$kotlinPluginVersion")
|
project.dependencies.create("$KOTLIN_MODULE_GROUP:$KOTLIN_COMPILER_EMBEDDABLE:${project.getKotlinPluginVersion()}")
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
project
|
project
|
||||||
@@ -151,7 +152,7 @@ open class KotlinPluginWrapper @Inject constructor(
|
|||||||
protected val registry: ToolingModelBuilderRegistry
|
protected val registry: ToolingModelBuilderRegistry
|
||||||
) : KotlinBasePluginWrapper() {
|
) : KotlinBasePluginWrapper() {
|
||||||
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
||||||
KotlinPlugin(kotlinPluginVersion, registry)
|
KotlinPlugin(registry)
|
||||||
|
|
||||||
override val projectExtensionClass: KClass<out KotlinJvmProjectExtension>
|
override val projectExtensionClass: KClass<out KotlinJvmProjectExtension>
|
||||||
get() = KotlinJvmProjectExtension::class
|
get() = KotlinJvmProjectExtension::class
|
||||||
@@ -161,7 +162,7 @@ open class KotlinCommonPluginWrapper @Inject constructor(
|
|||||||
protected val registry: ToolingModelBuilderRegistry
|
protected val registry: ToolingModelBuilderRegistry
|
||||||
) : KotlinBasePluginWrapper() {
|
) : KotlinBasePluginWrapper() {
|
||||||
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
||||||
KotlinCommonPlugin(kotlinPluginVersion, registry)
|
KotlinCommonPlugin(registry)
|
||||||
|
|
||||||
override val projectExtensionClass: KClass<out KotlinCommonProjectExtension>
|
override val projectExtensionClass: KClass<out KotlinCommonProjectExtension>
|
||||||
get() = KotlinCommonProjectExtension::class
|
get() = KotlinCommonProjectExtension::class
|
||||||
@@ -171,7 +172,7 @@ open class KotlinAndroidPluginWrapper @Inject constructor(
|
|||||||
protected val registry: ToolingModelBuilderRegistry
|
protected val registry: ToolingModelBuilderRegistry
|
||||||
) : KotlinBasePluginWrapper() {
|
) : KotlinBasePluginWrapper() {
|
||||||
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
||||||
KotlinAndroidPlugin(kotlinPluginVersion, registry)
|
KotlinAndroidPlugin(registry)
|
||||||
|
|
||||||
override val projectExtensionClass: KClass<out KotlinAndroidProjectExtension>
|
override val projectExtensionClass: KClass<out KotlinAndroidProjectExtension>
|
||||||
get() = KotlinAndroidProjectExtension::class
|
get() = KotlinAndroidProjectExtension::class
|
||||||
@@ -181,7 +182,7 @@ open class Kotlin2JsPluginWrapper @Inject constructor(
|
|||||||
protected val registry: ToolingModelBuilderRegistry
|
protected val registry: ToolingModelBuilderRegistry
|
||||||
) : KotlinBasePluginWrapper() {
|
) : KotlinBasePluginWrapper() {
|
||||||
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
||||||
Kotlin2JsPlugin(kotlinPluginVersion, registry)
|
Kotlin2JsPlugin(registry)
|
||||||
|
|
||||||
override val projectExtensionClass: KClass<out Kotlin2JsProjectExtension>
|
override val projectExtensionClass: KClass<out Kotlin2JsProjectExtension>
|
||||||
get() = Kotlin2JsProjectExtension::class
|
get() = Kotlin2JsProjectExtension::class
|
||||||
@@ -190,7 +191,7 @@ open class Kotlin2JsPluginWrapper @Inject constructor(
|
|||||||
open class KotlinJsPluginWrapper @Inject constructor(
|
open class KotlinJsPluginWrapper @Inject constructor(
|
||||||
) : KotlinBasePluginWrapper() {
|
) : KotlinBasePluginWrapper() {
|
||||||
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
||||||
KotlinJsPlugin(kotlinPluginVersion)
|
KotlinJsPlugin(project.getKotlinPluginVersion())
|
||||||
|
|
||||||
override val projectExtensionClass: KClass<out KotlinJsProjectExtension>
|
override val projectExtensionClass: KClass<out KotlinJsProjectExtension>
|
||||||
get() = KotlinJsProjectExtension::class
|
get() = KotlinJsProjectExtension::class
|
||||||
@@ -222,7 +223,7 @@ open class KotlinJsPluginWrapper @Inject constructor(
|
|||||||
open class KotlinMultiplatformPluginWrapper @Inject constructor(
|
open class KotlinMultiplatformPluginWrapper @Inject constructor(
|
||||||
) : KotlinBasePluginWrapper() {
|
) : KotlinBasePluginWrapper() {
|
||||||
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
override fun getPlugin(project: Project, kotlinGradleBuildServices: KotlinGradleBuildServices): Plugin<Project> =
|
||||||
KotlinMultiplatformPlugin(kotlinPluginVersion)
|
KotlinMultiplatformPlugin()
|
||||||
|
|
||||||
override val projectExtensionClass: KClass<out KotlinMultiplatformExtension>
|
override val projectExtensionClass: KClass<out KotlinMultiplatformExtension>
|
||||||
get() = KotlinMultiplatformExtension::class
|
get() = KotlinMultiplatformExtension::class
|
||||||
@@ -251,12 +252,17 @@ open class KotlinPm20PluginWrapper @Inject constructor(private val objectFactory
|
|||||||
get() = KotlinPm20ProjectExtension::class
|
get() = KotlinPm20ProjectExtension::class
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Project.getKotlinPluginVersion(): String? =
|
fun Project.getKotlinPluginVersion(): String {
|
||||||
plugins.asSequence().mapNotNull { (it as? KotlinBasePluginWrapper)?.kotlinPluginVersion }.firstOrNull()
|
if (!kotlinPluginVersionFromResources.isInitialized()) {
|
||||||
|
project.logger.kotlinDebug("Loading version information")
|
||||||
fun Plugin<*>.loadKotlinVersionFromResource(log: Logger): String {
|
project.logger.kotlinDebug("Found project version [${kotlinPluginVersionFromResources.value}")
|
||||||
log.kotlinDebug("Loading version information")
|
}
|
||||||
val projectVersion = loadPropertyFromResources("project.properties", "project.version")
|
return kotlinPluginVersionFromResources.value
|
||||||
log.kotlinDebug("Found project version [$projectVersion]")
|
|
||||||
return projectVersion
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun loadKotlinPluginVersionFromResourcesOf(any: Any) =
|
||||||
|
any.loadPropertyFromResources("project.properties", "project.version")
|
||||||
|
|
||||||
|
private val kotlinPluginVersionFromResources = lazy {
|
||||||
|
loadKotlinPluginVersionFromResourcesOf(object {})
|
||||||
|
}
|
||||||
+1
-2
@@ -370,8 +370,7 @@ internal val KotlinTarget.testTaskName: String
|
|||||||
|
|
||||||
abstract class KotlinOnlyTargetConfigurator<KotlinCompilationType : KotlinCompilation<*>, KotlinTargetType : KotlinOnlyTarget<KotlinCompilationType>>(
|
abstract class KotlinOnlyTargetConfigurator<KotlinCompilationType : KotlinCompilation<*>, KotlinTargetType : KotlinOnlyTarget<KotlinCompilationType>>(
|
||||||
createDefaultSourceSets: Boolean,
|
createDefaultSourceSets: Boolean,
|
||||||
createTestCompilation: Boolean,
|
createTestCompilation: Boolean
|
||||||
val kotlinPluginVersion: String
|
|
||||||
) : AbstractKotlinTargetConfigurator<KotlinTargetType>(
|
) : AbstractKotlinTargetConfigurator<KotlinTargetType>(
|
||||||
createDefaultSourceSets,
|
createDefaultSourceSets,
|
||||||
createTestCompilation
|
createTestCompilation
|
||||||
|
|||||||
+4
-3
@@ -20,8 +20,9 @@ class SubpluginEnvironment(
|
|||||||
private val kotlinPluginVersion: String
|
private val kotlinPluginVersion: String
|
||||||
) {
|
) {
|
||||||
companion object {
|
companion object {
|
||||||
fun loadSubplugins(project: Project, kotlinPluginVersion: String): SubpluginEnvironment =
|
fun loadSubplugins(project: Project): SubpluginEnvironment {
|
||||||
try {
|
val kotlinPluginVersion = project.getKotlinPluginVersion()
|
||||||
|
return try {
|
||||||
@Suppress("DEPRECATION") // support for the deprecated plugin API
|
@Suppress("DEPRECATION") // support for the deprecated plugin API
|
||||||
val klass = KotlinGradleSubplugin::class.java
|
val klass = KotlinGradleSubplugin::class.java
|
||||||
val buildscriptClassloader = project.buildscript.classLoader
|
val buildscriptClassloader = project.buildscript.classLoader
|
||||||
@@ -51,6 +52,7 @@ class SubpluginEnvironment(
|
|||||||
project.logger.error("Could not load subplugins", e)
|
project.logger.error("Could not load subplugins", e)
|
||||||
SubpluginEnvironment(listOf(), kotlinPluginVersion)
|
SubpluginEnvironment(listOf(), kotlinPluginVersion)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun addSubpluginOptions(
|
fun addSubpluginOptions(
|
||||||
@@ -136,7 +138,6 @@ internal class LegacyKotlinCompilerPluginSupportPlugin(
|
|||||||
|
|
||||||
val androidProjectHandlerOrNull: AbstractAndroidProjectHandler? = if (kotlinCompilation is KotlinJvmAndroidCompilation)
|
val androidProjectHandlerOrNull: AbstractAndroidProjectHandler? = if (kotlinCompilation is KotlinJvmAndroidCompilation)
|
||||||
KotlinAndroidPlugin.androidTargetHandler(
|
KotlinAndroidPlugin.androidTargetHandler(
|
||||||
checkNotNull(project.getKotlinPluginVersion()),
|
|
||||||
kotlinCompilation.target as KotlinAndroidTarget
|
kotlinCompilation.target as KotlinAndroidTarget
|
||||||
) else null
|
) else null
|
||||||
|
|
||||||
|
|||||||
+12
-17
@@ -44,9 +44,7 @@ import org.jetbrains.kotlin.konan.target.KonanTarget.*
|
|||||||
import org.jetbrains.kotlin.konan.target.presetName
|
import org.jetbrains.kotlin.konan.target.presetName
|
||||||
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
||||||
|
|
||||||
class KotlinMultiplatformPlugin(
|
class KotlinMultiplatformPlugin : Plugin<Project> {
|
||||||
private val kotlinPluginVersion: String
|
|
||||||
) : Plugin<Project> {
|
|
||||||
|
|
||||||
private class TargetFromPresetExtension(val targetsContainer: KotlinTargetsContainerWithPresets) {
|
private class TargetFromPresetExtension(val targetsContainer: KotlinTargetsContainerWithPresets) {
|
||||||
fun <T : KotlinTarget> fromPreset(preset: KotlinTargetPreset<T>, name: String, configureClosure: Closure<*>): T =
|
fun <T : KotlinTarget> fromPreset(preset: KotlinTargetPreset<T>, name: String, configureClosure: Closure<*>): T =
|
||||||
@@ -93,7 +91,7 @@ class KotlinMultiplatformPlugin(
|
|||||||
|
|
||||||
// set up metadata publishing
|
// set up metadata publishing
|
||||||
targetsFromPreset.fromPreset(
|
targetsFromPreset.fromPreset(
|
||||||
KotlinMetadataTargetPreset(project, kotlinPluginVersion),
|
KotlinMetadataTargetPreset(project),
|
||||||
METADATA_TARGET_NAME
|
METADATA_TARGET_NAME
|
||||||
)
|
)
|
||||||
configurePublishingWithMavenPublish(project)
|
configurePublishingWithMavenPublish(project)
|
||||||
@@ -176,20 +174,17 @@ class KotlinMultiplatformPlugin(
|
|||||||
|
|
||||||
fun setupDefaultPresets(project: Project) {
|
fun setupDefaultPresets(project: Project) {
|
||||||
with(project.multiplatformExtension.presets) {
|
with(project.multiplatformExtension.presets) {
|
||||||
add(KotlinJvmTargetPreset(project, kotlinPluginVersion))
|
add(KotlinJvmTargetPreset(project))
|
||||||
add(KotlinJsTargetPreset(project, kotlinPluginVersion).apply { irPreset = null })
|
add(KotlinJsTargetPreset(project).apply { irPreset = null })
|
||||||
add(KotlinJsIrTargetPreset(project, kotlinPluginVersion).apply { mixedMode = false })
|
add(KotlinJsIrTargetPreset(project).apply { mixedMode = false })
|
||||||
add(
|
add(
|
||||||
KotlinJsTargetPreset(
|
KotlinJsTargetPreset(project).apply {
|
||||||
project,
|
irPreset = KotlinJsIrTargetPreset(project)
|
||||||
kotlinPluginVersion
|
|
||||||
).apply {
|
|
||||||
irPreset = KotlinJsIrTargetPreset(project, kotlinPluginVersion)
|
|
||||||
.apply { mixedMode = true }
|
.apply { mixedMode = true }
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
add(KotlinAndroidTargetPreset(project, kotlinPluginVersion))
|
add(KotlinAndroidTargetPreset(project))
|
||||||
add(KotlinJvmWithJavaTargetPreset(project, kotlinPluginVersion))
|
add(KotlinJvmWithJavaTargetPreset(project))
|
||||||
|
|
||||||
// Note: modifying these sets should also be reflected in the DSL code generator, see 'presetEntries.kt'
|
// Note: modifying these sets should also be reflected in the DSL code generator, see 'presetEntries.kt'
|
||||||
val nativeTargetsWithHostTests = setOf(LINUX_X64, MACOS_X64, MINGW_X64)
|
val nativeTargetsWithHostTests = setOf(LINUX_X64, MACOS_X64, MINGW_X64)
|
||||||
@@ -199,10 +194,10 @@ class KotlinMultiplatformPlugin(
|
|||||||
.forEach { (_, konanTarget) ->
|
.forEach { (_, konanTarget) ->
|
||||||
val targetToAdd = when (konanTarget) {
|
val targetToAdd = when (konanTarget) {
|
||||||
in nativeTargetsWithHostTests ->
|
in nativeTargetsWithHostTests ->
|
||||||
KotlinNativeTargetWithHostTestsPreset(konanTarget.presetName, project, konanTarget, kotlinPluginVersion)
|
KotlinNativeTargetWithHostTestsPreset(konanTarget.presetName, project, konanTarget)
|
||||||
in nativeTargetsWithSimulatorTests ->
|
in nativeTargetsWithSimulatorTests ->
|
||||||
KotlinNativeTargetWithSimulatorTestsPreset(konanTarget.presetName, project, konanTarget, kotlinPluginVersion)
|
KotlinNativeTargetWithSimulatorTestsPreset(konanTarget.presetName, project, konanTarget)
|
||||||
else -> KotlinNativeTargetPreset(konanTarget.presetName, project, konanTarget, kotlinPluginVersion)
|
else -> KotlinNativeTargetPreset(konanTarget.presetName, project, konanTarget)
|
||||||
}
|
}
|
||||||
|
|
||||||
add(targetToAdd)
|
add(targetToAdd)
|
||||||
|
|||||||
+1
-2
@@ -12,8 +12,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformType
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset
|
||||||
|
|
||||||
abstract class KotlinOnlyTargetPreset<R : KotlinOnlyTarget<T>, T : KotlinCompilation<*>>(
|
abstract class KotlinOnlyTargetPreset<R : KotlinOnlyTarget<T>, T : KotlinCompilation<*>>(
|
||||||
protected val project: Project,
|
protected val project: Project
|
||||||
protected val kotlinPluginVersion: String
|
|
||||||
) : KotlinTargetPreset<R> {
|
) : KotlinTargetPreset<R> {
|
||||||
|
|
||||||
protected abstract fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<T, R>
|
protected abstract fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<T, R>
|
||||||
|
|||||||
+2
-2
@@ -72,7 +72,7 @@ open class KotlinAndroidTarget(
|
|||||||
}
|
}
|
||||||
|
|
||||||
val variantNames =
|
val variantNames =
|
||||||
KotlinAndroidPlugin.androidTargetHandler(project.getKotlinPluginVersion()!!, this)
|
KotlinAndroidPlugin.androidTargetHandler(this)
|
||||||
.getLibraryVariantNames()
|
.getLibraryVariantNames()
|
||||||
|
|
||||||
val missingVariants =
|
val missingVariants =
|
||||||
@@ -90,7 +90,7 @@ open class KotlinAndroidTarget(
|
|||||||
override val kotlinComponents by lazy {
|
override val kotlinComponents by lazy {
|
||||||
checkPublishLibraryVariantsExist()
|
checkPublishLibraryVariantsExist()
|
||||||
|
|
||||||
KotlinAndroidPlugin.androidTargetHandler(project.getKotlinPluginVersion()!!, this).doCreateComponents()
|
KotlinAndroidPlugin.androidTargetHandler(this).doCreateComponents()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isVariantPublished(variant: BaseVariant): Boolean {
|
private fun isVariantPublished(variant: BaseVariant): Boolean {
|
||||||
|
|||||||
+2
-3
@@ -11,8 +11,7 @@ import org.jetbrains.kotlin.gradle.plugin.KotlinAndroidPlugin
|
|||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset
|
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset
|
||||||
|
|
||||||
class KotlinAndroidTargetPreset(
|
class KotlinAndroidTargetPreset(
|
||||||
private val project: Project,
|
private val project: Project
|
||||||
private val kotlinPluginVersion: String
|
|
||||||
) : KotlinTargetPreset<KotlinAndroidTarget> {
|
) : KotlinTargetPreset<KotlinAndroidTarget> {
|
||||||
|
|
||||||
override fun getName(): String = PRESET_NAME
|
override fun getName(): String = PRESET_NAME
|
||||||
@@ -23,7 +22,7 @@ class KotlinAndroidTargetPreset(
|
|||||||
preset = this@KotlinAndroidTargetPreset
|
preset = this@KotlinAndroidTargetPreset
|
||||||
}
|
}
|
||||||
|
|
||||||
KotlinAndroidPlugin.applyToTarget(kotlinPluginVersion, result)
|
KotlinAndroidPlugin.applyToTarget(result)
|
||||||
return result
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -42,8 +42,8 @@ open class KotlinJsPlugin(
|
|||||||
customizeKotlinDependencies(project)
|
customizeKotlinDependencies(project)
|
||||||
|
|
||||||
kotlinExtension.apply {
|
kotlinExtension.apply {
|
||||||
irPreset = KotlinJsIrSingleTargetPreset(project, kotlinPluginVersion)
|
irPreset = KotlinJsIrSingleTargetPreset(project)
|
||||||
legacyPreset = KotlinJsSingleTargetPreset(project, kotlinPluginVersion)
|
legacyPreset = KotlinJsSingleTargetPreset(project)
|
||||||
defaultJsCompilerType = PropertiesProvider(project).jsCompiler
|
defaultJsCompilerType = PropertiesProvider(project).jsCompiler
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -20,8 +20,8 @@ import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
|||||||
import org.jetbrains.kotlin.gradle.testing.testTaskName
|
import org.jetbrains.kotlin.gradle.testing.testTaskName
|
||||||
import java.util.concurrent.Callable
|
import java.util.concurrent.Callable
|
||||||
|
|
||||||
open class KotlinJsTargetConfigurator(kotlinPluginVersion: String) :
|
open class KotlinJsTargetConfigurator :
|
||||||
KotlinOnlyTargetConfigurator<KotlinJsCompilation, KotlinJsTarget>(true, true, kotlinPluginVersion),
|
KotlinOnlyTargetConfigurator<KotlinJsCompilation, KotlinJsTarget>(true, true),
|
||||||
KotlinTargetWithTestsConfigurator<KotlinJsReportAggregatingTestRun, KotlinJsTarget> {
|
KotlinTargetWithTestsConfigurator<KotlinJsReportAggregatingTestRun, KotlinJsTarget> {
|
||||||
|
|
||||||
override val testRunClass: Class<KotlinJsReportAggregatingTestRun> get() = KotlinJsReportAggregatingTestRun::class.java
|
override val testRunClass: Class<KotlinJsReportAggregatingTestRun> get() = KotlinJsReportAggregatingTestRun::class.java
|
||||||
@@ -51,7 +51,7 @@ open class KotlinJsTargetConfigurator(kotlinPluginVersion: String) :
|
|||||||
|
|
||||||
override fun buildCompilationProcessor(compilation: KotlinJsCompilation): KotlinSourceSetProcessor<*> {
|
override fun buildCompilationProcessor(compilation: KotlinJsCompilation): KotlinSourceSetProcessor<*> {
|
||||||
val tasksProvider = KotlinTasksProvider()
|
val tasksProvider = KotlinTasksProvider()
|
||||||
return Kotlin2JsSourceSetProcessor(tasksProvider, compilation, kotlinPluginVersion)
|
return Kotlin2JsSourceSetProcessor(tasksProvider, compilation)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun configureCompilationDefaults(target: KotlinJsTarget) {
|
override fun configureCompilationDefaults(target: KotlinJsTarget) {
|
||||||
|
|||||||
+6
-14
@@ -18,11 +18,9 @@ import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
|||||||
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
import org.jetbrains.kotlin.statistics.metrics.StringMetrics
|
||||||
|
|
||||||
open class KotlinJsTargetPreset(
|
open class KotlinJsTargetPreset(
|
||||||
project: Project,
|
project: Project
|
||||||
kotlinPluginVersion: String
|
|
||||||
) : KotlinOnlyTargetPreset<KotlinJsTarget, KotlinJsCompilation>(
|
) : KotlinOnlyTargetPreset<KotlinJsTarget, KotlinJsCompilation>(
|
||||||
project,
|
project
|
||||||
kotlinPluginVersion
|
|
||||||
) {
|
) {
|
||||||
var irPreset: KotlinJsIrTargetPreset? = null
|
var irPreset: KotlinJsIrTargetPreset? = null
|
||||||
internal set
|
internal set
|
||||||
@@ -84,9 +82,7 @@ open class KotlinJsTargetPreset(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createKotlinTargetConfigurator() = KotlinJsTargetConfigurator(
|
override fun createKotlinTargetConfigurator() = KotlinJsTargetConfigurator()
|
||||||
kotlinPluginVersion
|
|
||||||
)
|
|
||||||
|
|
||||||
override fun getName(): String {
|
override fun getName(): String {
|
||||||
return lowerCamelCaseName(
|
return lowerCamelCaseName(
|
||||||
@@ -105,11 +101,9 @@ open class KotlinJsTargetPreset(
|
|||||||
}
|
}
|
||||||
|
|
||||||
class KotlinJsSingleTargetPreset(
|
class KotlinJsSingleTargetPreset(
|
||||||
project: Project,
|
project: Project
|
||||||
kotlinPluginVersion: String
|
|
||||||
) : KotlinJsTargetPreset(
|
) : KotlinJsTargetPreset(
|
||||||
project,
|
project
|
||||||
kotlinPluginVersion
|
|
||||||
) {
|
) {
|
||||||
override val isMpp: Boolean
|
override val isMpp: Boolean
|
||||||
get() = false
|
get() = false
|
||||||
@@ -125,7 +119,5 @@ class KotlinJsSingleTargetPreset(
|
|||||||
?.decapitalize()
|
?.decapitalize()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createKotlinTargetConfigurator() = KotlinJsTargetConfigurator(
|
override fun createKotlinTargetConfigurator() = KotlinJsTargetConfigurator()
|
||||||
kotlinPluginVersion
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -21,8 +21,8 @@ import org.jetbrains.kotlin.gradle.utils.isParentOf
|
|||||||
import org.jetbrains.kotlin.gradle.utils.klibModuleName
|
import org.jetbrains.kotlin.gradle.utils.klibModuleName
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) :
|
open class KotlinJsIrTargetConfigurator() :
|
||||||
KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget>(true, true, kotlinPluginVersion),
|
KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget>(true, true),
|
||||||
KotlinTargetWithTestsConfigurator<KotlinJsReportAggregatingTestRun, KotlinJsIrTarget> {
|
KotlinTargetWithTestsConfigurator<KotlinJsReportAggregatingTestRun, KotlinJsIrTarget> {
|
||||||
|
|
||||||
override val testRunClass: Class<KotlinJsReportAggregatingTestRun> get() = KotlinJsReportAggregatingTestRun::class.java
|
override val testRunClass: Class<KotlinJsReportAggregatingTestRun> get() = KotlinJsReportAggregatingTestRun::class.java
|
||||||
@@ -55,7 +55,7 @@ open class KotlinJsIrTargetConfigurator(kotlinPluginVersion: String) :
|
|||||||
|
|
||||||
override fun buildCompilationProcessor(compilation: KotlinJsIrCompilation): KotlinSourceSetProcessor<*> {
|
override fun buildCompilationProcessor(compilation: KotlinJsIrCompilation): KotlinSourceSetProcessor<*> {
|
||||||
val tasksProvider = KotlinTasksProvider()
|
val tasksProvider = KotlinTasksProvider()
|
||||||
return KotlinJsIrSourceSetProcessor(tasksProvider, compilation, kotlinPluginVersion)
|
return KotlinJsIrSourceSetProcessor(tasksProvider, compilation)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createArchiveTasks(target: KotlinJsIrTarget): TaskProvider<out Zip> {
|
override fun createArchiveTasks(target: KotlinJsIrTarget): TaskProvider<out Zip> {
|
||||||
|
|||||||
+6
-10
@@ -13,11 +13,9 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinOnlyTargetPreset
|
|||||||
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
|
||||||
|
|
||||||
open class KotlinJsIrTargetPreset(
|
open class KotlinJsIrTargetPreset(
|
||||||
project: Project,
|
project: Project
|
||||||
kotlinPluginVersion: String
|
|
||||||
) : KotlinOnlyTargetPreset<KotlinJsIrTarget, KotlinJsIrCompilation>(
|
) : KotlinOnlyTargetPreset<KotlinJsIrTarget, KotlinJsIrCompilation>(
|
||||||
project,
|
project
|
||||||
kotlinPluginVersion
|
|
||||||
) {
|
) {
|
||||||
internal var mixedMode: Boolean? = null
|
internal var mixedMode: Boolean? = null
|
||||||
|
|
||||||
@@ -53,7 +51,7 @@ open class KotlinJsIrTargetPreset(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget> =
|
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget> =
|
||||||
KotlinJsIrTargetConfigurator(kotlinPluginVersion)
|
KotlinJsIrTargetConfigurator()
|
||||||
|
|
||||||
override fun getName(): String = PRESET_NAME
|
override fun getName(): String = PRESET_NAME
|
||||||
|
|
||||||
@@ -72,11 +70,9 @@ open class KotlinJsIrTargetPreset(
|
|||||||
}
|
}
|
||||||
|
|
||||||
class KotlinJsIrSingleTargetPreset(
|
class KotlinJsIrSingleTargetPreset(
|
||||||
project: Project,
|
project: Project
|
||||||
kotlinPluginVersion: String
|
|
||||||
) : KotlinJsIrTargetPreset(
|
) : KotlinJsIrTargetPreset(
|
||||||
project,
|
project
|
||||||
kotlinPluginVersion
|
|
||||||
) {
|
) {
|
||||||
override val isMpp: Boolean
|
override val isMpp: Boolean
|
||||||
get() = false
|
get() = false
|
||||||
@@ -93,5 +89,5 @@ class KotlinJsIrSingleTargetPreset(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget> =
|
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<KotlinJsIrCompilation, KotlinJsIrTarget> =
|
||||||
KotlinJsIrTargetConfigurator(kotlinPluginVersion)
|
KotlinJsIrTargetConfigurator()
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -19,8 +19,8 @@ import org.jetbrains.kotlin.gradle.tasks.registerTask
|
|||||||
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
import org.jetbrains.kotlin.gradle.testing.internal.kotlinTestRegistry
|
||||||
import org.jetbrains.kotlin.gradle.testing.testTaskName
|
import org.jetbrains.kotlin.gradle.testing.testTaskName
|
||||||
|
|
||||||
class KotlinJvmTargetConfigurator(kotlinPluginVersion: String) :
|
class KotlinJvmTargetConfigurator :
|
||||||
KotlinOnlyTargetConfigurator<KotlinJvmCompilation, KotlinJvmTarget>(true, true, kotlinPluginVersion),
|
KotlinOnlyTargetConfigurator<KotlinJvmCompilation, KotlinJvmTarget>(true, true),
|
||||||
KotlinTargetWithTestsConfigurator<KotlinJvmTestRun, KotlinJvmTarget> {
|
KotlinTargetWithTestsConfigurator<KotlinJvmTestRun, KotlinJvmTarget> {
|
||||||
|
|
||||||
override fun configurePlatformSpecificModel(target: KotlinJvmTarget) {
|
override fun configurePlatformSpecificModel(target: KotlinJvmTarget) {
|
||||||
@@ -74,6 +74,6 @@ class KotlinJvmTargetConfigurator(kotlinPluginVersion: String) :
|
|||||||
|
|
||||||
override fun buildCompilationProcessor(compilation: KotlinJvmCompilation): KotlinSourceSetProcessor<*> {
|
override fun buildCompilationProcessor(compilation: KotlinJvmCompilation): KotlinSourceSetProcessor<*> {
|
||||||
val tasksProvider = KotlinTasksProvider()
|
val tasksProvider = KotlinTasksProvider()
|
||||||
return Kotlin2JvmSourceSetProcessor(tasksProvider, compilation, kotlinPluginVersion)
|
return Kotlin2JvmSourceSetProcessor(tasksProvider, compilation)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-5
@@ -12,11 +12,9 @@ import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTarget
|
|||||||
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTargetConfigurator
|
import org.jetbrains.kotlin.gradle.targets.jvm.KotlinJvmTargetConfigurator
|
||||||
|
|
||||||
class KotlinJvmTargetPreset(
|
class KotlinJvmTargetPreset(
|
||||||
project: Project,
|
project: Project
|
||||||
kotlinPluginVersion: String
|
|
||||||
) : KotlinOnlyTargetPreset<KotlinJvmTarget, KotlinJvmCompilation>(
|
) : KotlinOnlyTargetPreset<KotlinJvmTarget, KotlinJvmCompilation>(
|
||||||
project,
|
project
|
||||||
kotlinPluginVersion
|
|
||||||
) {
|
) {
|
||||||
override fun instantiateTarget(name: String): KotlinJvmTarget {
|
override fun instantiateTarget(name: String): KotlinJvmTarget {
|
||||||
return project.objects.newInstance(KotlinJvmTarget::class.java, project)
|
return project.objects.newInstance(KotlinJvmTarget::class.java, project)
|
||||||
@@ -27,7 +25,7 @@ class KotlinJvmTargetPreset(
|
|||||||
override fun createCompilationFactory(forTarget: KotlinJvmTarget): KotlinCompilationFactory<KotlinJvmCompilation> =
|
override fun createCompilationFactory(forTarget: KotlinJvmTarget): KotlinCompilationFactory<KotlinJvmCompilation> =
|
||||||
KotlinJvmCompilationFactory(forTarget)
|
KotlinJvmCompilationFactory(forTarget)
|
||||||
|
|
||||||
override fun createKotlinTargetConfigurator() = KotlinJvmTargetConfigurator(kotlinPluginVersion)
|
override fun createKotlinTargetConfigurator() = KotlinJvmTargetConfigurator()
|
||||||
|
|
||||||
override val platformType: KotlinPlatformType
|
override val platformType: KotlinPlatformType
|
||||||
get() = KotlinPlatformType.jvm
|
get() = KotlinPlatformType.jvm
|
||||||
|
|||||||
+2
-3
@@ -16,8 +16,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
|
|||||||
import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild
|
import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild
|
||||||
|
|
||||||
class KotlinJvmWithJavaTargetPreset(
|
class KotlinJvmWithJavaTargetPreset(
|
||||||
private val project: Project,
|
private val project: Project
|
||||||
private val kotlinPluginVersion: String
|
|
||||||
) : KotlinTargetPreset<KotlinWithJavaTarget<KotlinJvmOptions>> {
|
) : KotlinTargetPreset<KotlinWithJavaTarget<KotlinJvmOptions>> {
|
||||||
|
|
||||||
override fun getName(): String = PRESET_NAME
|
override fun getName(): String = PRESET_NAME
|
||||||
@@ -36,7 +35,7 @@ class KotlinJvmWithJavaTargetPreset(
|
|||||||
}
|
}
|
||||||
|
|
||||||
AbstractKotlinPlugin.configureTarget(target) { compilation ->
|
AbstractKotlinPlugin.configureTarget(target) { compilation ->
|
||||||
Kotlin2JvmSourceSetProcessor(KotlinTasksProvider(), compilation, kotlinPluginVersion)
|
Kotlin2JvmSourceSetProcessor(KotlinTasksProvider(), compilation)
|
||||||
}
|
}
|
||||||
|
|
||||||
target.compilations.getByName("test").run {
|
target.compilations.getByName("test").run {
|
||||||
|
|||||||
+4
-10
@@ -47,11 +47,10 @@ internal val Project.isKotlinGranularMetadataEnabled: Boolean
|
|||||||
internal val Project.isCompatibilityMetadataVariantEnabled: Boolean
|
internal val Project.isCompatibilityMetadataVariantEnabled: Boolean
|
||||||
get() = PropertiesProvider(this).enableCompatibilityMetadataVariant == true
|
get() = PropertiesProvider(this).enableCompatibilityMetadataVariant == true
|
||||||
|
|
||||||
class KotlinMetadataTargetConfigurator(kotlinPluginVersion: String) :
|
class KotlinMetadataTargetConfigurator :
|
||||||
KotlinOnlyTargetConfigurator<AbstractKotlinCompilation<*>, KotlinMetadataTarget>(
|
KotlinOnlyTargetConfigurator<AbstractKotlinCompilation<*>, KotlinMetadataTarget>(
|
||||||
createDefaultSourceSets = false,
|
createDefaultSourceSets = false,
|
||||||
createTestCompilation = false,
|
createTestCompilation = false
|
||||||
kotlinPluginVersion = kotlinPluginVersion
|
|
||||||
) {
|
) {
|
||||||
companion object {
|
companion object {
|
||||||
internal const val ALL_METADATA_JAR_NAME = "allMetadataJar"
|
internal const val ALL_METADATA_JAR_NAME = "allMetadataJar"
|
||||||
@@ -115,7 +114,7 @@ class KotlinMetadataTargetConfigurator(kotlinPluginVersion: String) :
|
|||||||
override fun buildCompilationProcessor(compilation: AbstractKotlinCompilation<*>): KotlinCompilationProcessor<*> = when (compilation) {
|
override fun buildCompilationProcessor(compilation: AbstractKotlinCompilation<*>): KotlinCompilationProcessor<*> = when (compilation) {
|
||||||
is KotlinCommonCompilation -> {
|
is KotlinCommonCompilation -> {
|
||||||
val tasksProvider = KotlinTasksProvider()
|
val tasksProvider = KotlinTasksProvider()
|
||||||
KotlinCommonSourceSetProcessor(compilation, tasksProvider, kotlinPluginVersion)
|
KotlinCommonSourceSetProcessor(compilation, tasksProvider)
|
||||||
}
|
}
|
||||||
is KotlinSharedNativeCompilation -> NativeSharedCompilationProcessor(compilation)
|
is KotlinSharedNativeCompilation -> NativeSharedCompilationProcessor(compilation)
|
||||||
else -> error("unsupported compilation type ${compilation::class.qualifiedName}")
|
else -> error("unsupported compilation type ${compilation::class.qualifiedName}")
|
||||||
@@ -478,13 +477,8 @@ internal class NativeSharedCompilationProcessor(
|
|||||||
override val kotlinCompilation: KotlinNativeFragmentMetadataCompilationData
|
override val kotlinCompilation: KotlinNativeFragmentMetadataCompilationData
|
||||||
) : KotlinCompilationProcessor<KotlinNativeCompile>(kotlinCompilation) {
|
) : KotlinCompilationProcessor<KotlinNativeCompile>(kotlinCompilation) {
|
||||||
|
|
||||||
private val nativeTargetConfigurator =
|
|
||||||
KotlinNativeTargetConfigurator<KotlinNativeTarget>(kotlinCompilation.project.getKotlinPluginVersion() ?: "" /*FIXME*/)
|
|
||||||
|
|
||||||
override val kotlinTask: TaskProvider<out KotlinNativeCompile> =
|
override val kotlinTask: TaskProvider<out KotlinNativeCompile> =
|
||||||
with(nativeTargetConfigurator) {
|
KotlinNativeTargetConfigurator.createKlibCompilationTask(kotlinCompilation)
|
||||||
KotlinNativeTargetConfigurator.createKlibCompilationTask(kotlinCompilation)
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun run() = Unit
|
override fun run() = Unit
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-7
@@ -13,12 +13,8 @@ import org.jetbrains.kotlin.gradle.plugin.sources.applyLanguageSettingsToKotlinO
|
|||||||
import org.jetbrains.kotlin.gradle.targets.metadata.KotlinMetadataTargetConfigurator
|
import org.jetbrains.kotlin.gradle.targets.metadata.KotlinMetadataTargetConfigurator
|
||||||
|
|
||||||
class KotlinMetadataTargetPreset(
|
class KotlinMetadataTargetPreset(
|
||||||
project: Project,
|
project: Project
|
||||||
kotlinPluginVersion: String
|
) : KotlinOnlyTargetPreset<KotlinMetadataTarget, AbstractKotlinCompilation<*>>(project) {
|
||||||
) : KotlinOnlyTargetPreset<KotlinMetadataTarget, AbstractKotlinCompilation<*>>(
|
|
||||||
project,
|
|
||||||
kotlinPluginVersion
|
|
||||||
) {
|
|
||||||
override fun getName(): String = PRESET_NAME
|
override fun getName(): String = PRESET_NAME
|
||||||
|
|
||||||
override fun createCompilationFactory(
|
override fun createCompilationFactory(
|
||||||
@@ -42,7 +38,7 @@ class KotlinMetadataTargetPreset(
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<AbstractKotlinCompilation<*>, KotlinMetadataTarget> =
|
override fun createKotlinTargetConfigurator(): KotlinOnlyTargetConfigurator<AbstractKotlinCompilation<*>, KotlinMetadataTarget> =
|
||||||
KotlinMetadataTargetConfigurator(kotlinPluginVersion)
|
KotlinMetadataTargetConfigurator()
|
||||||
|
|
||||||
override fun instantiateTarget(name: String): KotlinMetadataTarget {
|
override fun instantiateTarget(name: String): KotlinMetadataTarget {
|
||||||
return project.objects.newInstance(KotlinMetadataTarget::class.java, project)
|
return project.objects.newInstance(KotlinMetadataTarget::class.java, project)
|
||||||
|
|||||||
+7
-14
@@ -46,9 +46,7 @@ import org.jetbrains.kotlin.konan.target.HostManager
|
|||||||
import org.jetbrains.kotlin.konan.target.KonanTarget
|
import org.jetbrains.kotlin.konan.target.KonanTarget
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget>(
|
open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget> : AbstractKotlinTargetConfigurator<T>(
|
||||||
private val kotlinPluginVersion: String
|
|
||||||
) : AbstractKotlinTargetConfigurator<T>(
|
|
||||||
createDefaultSourceSets = true,
|
createDefaultSourceSets = true,
|
||||||
createTestCompilation = true
|
createTestCompilation = true
|
||||||
) {
|
) {
|
||||||
@@ -501,7 +499,7 @@ open class KotlinNativeTargetConfigurator<T : KotlinNativeTarget>(
|
|||||||
|
|
||||||
project.whenEvaluated {
|
project.whenEvaluated {
|
||||||
SubpluginEnvironment
|
SubpluginEnvironment
|
||||||
.loadSubplugins(project, project.getKotlinPluginVersion() ?: "unspecified" /* TODO */)
|
.loadSubplugins(project)
|
||||||
.addSubpluginOptions(project, compilation)
|
.addSubpluginOptions(project, compilation)
|
||||||
|
|
||||||
compilation.compileKotlinTaskProvider.configure {
|
compilation.compileKotlinTaskProvider.configure {
|
||||||
@@ -573,8 +571,7 @@ abstract class KotlinNativeTargetWithTestsConfigurator<
|
|||||||
TargetType : KotlinNativeTargetWithTests<TestRunType>,
|
TargetType : KotlinNativeTargetWithTests<TestRunType>,
|
||||||
TestRunType : KotlinNativeBinaryTestRun,
|
TestRunType : KotlinNativeBinaryTestRun,
|
||||||
TaskType : KotlinNativeTest>(
|
TaskType : KotlinNativeTest>(
|
||||||
kotlinPluginVersion: String
|
) : KotlinNativeTargetConfigurator<TargetType>(),
|
||||||
) : KotlinNativeTargetConfigurator<TargetType>(kotlinPluginVersion),
|
|
||||||
KotlinTargetWithTestsConfigurator<TestRunType, TargetType> {
|
KotlinTargetWithTestsConfigurator<TestRunType, TargetType> {
|
||||||
|
|
||||||
abstract val testTaskClass: Class<TaskType>
|
abstract val testTaskClass: Class<TaskType>
|
||||||
@@ -610,13 +607,11 @@ abstract class KotlinNativeTargetWithTestsConfigurator<
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class KotlinNativeTargetWithHostTestsConfigurator(kotlinPluginVersion: String) :
|
class KotlinNativeTargetWithHostTestsConfigurator() :
|
||||||
KotlinNativeTargetWithTestsConfigurator<
|
KotlinNativeTargetWithTestsConfigurator<
|
||||||
KotlinNativeTargetWithHostTests,
|
KotlinNativeTargetWithHostTests,
|
||||||
KotlinNativeHostTestRun,
|
KotlinNativeHostTestRun,
|
||||||
KotlinNativeHostTest>(
|
KotlinNativeHostTest>() {
|
||||||
kotlinPluginVersion
|
|
||||||
) {
|
|
||||||
|
|
||||||
override val testTaskClass: Class<KotlinNativeHostTest>
|
override val testTaskClass: Class<KotlinNativeHostTest>
|
||||||
get() = KotlinNativeHostTest::class.java
|
get() = KotlinNativeHostTest::class.java
|
||||||
@@ -634,13 +629,11 @@ class KotlinNativeTargetWithHostTestsConfigurator(kotlinPluginVersion: String) :
|
|||||||
DefaultHostTestRun(name, target).apply { configureTestRun(target, this) }
|
DefaultHostTestRun(name, target).apply { configureTestRun(target, this) }
|
||||||
}
|
}
|
||||||
|
|
||||||
class KotlinNativeTargetWithSimulatorTestsConfigurator(kotlinPluginVersion: String) :
|
class KotlinNativeTargetWithSimulatorTestsConfigurator :
|
||||||
KotlinNativeTargetWithTestsConfigurator<
|
KotlinNativeTargetWithTestsConfigurator<
|
||||||
KotlinNativeTargetWithSimulatorTests,
|
KotlinNativeTargetWithSimulatorTests,
|
||||||
KotlinNativeSimulatorTestRun,
|
KotlinNativeSimulatorTestRun,
|
||||||
KotlinNativeSimulatorTest>(
|
KotlinNativeSimulatorTest>() {
|
||||||
kotlinPluginVersion
|
|
||||||
) {
|
|
||||||
|
|
||||||
override val testTaskClass: Class<KotlinNativeSimulatorTest>
|
override val testTaskClass: Class<KotlinNativeSimulatorTest>
|
||||||
get() = KotlinNativeSimulatorTest::class.java
|
get() = KotlinNativeSimulatorTest::class.java
|
||||||
|
|||||||
+10
-11
@@ -26,8 +26,7 @@ import org.jetbrains.kotlin.konan.target.KonanTarget
|
|||||||
abstract class AbstractKotlinNativeTargetPreset<T : KotlinNativeTarget>(
|
abstract class AbstractKotlinNativeTargetPreset<T : KotlinNativeTarget>(
|
||||||
private val name: String,
|
private val name: String,
|
||||||
val project: Project,
|
val project: Project,
|
||||||
val konanTarget: KonanTarget,
|
val konanTarget: KonanTarget
|
||||||
protected val kotlinPluginVersion: String
|
|
||||||
) : KotlinTargetPreset<T> {
|
) : KotlinTargetPreset<T> {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
@@ -108,32 +107,32 @@ abstract class AbstractKotlinNativeTargetPreset<T : KotlinNativeTarget>(
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
open class KotlinNativeTargetPreset(name: String, project: Project, konanTarget: KonanTarget, kotlinPluginVersion: String) :
|
open class KotlinNativeTargetPreset(name: String, project: Project, konanTarget: KonanTarget) :
|
||||||
AbstractKotlinNativeTargetPreset<KotlinNativeTarget>(name, project, konanTarget, kotlinPluginVersion) {
|
AbstractKotlinNativeTargetPreset<KotlinNativeTarget>(name, project, konanTarget) {
|
||||||
|
|
||||||
override fun createTargetConfigurator(): KotlinTargetConfigurator<KotlinNativeTarget> =
|
override fun createTargetConfigurator(): KotlinTargetConfigurator<KotlinNativeTarget> =
|
||||||
KotlinNativeTargetConfigurator(kotlinPluginVersion)
|
KotlinNativeTargetConfigurator()
|
||||||
|
|
||||||
override fun instantiateTarget(name: String): KotlinNativeTarget {
|
override fun instantiateTarget(name: String): KotlinNativeTarget {
|
||||||
return project.objects.newInstance(KotlinNativeTarget::class.java, project, konanTarget)
|
return project.objects.newInstance(KotlinNativeTarget::class.java, project, konanTarget)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
open class KotlinNativeTargetWithHostTestsPreset(name: String, project: Project, konanTarget: KonanTarget, kotlinPluginVersion: String) :
|
open class KotlinNativeTargetWithHostTestsPreset(name: String, project: Project, konanTarget: KonanTarget) :
|
||||||
AbstractKotlinNativeTargetPreset<KotlinNativeTargetWithHostTests>(name, project, konanTarget, kotlinPluginVersion) {
|
AbstractKotlinNativeTargetPreset<KotlinNativeTargetWithHostTests>(name, project, konanTarget) {
|
||||||
|
|
||||||
override fun createTargetConfigurator(): KotlinNativeTargetWithHostTestsConfigurator =
|
override fun createTargetConfigurator(): KotlinNativeTargetWithHostTestsConfigurator =
|
||||||
KotlinNativeTargetWithHostTestsConfigurator(kotlinPluginVersion)
|
KotlinNativeTargetWithHostTestsConfigurator()
|
||||||
|
|
||||||
override fun instantiateTarget(name: String): KotlinNativeTargetWithHostTests =
|
override fun instantiateTarget(name: String): KotlinNativeTargetWithHostTests =
|
||||||
project.objects.newInstance(KotlinNativeTargetWithHostTests::class.java, project, konanTarget)
|
project.objects.newInstance(KotlinNativeTargetWithHostTests::class.java, project, konanTarget)
|
||||||
}
|
}
|
||||||
|
|
||||||
open class KotlinNativeTargetWithSimulatorTestsPreset(name: String, project: Project, konanTarget: KonanTarget, kotlinPluginVersion: String) :
|
open class KotlinNativeTargetWithSimulatorTestsPreset(name: String, project: Project, konanTarget: KonanTarget) :
|
||||||
AbstractKotlinNativeTargetPreset<KotlinNativeTargetWithSimulatorTests>(name, project, konanTarget, kotlinPluginVersion) {
|
AbstractKotlinNativeTargetPreset<KotlinNativeTargetWithSimulatorTests>(name, project, konanTarget) {
|
||||||
|
|
||||||
override fun createTargetConfigurator(): KotlinNativeTargetWithSimulatorTestsConfigurator =
|
override fun createTargetConfigurator(): KotlinNativeTargetWithSimulatorTestsConfigurator =
|
||||||
KotlinNativeTargetWithSimulatorTestsConfigurator(kotlinPluginVersion)
|
KotlinNativeTargetWithSimulatorTestsConfigurator()
|
||||||
|
|
||||||
override fun instantiateTarget(name: String): KotlinNativeTargetWithSimulatorTests =
|
override fun instantiateTarget(name: String): KotlinNativeTargetWithSimulatorTests =
|
||||||
project.objects.newInstance(KotlinNativeTargetWithSimulatorTests::class.java, project, konanTarget)
|
project.objects.newInstance(KotlinNativeTargetWithSimulatorTests::class.java, project, konanTarget)
|
||||||
|
|||||||
+2
-4
@@ -23,6 +23,7 @@ import org.gradle.api.artifacts.ResolvedDependency
|
|||||||
import org.gradle.api.initialization.dsl.ScriptHandler
|
import org.gradle.api.initialization.dsl.ScriptHandler
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper
|
import org.jetbrains.kotlin.gradle.plugin.KotlinBasePluginWrapper
|
||||||
import org.jetbrains.kotlin.gradle.plugin.KotlinPlugin
|
import org.jetbrains.kotlin.gradle.plugin.KotlinPlugin
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
|
||||||
import java.io.File
|
import java.io.File
|
||||||
import java.net.URLClassLoader
|
import java.net.URLClassLoader
|
||||||
import java.net.URLDecoder
|
import java.net.URLDecoder
|
||||||
@@ -130,7 +131,7 @@ internal fun findJarByClass(klass: Class<*>): File? {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun findKotlinModuleJar(project: Project, expectedClassName: String, moduleId: String): List<File> {
|
private fun findKotlinModuleJar(project: Project, expectedClassName: String, moduleId: String): List<File> {
|
||||||
val pluginVersion = pluginVersionFromAppliedPlugin(project)
|
val pluginVersion = project.getKotlinPluginVersion()
|
||||||
|
|
||||||
val filesToCheck = sequenceOf(pluginVersion?.let { version -> getModuleFromClassLoader(moduleId, version) }) +
|
val filesToCheck = sequenceOf(pluginVersion?.let { version -> getModuleFromClassLoader(moduleId, version) }) +
|
||||||
Sequence { findPotentialModuleJars(project, moduleId).iterator() } //call the body only when queried
|
Sequence { findPotentialModuleJars(project, moduleId).iterator() } //call the body only when queried
|
||||||
@@ -138,9 +139,6 @@ private fun findKotlinModuleJar(project: Project, expectedClassName: String, mod
|
|||||||
return filesToCheck.filterNotNull().firstOrNull { it.hasEntry(entryToFind) }?.let { listOf(it) } ?: emptyList()
|
return filesToCheck.filterNotNull().firstOrNull { it.hasEntry(entryToFind) }?.let { listOf(it) } ?: emptyList()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun pluginVersionFromAppliedPlugin(project: Project): String? =
|
|
||||||
project.plugins.filterIsInstance<KotlinBasePluginWrapper>().firstOrNull()?.kotlinPluginVersion
|
|
||||||
|
|
||||||
private fun getModuleFromClassLoader(moduleId: String, moduleVersion: String): File? {
|
private fun getModuleFromClassLoader(moduleId: String, moduleVersion: String): File? {
|
||||||
val urlClassLoader = KotlinPlugin::class.java.classLoader as? URLClassLoader ?: return null
|
val urlClassLoader = KotlinPlugin::class.java.classLoader as? URLClassLoader ?: return null
|
||||||
return urlClassLoader.urLs
|
return urlClassLoader.urLs
|
||||||
|
|||||||
Reference in New Issue
Block a user