Revert "Use kotlin-native-shared in the Gradle plugin"

This reverts commit c9ed648303.
This commit is contained in:
Ilya Matveev
2019-05-27 12:36:36 +03:00
parent 9a5c9a2180
commit cfb8e75829
12 changed files with 48 additions and 41 deletions
-1
View File
@@ -185,7 +185,6 @@ extra["versions.org.springframework"] = "4.2.0.RELEASE"
extra["versions.jflex"] = "1.7.0"
extra["versions.markdown"] = "0.1.25"
extra["versions.trove4j"] = "1.0.20181211"
extra["versions.kotlin-native-shared"] = "1.0-dev-96"
// NOTE: please, also change KTOR_NAME in pathUtil.kt and all versions in corresponding jar names in daemon tests.
extra["versions.ktor-network"] = "1.0.1"
-4
View File
@@ -99,11 +99,7 @@ val Project.protobufRepo: String
fun Project.protobufLite(): String = "org.jetbrains.kotlin:protobuf-lite:$protobufVersion"
fun Project.protobufFull(): String = "org.jetbrains.kotlin:protobuf-relocated:$protobufVersion"
val Project.kotlinNativeRepo: String
get() = "https://jetbrains.bintray.com/kotlin-native-dependencies"
val Project.kotlinNativeVersion: String get() = property("versions.kotlin-native") as String
val Project.kotlinNativeSharedVersion: String get() = property("versions.kotlin-native-shared") as String
fun File.matchMaybeVersionedArtifact(baseName: String) = name.matches(baseName.toMaybeVersionedJarRegex())
@@ -13,6 +13,7 @@ standardPublicJars()
dependencies {
compile(kotlinStdlib())
compile(project(":kotlin-native:kotlin-native-utils"))
compileOnly(gradleApi())
compileOnly("com.android.tools.build:gradle:0.4.2")
@@ -11,7 +11,7 @@ repositories {
dependencies {
compile(gradleApi())
compile(project(":kotlin-gradle-plugin-api"))
compile(commonDep("org.jetbrains.kotlin:kotlin-native-shared")) { isTransitive = false }
compile(project(":kotlin-native:kotlin-native-utils"))
}
val generateMppTargetContainerWithPresets by generator(
@@ -38,6 +38,7 @@ dependencies {
compileOnly(project(":daemon-common"))
compile(kotlinStdlib())
compile(project(":kotlin-native:kotlin-native-utils"))
compileOnly(project(":kotlin-reflect-api"))
compileOnly(project(":kotlin-android-extensions"))
compileOnly(project(":kotlin-build-common"))
@@ -69,10 +70,6 @@ dependencies {
jarContents(compileOnly(intellijDep()) {
includeJars("asm-all", "serviceMessages", "gson", rootProject = rootProject)
})
jarContents(compileOnly(commonDep("org.jetbrains.kotlin:kotlin-native-shared")) {
isTransitive = false
})
// com.android.tools.build:gradle has ~50 unneeded transitive dependencies
compileOnly("com.android.tools.build:gradle:3.0.0") { isTransitive = false }
@@ -20,11 +20,11 @@ import org.gradle.api.Named
import org.gradle.api.Project
import org.gradle.api.file.FileCollection
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer
import org.jetbrains.kotlin.gradle.plugin.mpp.hostManager
import org.jetbrains.kotlin.gradle.utils.NativeCompilerDownloader
import org.jetbrains.kotlin.konan.KonanVersion
import org.jetbrains.kotlin.konan.target.*
import org.jetbrains.kotlin.konan.util.DependencyProcessor
import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.util.DependencyDirectories
import java.util.*
/** Copied from Kotlin/Native repository. */
@@ -159,10 +159,20 @@ internal abstract class KonanCliRunner(
internal class KonanInteropRunner(project: Project, additionalJvmArgs: List<String> = emptyList()) :
KonanCliRunner("cinterop", "Kotlin/Native cinterop tool", project, additionalJvmArgs) {
init {
if (HostManager.hostIsMingw) {
val distribution = Distribution(konanHomeOverride = project.konanHome)
val llvmHome = PlatformManager(distribution).hostPlatform.absoluteLlvmHome
environment.put("PATH", "$llvmHome/bin;${System.getenv("PATH")}")
if (HostManager.host == KonanTarget.MINGW_X64) {
// TODO: Read it from KonanDistribution when it is accessible.
val konanProperties = Properties().apply {
project.file("${project.konanHome}/konan/konan.properties").inputStream().use(::load)
}
val toolchainDir = konanProperties.getProperty("targetToolchain.mingw_x64")
if (toolchainDir != null) {
environment.put(
"PATH",
DependencyDirectories.defaultDependenciesRoot
.resolve("$toolchainDir/bin")
.absolutePath + ";${System.getenv("PATH")}"
)
}
}
}
}
@@ -31,6 +31,7 @@ import org.jetbrains.kotlin.gradle.scripting.internal.ScriptingGradleSubplugin
import org.jetbrains.kotlin.gradle.utils.SingleWarningPerBuild
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.target.presetName
class KotlinMultiplatformPlugin(
@@ -137,7 +138,7 @@ class KotlinMultiplatformPlugin(
add(KotlinJsTargetPreset(project, kotlinPluginVersion))
add(KotlinAndroidTargetPreset(project, kotlinPluginVersion))
add(KotlinJvmWithJavaTargetPreset(project, kotlinPluginVersion))
project.hostManager.targets.forEach { _, target ->
HostManager().targets.forEach { _, target ->
add(KotlinNativeTargetPreset(target.presetName, project, target, kotlinPluginVersion))
}
}
@@ -44,7 +44,7 @@ class KotlinNativeTarget(
get() = disambiguateName("binaries")
override val publishable: Boolean
get() = enabledOnCurrentHost
get() = konanTarget.enabledOnCurrentHost
// User-visible constants
val DEBUG = NativeBuildType.DEBUG
@@ -58,7 +58,7 @@ open class KotlinNativeTargetConfigurator(
producingTask: Task,
copy: Boolean = false
) {
if (!compilation.target.enabledOnCurrentHost) {
if (!compilation.target.konanTarget.enabledOnCurrentHost) {
return
}
@@ -117,7 +117,7 @@ open class KotlinNativeTargetConfigurator(
this.binary = binary
group = BasePlugin.BUILD_GROUP
description = "Links ${binary.outputKind.description} '${binary.name}' for a target '${target.name}'."
enabled = target.enabledOnCurrentHost
enabled = target.konanTarget.enabledOnCurrentHost
destinationDir = binary.outputDirectory
addCompilerPlugins()
@@ -153,7 +153,7 @@ open class KotlinNativeTargetConfigurator(
group = BasePlugin.BUILD_GROUP
description = "Compiles a klibrary from the '${compilation.name}' " +
"compilation for target '${compilation.platformType.name}'."
enabled = compilation.target.enabledOnCurrentHost
enabled = compilation.target.konanTarget.enabledOnCurrentHost
destinationDir = klibOutputDirectory(compilation)
addCompilerPlugins()
@@ -184,7 +184,7 @@ open class KotlinNativeTargetConfigurator(
description = "Generates Kotlin/Native interop library '${interop.name}' " +
"for compilation '${compilation.name}'" +
"of target '${konanTarget.name}'."
enabled = compilation.target.enabledOnCurrentHost
enabled = compilation.target.konanTarget.enabledOnCurrentHost
val interopOutput = project.files(outputFileProvider).builtBy(this)
with(compilation) {
@@ -8,16 +8,24 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.Project
import org.gradle.api.artifacts.Dependency
import org.gradle.api.internal.file.FileResolver
import org.gradle.api.plugins.JavaPlugin
import org.gradle.internal.reflect.Instantiator
import org.jetbrains.kotlin.compilerRunner.KotlinNativeProjectProperty
import org.jetbrains.kotlin.compilerRunner.hasProperty
import org.jetbrains.kotlin.compilerRunner.konanHome
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.KotlinNativeTargetConfigurator
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset
import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
import org.jetbrains.kotlin.gradle.dsl.kotlinExtension
import org.jetbrains.kotlin.gradle.plugin.*
import org.jetbrains.kotlin.gradle.plugin.sources.applyLanguageSettingsToKotlinTask
import org.jetbrains.kotlin.gradle.tasks.KotlinTasksProvider
import org.jetbrains.kotlin.gradle.utils.NativeCompilerDownloader
import org.jetbrains.kotlin.konan.target.Distribution
import org.jetbrains.kotlin.konan.KonanVersion
import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.target.KonanTarget
import java.io.File
import java.util.*
class KotlinNativeTargetPreset(
private val name: String,
@@ -85,9 +93,9 @@ class KotlinNativeTargetPreset(
}
}
if (!result.enabledOnCurrentHost) {
with(project.hostManager) {
val supportedHosts = this.enabledByHost.filterValues { konanTarget in it }.keys
if (!konanTarget.enabledOnCurrentHost) {
with(HostManager()) {
val supportedHosts = enabledTargetsByHost.filterValues { konanTarget in it }.keys
val supportedHostsString =
if (supportedHosts.size == 1)
"a ${supportedHosts.single()} host" else
@@ -107,15 +115,11 @@ class KotlinNativeTargetPreset(
}
}
internal val Project.hostManager: HostManager
get() = HostManager(Distribution(konanHomeOverride = konanHome))
internal val KonanTarget.isCurrentHost: Boolean
get() = this == HostManager.host
internal val KotlinNativeTarget.enabledOnCurrentHost
get() = project.hostManager.isEnabled(konanTarget)
internal val KonanTarget.enabledOnCurrentHost
get() = HostManager().isEnabled(this)
internal val KotlinNativeCompilation.isMainCompilation: Boolean
get() = name == KotlinCompilation.MAIN_COMPILATION_NAME
@@ -17,7 +17,7 @@ import org.jetbrains.kotlin.gradle.logging.kotlinInfo
import org.jetbrains.kotlin.konan.KonanVersion
import org.jetbrains.kotlin.konan.MetaVersion
import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.util.DependencyProcessor
import org.jetbrains.kotlin.konan.util.DependencyDirectories
import java.io.File
class NativeCompilerDownloader(
@@ -34,7 +34,7 @@ class NativeCompilerDownloader(
}
val compilerDirectory: File
get() = DependencyProcessor.localKonanDir.resolve(dependencyNameWithVersion)
get() = DependencyDirectories.localKonanDir.resolve(dependencyNameWithVersion)
private val logger: Logger
get() = project.logger
@@ -119,7 +119,7 @@ class NativeCompilerDownloader(
logger.lifecycleWithDuration("Unpack Kotlin/Native compiler to $compilerDirectory finished,") {
project.copy {
it.from(archiveFileTree(archive))
it.into(DependencyProcessor.localKonanDir)
it.into(DependencyDirectories.localKonanDir)
}
}
@@ -15,7 +15,6 @@ import org.jetbrains.kotlin.gradle.dsl.multiplatformExtension
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.addExtension
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.gradle.plugin.mpp.hostManager
import org.jetbrains.kotlin.gradle.plugin.whenEvaluated
import org.jetbrains.kotlin.gradle.tasks.*
import org.jetbrains.kotlin.gradle.utils.asValidTaskName
@@ -147,7 +146,7 @@ open class KotlinCocoapodsPlugin: Plugin<Project> {
}
} else {
// A requested target doesn't require building a fat framework.
createSyncForRegularFramework(project, kotlinExtension, requestedBuildType, project.hostManager.targetByName(requestedTargetName))
createSyncForRegularFramework(project, kotlinExtension, requestedBuildType, HostManager().targetByName(requestedTargetName))
}
}