[Native] Move JavaLauncher property from global scope to the KonanPlugin
This commit is contained in:
+20
-21
@@ -174,26 +174,6 @@ internal fun Project.konanCompilerName(): String =
|
||||
internal fun Project.konanCompilerDownloadDir(): String =
|
||||
DependencyProcessor.localKonanDir.resolve(project.konanCompilerName()).absolutePath
|
||||
|
||||
private lateinit var konanJvmLauncher: JavaLauncher
|
||||
|
||||
internal fun Project.getJavaLauncher(): Provider<JavaLauncher> = providers.provider {
|
||||
if (!::konanJvmLauncher.isInitialized) {
|
||||
val toolchain = project.extensions.getByType(JavaPluginExtension::class.java).toolchain
|
||||
val service = project.extensions.getByType(JavaToolchainService::class.java)
|
||||
konanJvmLauncher = try {
|
||||
service.launcherFor(toolchain).get()
|
||||
} catch (ex: GradleException) {
|
||||
// If the JDK that was set is not available get the JDK 11 as a default
|
||||
service.launcherFor(object : Action<JavaToolchainSpec> {
|
||||
override fun execute(toolchainSpec: JavaToolchainSpec) {
|
||||
toolchainSpec.languageVersion.set(JavaLanguageVersion.of(JdkMajorVersion.JDK_11.majorVersion))
|
||||
}
|
||||
}).get()
|
||||
}
|
||||
}
|
||||
konanJvmLauncher
|
||||
}
|
||||
|
||||
// region Useful extensions and functions ---------------------------------------
|
||||
|
||||
internal fun MutableList<String>.addArg(parameter: String, value: String) {
|
||||
@@ -353,6 +333,25 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR
|
||||
}
|
||||
}
|
||||
|
||||
private lateinit var konanJvmLauncher: JavaLauncher
|
||||
|
||||
private fun getJavaLauncher(project: Project): Provider<JavaLauncher> = project.providers.provider {
|
||||
if (!::konanJvmLauncher.isInitialized) {
|
||||
val toolchain = project.extensions.getByType(JavaPluginExtension::class.java).toolchain
|
||||
val service = project.extensions.getByType(JavaToolchainService::class.java)
|
||||
konanJvmLauncher = try {
|
||||
service.launcherFor(toolchain).get()
|
||||
} catch (ex: GradleException) {
|
||||
// If the JDK that was set is not available get the JDK 11 as a default
|
||||
service.launcherFor(object : Action<JavaToolchainSpec> {
|
||||
override fun execute(toolchainSpec: JavaToolchainSpec) {
|
||||
toolchainSpec.languageVersion.set(JavaLanguageVersion.of(JdkMajorVersion.JDK_11.majorVersion))
|
||||
}
|
||||
}).get()
|
||||
}
|
||||
}
|
||||
konanJvmLauncher
|
||||
}
|
||||
|
||||
override fun apply(project: ProjectInternal) {
|
||||
checkGradleVersion()
|
||||
@@ -367,7 +366,7 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR
|
||||
KonanArtifactContainer::class.java,
|
||||
project
|
||||
)
|
||||
project.setProperty(ProjectProperty.KONAN_JVM_LAUNCHER, project.getJavaLauncher())
|
||||
project.setProperty(ProjectProperty.KONAN_JVM_LAUNCHER, getJavaLauncher(project))
|
||||
|
||||
project.warnAboutDeprecatedProperty(ProjectProperty.KONAN_HOME)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user