[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 =
|
internal fun Project.konanCompilerDownloadDir(): String =
|
||||||
DependencyProcessor.localKonanDir.resolve(project.konanCompilerName()).absolutePath
|
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 ---------------------------------------
|
// region Useful extensions and functions ---------------------------------------
|
||||||
|
|
||||||
internal fun MutableList<String>.addArg(parameter: String, value: String) {
|
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) {
|
override fun apply(project: ProjectInternal) {
|
||||||
checkGradleVersion()
|
checkGradleVersion()
|
||||||
@@ -367,7 +366,7 @@ class KonanPlugin @Inject constructor(private val registry: ToolingModelBuilderR
|
|||||||
KonanArtifactContainer::class.java,
|
KonanArtifactContainer::class.java,
|
||||||
project
|
project
|
||||||
)
|
)
|
||||||
project.setProperty(ProjectProperty.KONAN_JVM_LAUNCHER, project.getJavaLauncher())
|
project.setProperty(ProjectProperty.KONAN_JVM_LAUNCHER, getJavaLauncher(project))
|
||||||
|
|
||||||
project.warnAboutDeprecatedProperty(ProjectProperty.KONAN_HOME)
|
project.warnAboutDeprecatedProperty(ProjectProperty.KONAN_HOME)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user