[Gradle, JS] Fixes after rebase

This commit is contained in:
Ilya Goncharov
2021-05-06 20:15:07 +03:00
parent 9412b7236e
commit d7a87a8552
@@ -9,9 +9,8 @@ import org.gradle.api.artifacts.Configuration
import org.gradle.api.artifacts.ResolvedDependency import org.gradle.api.artifacts.ResolvedDependency
import org.gradle.api.file.ConfigurableFileCollection import org.gradle.api.file.ConfigurableFileCollection
import org.gradle.api.file.DirectoryProperty import org.gradle.api.file.DirectoryProperty
import org.gradle.api.file.FileCollection
import org.gradle.api.file.FileTree import org.gradle.api.file.FileTree
import org.gradle.api.model.ObjectFactory
import org.gradle.api.file.RegularFileProperty
import org.gradle.api.logging.Logger import org.gradle.api.logging.Logger
import org.gradle.api.model.ObjectFactory import org.gradle.api.model.ObjectFactory
import org.gradle.api.tasks.* import org.gradle.api.tasks.*
@@ -21,11 +20,11 @@ import org.jetbrains.kotlin.compilerRunner.GradleCompilerRunner
import org.jetbrains.kotlin.compilerRunner.OutputItemsCollectorImpl import org.jetbrains.kotlin.compilerRunner.OutputItemsCollectorImpl
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptions
import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptionsImpl import org.jetbrains.kotlin.gradle.dsl.KotlinJsOptionsImpl
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData
import org.jetbrains.kotlin.gradle.dsl.copyFreeCompilerArgsToArgs import org.jetbrains.kotlin.gradle.dsl.copyFreeCompilerArgsToArgs
import org.jetbrains.kotlin.gradle.logging.GradlePrintingMessageCollector import org.jetbrains.kotlin.gradle.logging.GradlePrintingMessageCollector
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation import org.jetbrains.kotlin.gradle.plugin.KotlinCompilation
import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider import org.jetbrains.kotlin.gradle.plugin.PropertiesProvider
import org.jetbrains.kotlin.gradle.plugin.mpp.pm20.KotlinCompilationData
import org.jetbrains.kotlin.gradle.report.ReportingSettings import org.jetbrains.kotlin.gradle.report.ReportingSettings
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode
import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsBinaryMode.DEVELOPMENT
@@ -35,7 +34,6 @@ import org.jetbrains.kotlin.gradle.tasks.SourceRoots
import org.jetbrains.kotlin.gradle.utils.getAllDependencies import org.jetbrains.kotlin.gradle.utils.getAllDependencies
import org.jetbrains.kotlin.gradle.utils.getCacheDirectory import org.jetbrains.kotlin.gradle.utils.getCacheDirectory
import org.jetbrains.kotlin.gradle.utils.getDependenciesCacheDirectories import org.jetbrains.kotlin.gradle.utils.getDependenciesCacheDirectories
import org.jetbrains.kotlin.gradle.utils.newFileProperty
import org.jetbrains.kotlin.incremental.ChangedFiles import org.jetbrains.kotlin.incremental.ChangedFiles
import java.io.File import java.io.File
import javax.inject.Inject import javax.inject.Inject
@@ -43,9 +41,9 @@ import javax.inject.Inject
@CacheableTask @CacheableTask
abstract class KotlinJsIrLink @Inject constructor( abstract class KotlinJsIrLink @Inject constructor(
objectFactory: ObjectFactory objectFactory: ObjectFactory
): Kotlin2JsCompile(KotlinJsOptionsImpl(), objectFactory) { ) : Kotlin2JsCompile(KotlinJsOptionsImpl(), objectFactory) {
class Configurator(compilation: KotlinCompilationData<*>): Kotlin2JsCompile.Configurator<KotlinJsIrLink>(compilation) { class Configurator(compilation: KotlinCompilationData<*>) : Kotlin2JsCompile.Configurator<KotlinJsIrLink>(compilation) {
override fun configure(task: KotlinJsIrLink) { override fun configure(task: KotlinJsIrLink) {
super.configure(task) super.configure(task)
@@ -59,7 +57,7 @@ abstract class KotlinJsIrLink @Inject constructor(
@Transient @Transient
@get:Internal @get:Internal
internal lateinit var compilation: KotlinCompilation<*> internal lateinit var compilation: KotlinCompilationData<*>
@get:Input @get:Input
internal val incrementalJsIr: Boolean = PropertiesProvider(project).incrementalJsIr internal val incrementalJsIr: Boolean = PropertiesProvider(project).incrementalJsIr
@@ -76,10 +74,6 @@ abstract class KotlinJsIrLink @Inject constructor(
private val buildDir = project.buildDir private val buildDir = project.buildDir
private val compileClasspathConfiguration by lazy {
project.configurations.getByName(compilation.compileDependencyConfigurationName)
}
@get:SkipWhenEmpty @get:SkipWhenEmpty
@get:InputDirectory @get:InputDirectory
@get:PathSensitive(PathSensitivity.RELATIVE) @get:PathSensitive(PathSensitivity.RELATIVE)
@@ -106,15 +100,15 @@ abstract class KotlinJsIrLink @Inject constructor(
buildDir, buildDir,
kotlinOptions, kotlinOptions,
libraryFilter, libraryFilter,
compilerRunner, compilerRunner.get(),
{ createCompilerArgs() }, { createCompilerArgs() },
{ objects.fileCollection() }, { objects.fileCollection() },
computedCompilerClasspath, computedCompilerClasspath,
logger, logger,
reportingSettings reportingSettings
) )
val cacheArgs = visitAssociated( val cacheArgs = visitCompilation(
compilation, compilation as KotlinCompilation<*>,
cacheBuilder, cacheBuilder,
visitedCompilations, visitedCompilations,
allCacheDirectories allCacheDirectories
@@ -127,19 +121,19 @@ abstract class KotlinJsIrLink @Inject constructor(
super.callCompilerAsync(args, sourceRoots, changedFiles) super.callCompilerAsync(args, sourceRoots, changedFiles)
} }
private fun visitAssociated( private fun visitCompilation(
associated: KotlinCompilation<*>, compilation: KotlinCompilation<*>,
cacheBuilder: CacheBuilder, cacheBuilder: CacheBuilder,
visitedCompilations: MutableSet<KotlinCompilation<*>>, visitedCompilations: MutableSet<KotlinCompilation<*>>,
visitedCacheDirectories: MutableSet<File> visitedCacheDirectories: MutableSet<File>
): List<File> { ): List<File> {
if (associated in visitedCompilations) return emptyList() if (compilation in visitedCompilations) return emptyList()
visitedCompilations.add(associated) visitedCompilations.add(compilation)
val associatedCaches = associated.associateWith val associatedCaches = compilation.associateWith
.flatMap { compilation -> .flatMap {
visitAssociated( visitCompilation(
compilation, it,
cacheBuilder, cacheBuilder,
visitedCompilations, visitedCompilations,
visitedCacheDirectories visitedCacheDirectories
@@ -148,12 +142,10 @@ abstract class KotlinJsIrLink @Inject constructor(
return cacheBuilder return cacheBuilder
.buildCompilerArgs( .buildCompilerArgs(
project.configurations.getByName(associated.compileDependencyConfigurationName), project.configurations.getByName(compilation.compileDependencyConfigurationName),
associated.output.classesDirs, compilation.output.classesDirs,
associatedCaches associatedCaches
) )
// .filter { it !in visitedCacheDirectories }
// .also { visitedCacheDirectories.addAll(it) }
} }
override fun setupCompilerArgs(args: K2JSCompilerArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) { override fun setupCompilerArgs(args: K2JSCompilerArguments, defaultsOnly: Boolean, ignoreClasspathResolutionErrors: Boolean) {
@@ -182,7 +174,7 @@ internal class CacheBuilder(
private val compilerRunner: GradleCompilerRunner, private val compilerRunner: GradleCompilerRunner,
private val compilerArgsFactory: () -> K2JSCompilerArguments, private val compilerArgsFactory: () -> K2JSCompilerArguments,
private val objectFilesFactory: () -> FileCollection, private val objectFilesFactory: () -> FileCollection,
private val computedCompilerClasspath: List<File>, private val computedCompilerClasspath: FileCollection,
private val logger: Logger, private val logger: Logger,
private val reportingSettings: ReportingSettings private val reportingSettings: ReportingSettings
) { ) {