[Commonizer] Implement :native:kotlin-klib-commonizer:api with support for library commonization
- Implement new Gradle module ':native:kotlin-klib-commonizer' - Implement new NativeKlibCommonize task - Implement CommonizerTarget.identityString
This commit is contained in:
committed by
Space
parent
6d019d9544
commit
4500b6ce74
@@ -42,6 +42,7 @@ dependencies {
|
||||
|
||||
implementation(kotlinStdlib())
|
||||
implementation(project(":kotlin-util-klib"))
|
||||
implementation(project(":native:kotlin-klib-commonizer-api"))
|
||||
compileOnly(project(":kotlin-reflect-api"))
|
||||
compileOnly(project(":kotlin-android-extensions"))
|
||||
compileOnly(project(":kotlin-build-common"))
|
||||
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright 2010-2021 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.
|
||||
*/
|
||||
|
||||
@file:Suppress("FunctionName")
|
||||
|
||||
package org.jetbrains.kotlin.compilerRunner
|
||||
|
||||
import org.gradle.api.Project
|
||||
import org.jetbrains.kotlin.descriptors.commonizer.CliCommonizer
|
||||
|
||||
/**
|
||||
* Creates an instance of [CliCommonizer] that is backed by [KotlinNativeCommonizerToolRunner] to adhere to user defined settings
|
||||
* when executing the commonizer (like jvm arguments, running in separate process, etc)
|
||||
*/
|
||||
internal fun GradleCliCommonizer(project: Project): CliCommonizer {
|
||||
return CliCommonizer(CliCommonizer.Executor { arguments ->
|
||||
KotlinNativeCommonizerToolRunner(project).run(arguments)
|
||||
})
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
|
||||
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
|
||||
import java.io.File
|
||||
|
||||
internal class KotlinNativeKlibCommonizerToolRunner(project: Project) : KotlinToolRunner(project) {
|
||||
internal class KotlinNativeCommonizerToolRunner(project: Project) : KotlinToolRunner(project) {
|
||||
override val displayName get() = "Kotlin/Native KLIB commonizer"
|
||||
|
||||
override val mainClass: String get() = "org.jetbrains.kotlin.descriptors.commonizer.cli.CommonizerCLI"
|
||||
+2
-3
@@ -8,7 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.native.internal
|
||||
import org.gradle.api.DefaultTask
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.api.tasks.*
|
||||
import org.jetbrains.kotlin.compilerRunner.KotlinNativeKlibCommonizerToolRunner
|
||||
import org.jetbrains.kotlin.compilerRunner.KotlinNativeCommonizerToolRunner
|
||||
import org.jetbrains.kotlin.compilerRunner.konanHome
|
||||
import org.jetbrains.kotlin.gradle.plugin.getKotlinPluginVersion
|
||||
import org.jetbrains.kotlin.gradle.targets.native.internal.SuccessMarker.Companion.getSuccessMarker
|
||||
@@ -24,7 +24,6 @@ import java.nio.file.*
|
||||
import java.nio.file.attribute.*
|
||||
import java.time.*
|
||||
import java.util.*
|
||||
import javax.inject.Inject
|
||||
|
||||
internal const val COMMONIZER_TASK_NAME = "runCommonizer"
|
||||
|
||||
@@ -190,7 +189,7 @@ internal fun Project.createTempNativeDistributionCommonizerOutputDirectory(targe
|
||||
fun callCommonizerCLI(project: Project, commandLineArguments: List<String>) {
|
||||
if (commandLineArguments.isEmpty()) return
|
||||
|
||||
KotlinNativeKlibCommonizerToolRunner(project).run(commandLineArguments)
|
||||
KotlinNativeCommonizerToolRunner(project).run(commandLineArguments)
|
||||
}
|
||||
|
||||
private fun renameDirectory(source: File, destination: File) {
|
||||
|
||||
Reference in New Issue
Block a user