[Gradle] Use explicit factory methods instead of constructor override
In KotlinNativeToolRunner Settings classes ^KT-43293
This commit is contained in:
+21
-16
@@ -67,14 +67,15 @@ internal abstract class KotlinNativeToolRunner(
|
||||
val jvmArgs: List<String>,
|
||||
val classpath: FileCollection
|
||||
) {
|
||||
|
||||
constructor(project: Project) : this(
|
||||
konanVersion = project.konanVersion,
|
||||
konanHome = project.konanHome,
|
||||
konanPropertiesFile = project.file("${project.konanHome}/konan/konan.properties"),
|
||||
jvmArgs = project.jvmArgs,
|
||||
classpath = project.files(project.kotlinNativeCompilerJar, "${project.konanHome}/konan/lib/trove4j.jar")
|
||||
)
|
||||
companion object {
|
||||
fun fromProject(project: Project) = Settings(
|
||||
konanVersion = project.konanVersion,
|
||||
konanHome = project.konanHome,
|
||||
konanPropertiesFile = project.file("${project.konanHome}/konan/konan.properties"),
|
||||
jvmArgs = project.jvmArgs,
|
||||
classpath = project.files(project.kotlinNativeCompilerJar, "${project.konanHome}/konan/lib/trove4j.jar")
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
final override val displayName get() = toolName
|
||||
@@ -191,10 +192,12 @@ internal class KotlinNativeCompilerRunner(
|
||||
val parent: KotlinNativeToolRunner.Settings,
|
||||
val disableKonanDaemon: Boolean,
|
||||
) {
|
||||
constructor(project: Project) : this(
|
||||
parent = KotlinNativeToolRunner.Settings(project),
|
||||
disableKonanDaemon = project.disableKonanDaemon,
|
||||
)
|
||||
companion object {
|
||||
fun fromProject(project: Project) = Settings(
|
||||
parent = KotlinNativeToolRunner.Settings.fromProject(project),
|
||||
disableKonanDaemon = project.disableKonanDaemon,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
private val useArgFile get() = settings.disableKonanDaemon
|
||||
@@ -225,10 +228,12 @@ internal class KotlinNativeLibraryGenerationRunner(
|
||||
) :
|
||||
AbstractKotlinNativeCInteropRunner("generatePlatformLibraries", settings, executionContext) {
|
||||
|
||||
constructor(project: Project): this(
|
||||
settings = Settings(project),
|
||||
executionContext = GradleExecutionContext.fromProject(project)
|
||||
)
|
||||
companion object {
|
||||
fun fromProject(project: Project) = KotlinNativeLibraryGenerationRunner(
|
||||
settings = Settings.fromProject(project),
|
||||
executionContext = GradleExecutionContext.fromProject(project)
|
||||
)
|
||||
}
|
||||
|
||||
// The library generator works for a long time so enabling C2 can improve performance.
|
||||
override val disableC2: Boolean = false
|
||||
|
||||
+1
-1
@@ -169,7 +169,7 @@ class NativeCompilerDownloader(
|
||||
|
||||
fun downloadIfNeeded() {
|
||||
|
||||
val classpath = KotlinNativeToolRunner.Settings(project).classpath
|
||||
val classpath = KotlinNativeToolRunner.Settings.fromProject(project).classpath
|
||||
if (classpath.isEmpty() || classpath.any { !it.exists() }) {
|
||||
downloadAndExtract()
|
||||
}
|
||||
|
||||
+1
-1
@@ -131,7 +131,7 @@ internal class PlatformLibrariesGenerator(val project: Project, val konanTarget:
|
||||
args.addArg("-mode", it)
|
||||
}
|
||||
|
||||
KotlinNativeLibraryGenerationRunner(this).run(args)
|
||||
KotlinNativeLibraryGenerationRunner.fromProject(this).run(args)
|
||||
}
|
||||
|
||||
fun generatePlatformLibsIfNeeded(): Unit = with(project) {
|
||||
|
||||
+6
-6
@@ -389,7 +389,7 @@ constructor(
|
||||
kotlinOptions.freeCompilerArgs + ((languageSettings as? DefaultLanguageSettingsBuilder)?.freeCompilerArgs ?: emptyList())
|
||||
}
|
||||
|
||||
private val runnerSettings = KotlinNativeCompilerRunner.Settings(project)
|
||||
private val runnerSettings = KotlinNativeCompilerRunner.Settings.fromProject(project)
|
||||
private val isAllowCommonizer: Boolean by lazy { project.isAllowCommonizer() }
|
||||
|
||||
override fun kotlinOptions(fn: KotlinCommonOptions.() -> Unit) {
|
||||
@@ -482,7 +482,7 @@ constructor(
|
||||
final override val compilation: KotlinNativeCompilation
|
||||
get() = binary.compilation
|
||||
|
||||
private val runnerSettings = KotlinNativeCompilerRunner.Settings(project)
|
||||
private val runnerSettings = KotlinNativeCompilerRunner.Settings.fromProject(project)
|
||||
|
||||
init {
|
||||
dependsOn(project.provider { compilation.compileKotlinTaskProvider })
|
||||
@@ -591,7 +591,7 @@ constructor(
|
||||
private val externalDependenciesArgs by lazy { ExternalDependenciesBuilder(project, compilation).buildCompilerArgs() }
|
||||
|
||||
private val cacheBuilderSettings by lazy {
|
||||
CacheBuilder.Settings(project, binary, konanTarget, localKotlinOptions, externalDependenciesArgs)
|
||||
CacheBuilder.Settings.createWithProject(project, binary, konanTarget, localKotlinOptions, externalDependenciesArgs)
|
||||
}
|
||||
|
||||
override fun createCompilerArgs(): StubK2NativeCompilerArguments = StubK2NativeCompilerArguments()
|
||||
@@ -890,7 +890,7 @@ internal class CacheBuilder(
|
||||
)
|
||||
|
||||
companion object {
|
||||
operator fun invoke(
|
||||
fun createWithProject(
|
||||
project: Project,
|
||||
binary: NativeBinary,
|
||||
konanTarget: KonanTarget,
|
||||
@@ -899,7 +899,7 @@ internal class CacheBuilder(
|
||||
): Settings {
|
||||
val konanCacheKind = project.getKonanCacheKind(konanTarget)
|
||||
return Settings(
|
||||
runnerSettings = KotlinNativeCompilerRunner.Settings(project),
|
||||
runnerSettings = KotlinNativeCompilerRunner.Settings.fromProject(project),
|
||||
konanCacheKind = konanCacheKind,
|
||||
libraries = binary.compilation.compileDependencyFiles.filterOutPublishableInteropLibs(project),
|
||||
gradleUserHomeDir = project.gradle.gradleUserHomeDir,
|
||||
@@ -1181,7 +1181,7 @@ open class CInteropProcess
|
||||
val outputFile: File
|
||||
get() = outputFileProvider.get()
|
||||
|
||||
private val runnerSettings = KotlinNativeToolRunner.Settings(project)
|
||||
private val runnerSettings = KotlinNativeToolRunner.Settings.fromProject(project)
|
||||
|
||||
// Inputs and outputs.
|
||||
|
||||
|
||||
+1
-1
@@ -151,7 +151,7 @@ open class KotlinNativeLinkArtifactTask @Inject constructor(
|
||||
return destinationDir.resolve(outFileName)
|
||||
}
|
||||
|
||||
private val runnerSettings = KotlinNativeCompilerRunner.Settings(project)
|
||||
private val runnerSettings = KotlinNativeCompilerRunner.Settings.fromProject(project)
|
||||
|
||||
@TaskAction
|
||||
fun link() {
|
||||
|
||||
Reference in New Issue
Block a user