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.jflex"] = "1.7.0"
extra["versions.markdown"] = "0.1.25" extra["versions.markdown"] = "0.1.25"
extra["versions.trove4j"] = "1.0.20181211" 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. // 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" 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.protobufLite(): String = "org.jetbrains.kotlin:protobuf-lite:$protobufVersion"
fun Project.protobufFull(): String = "org.jetbrains.kotlin:protobuf-relocated:$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.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()) fun File.matchMaybeVersionedArtifact(baseName: String) = name.matches(baseName.toMaybeVersionedJarRegex())
@@ -13,6 +13,7 @@ standardPublicJars()
dependencies { dependencies {
compile(kotlinStdlib()) compile(kotlinStdlib())
compile(project(":kotlin-native:kotlin-native-utils"))
compileOnly(gradleApi()) compileOnly(gradleApi())
compileOnly("com.android.tools.build:gradle:0.4.2") compileOnly("com.android.tools.build:gradle:0.4.2")
@@ -11,7 +11,7 @@ repositories {
dependencies { dependencies {
compile(gradleApi()) compile(gradleApi())
compile(project(":kotlin-gradle-plugin-api")) 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( val generateMppTargetContainerWithPresets by generator(
@@ -38,6 +38,7 @@ dependencies {
compileOnly(project(":daemon-common")) compileOnly(project(":daemon-common"))
compile(kotlinStdlib()) compile(kotlinStdlib())
compile(project(":kotlin-native:kotlin-native-utils"))
compileOnly(project(":kotlin-reflect-api")) compileOnly(project(":kotlin-reflect-api"))
compileOnly(project(":kotlin-android-extensions")) compileOnly(project(":kotlin-android-extensions"))
compileOnly(project(":kotlin-build-common")) compileOnly(project(":kotlin-build-common"))
@@ -70,10 +71,6 @@ dependencies {
includeJars("asm-all", "serviceMessages", "gson", rootProject = rootProject) 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 // com.android.tools.build:gradle has ~50 unneeded transitive dependencies
compileOnly("com.android.tools.build:gradle:3.0.0") { isTransitive = false } compileOnly("com.android.tools.build:gradle:3.0.0") { isTransitive = false }
compileOnly("com.android.tools.build:gradle-core:3.0.0") { isTransitive = false } compileOnly("com.android.tools.build:gradle-core:3.0.0") { isTransitive = false }
@@ -20,11 +20,11 @@ import org.gradle.api.Named
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.file.FileCollection import org.gradle.api.file.FileCollection
import org.jetbrains.kotlin.cli.common.messages.MessageRenderer 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.gradle.utils.NativeCompilerDownloader
import org.jetbrains.kotlin.konan.KonanVersion import org.jetbrains.kotlin.konan.KonanVersion
import org.jetbrains.kotlin.konan.target.* import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.util.DependencyProcessor import org.jetbrains.kotlin.konan.target.KonanTarget
import org.jetbrains.kotlin.konan.util.DependencyDirectories
import java.util.* import java.util.*
/** Copied from Kotlin/Native repository. */ /** Copied from Kotlin/Native repository. */
@@ -159,10 +159,20 @@ internal abstract class KonanCliRunner(
internal class KonanInteropRunner(project: Project, additionalJvmArgs: List<String> = emptyList()) : internal class KonanInteropRunner(project: Project, additionalJvmArgs: List<String> = emptyList()) :
KonanCliRunner("cinterop", "Kotlin/Native cinterop tool", project, additionalJvmArgs) { KonanCliRunner("cinterop", "Kotlin/Native cinterop tool", project, additionalJvmArgs) {
init { init {
if (HostManager.hostIsMingw) { if (HostManager.host == KonanTarget.MINGW_X64) {
val distribution = Distribution(konanHomeOverride = project.konanHome) // TODO: Read it from KonanDistribution when it is accessible.
val llvmHome = PlatformManager(distribution).hostPlatform.absoluteLlvmHome val konanProperties = Properties().apply {
environment.put("PATH", "$llvmHome/bin;${System.getenv("PATH")}") 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.SingleWarningPerBuild
import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility import org.jetbrains.kotlin.gradle.utils.checkGradleCompatibility
import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName import org.jetbrains.kotlin.gradle.utils.lowerCamelCaseName
import org.jetbrains.kotlin.konan.target.HostManager
import org.jetbrains.kotlin.konan.target.presetName import org.jetbrains.kotlin.konan.target.presetName
class KotlinMultiplatformPlugin( class KotlinMultiplatformPlugin(
@@ -137,7 +138,7 @@ class KotlinMultiplatformPlugin(
add(KotlinJsTargetPreset(project, kotlinPluginVersion)) add(KotlinJsTargetPreset(project, kotlinPluginVersion))
add(KotlinAndroidTargetPreset(project, kotlinPluginVersion)) add(KotlinAndroidTargetPreset(project, kotlinPluginVersion))
add(KotlinJvmWithJavaTargetPreset(project, kotlinPluginVersion)) add(KotlinJvmWithJavaTargetPreset(project, kotlinPluginVersion))
project.hostManager.targets.forEach { _, target -> HostManager().targets.forEach { _, target ->
add(KotlinNativeTargetPreset(target.presetName, project, target, kotlinPluginVersion)) add(KotlinNativeTargetPreset(target.presetName, project, target, kotlinPluginVersion))
} }
} }
@@ -44,7 +44,7 @@ class KotlinNativeTarget(
get() = disambiguateName("binaries") get() = disambiguateName("binaries")
override val publishable: Boolean override val publishable: Boolean
get() = enabledOnCurrentHost get() = konanTarget.enabledOnCurrentHost
// User-visible constants // User-visible constants
val DEBUG = NativeBuildType.DEBUG val DEBUG = NativeBuildType.DEBUG
@@ -58,7 +58,7 @@ open class KotlinNativeTargetConfigurator(
producingTask: Task, producingTask: Task,
copy: Boolean = false copy: Boolean = false
) { ) {
if (!compilation.target.enabledOnCurrentHost) { if (!compilation.target.konanTarget.enabledOnCurrentHost) {
return return
} }
@@ -117,7 +117,7 @@ open class KotlinNativeTargetConfigurator(
this.binary = binary this.binary = binary
group = BasePlugin.BUILD_GROUP group = BasePlugin.BUILD_GROUP
description = "Links ${binary.outputKind.description} '${binary.name}' for a target '${target.name}'." description = "Links ${binary.outputKind.description} '${binary.name}' for a target '${target.name}'."
enabled = target.enabledOnCurrentHost enabled = target.konanTarget.enabledOnCurrentHost
destinationDir = binary.outputDirectory destinationDir = binary.outputDirectory
addCompilerPlugins() addCompilerPlugins()
@@ -153,7 +153,7 @@ open class KotlinNativeTargetConfigurator(
group = BasePlugin.BUILD_GROUP group = BasePlugin.BUILD_GROUP
description = "Compiles a klibrary from the '${compilation.name}' " + description = "Compiles a klibrary from the '${compilation.name}' " +
"compilation for target '${compilation.platformType.name}'." "compilation for target '${compilation.platformType.name}'."
enabled = compilation.target.enabledOnCurrentHost enabled = compilation.target.konanTarget.enabledOnCurrentHost
destinationDir = klibOutputDirectory(compilation) destinationDir = klibOutputDirectory(compilation)
addCompilerPlugins() addCompilerPlugins()
@@ -184,7 +184,7 @@ open class KotlinNativeTargetConfigurator(
description = "Generates Kotlin/Native interop library '${interop.name}' " + description = "Generates Kotlin/Native interop library '${interop.name}' " +
"for compilation '${compilation.name}'" + "for compilation '${compilation.name}'" +
"of target '${konanTarget.name}'." "of target '${konanTarget.name}'."
enabled = compilation.target.enabledOnCurrentHost enabled = compilation.target.konanTarget.enabledOnCurrentHost
val interopOutput = project.files(outputFileProvider).builtBy(this) val interopOutput = project.files(outputFileProvider).builtBy(this)
with(compilation) { with(compilation) {
@@ -8,16 +8,24 @@ package org.jetbrains.kotlin.gradle.plugin.mpp
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.artifacts.Dependency 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.KotlinNativeProjectProperty
import org.jetbrains.kotlin.compilerRunner.hasProperty import org.jetbrains.kotlin.compilerRunner.hasProperty
import org.jetbrains.kotlin.compilerRunner.konanHome import org.jetbrains.kotlin.compilerRunner.konanHome
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
import org.jetbrains.kotlin.gradle.plugin.KotlinNativeTargetConfigurator import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions
import org.jetbrains.kotlin.gradle.plugin.KotlinTargetPreset 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.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.HostManager
import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.target.KonanTarget
import java.io.File
import java.util.*
class KotlinNativeTargetPreset( class KotlinNativeTargetPreset(
private val name: String, private val name: String,
@@ -85,9 +93,9 @@ class KotlinNativeTargetPreset(
} }
} }
if (!result.enabledOnCurrentHost) { if (!konanTarget.enabledOnCurrentHost) {
with(project.hostManager) { with(HostManager()) {
val supportedHosts = this.enabledByHost.filterValues { konanTarget in it }.keys val supportedHosts = enabledTargetsByHost.filterValues { konanTarget in it }.keys
val supportedHostsString = val supportedHostsString =
if (supportedHosts.size == 1) if (supportedHosts.size == 1)
"a ${supportedHosts.single()} host" else "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 internal val KonanTarget.isCurrentHost: Boolean
get() = this == HostManager.host get() = this == HostManager.host
internal val KotlinNativeTarget.enabledOnCurrentHost internal val KonanTarget.enabledOnCurrentHost
get() = project.hostManager.isEnabled(konanTarget) get() = HostManager().isEnabled(this)
internal val KotlinNativeCompilation.isMainCompilation: Boolean internal val KotlinNativeCompilation.isMainCompilation: Boolean
get() = name == KotlinCompilation.MAIN_COMPILATION_NAME 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.KonanVersion
import org.jetbrains.kotlin.konan.MetaVersion import org.jetbrains.kotlin.konan.MetaVersion
import org.jetbrains.kotlin.konan.target.HostManager 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 import java.io.File
class NativeCompilerDownloader( class NativeCompilerDownloader(
@@ -34,7 +34,7 @@ class NativeCompilerDownloader(
} }
val compilerDirectory: File val compilerDirectory: File
get() = DependencyProcessor.localKonanDir.resolve(dependencyNameWithVersion) get() = DependencyDirectories.localKonanDir.resolve(dependencyNameWithVersion)
private val logger: Logger private val logger: Logger
get() = project.logger get() = project.logger
@@ -119,7 +119,7 @@ class NativeCompilerDownloader(
logger.lifecycleWithDuration("Unpack Kotlin/Native compiler to $compilerDirectory finished,") { logger.lifecycleWithDuration("Unpack Kotlin/Native compiler to $compilerDirectory finished,") {
project.copy { project.copy {
it.from(archiveFileTree(archive)) 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.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.addExtension import org.jetbrains.kotlin.gradle.plugin.addExtension
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget 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.plugin.whenEvaluated
import org.jetbrains.kotlin.gradle.tasks.* import org.jetbrains.kotlin.gradle.tasks.*
import org.jetbrains.kotlin.gradle.utils.asValidTaskName import org.jetbrains.kotlin.gradle.utils.asValidTaskName
@@ -147,7 +146,7 @@ open class KotlinCocoapodsPlugin: Plugin<Project> {
} }
} else { } else {
// A requested target doesn't require building a fat framework. // 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))
} }
} }