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