remove execOperation for compiler workers
This commit is contained in:
-1
@@ -6,7 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.compilerRunner
|
package org.jetbrains.kotlin.compilerRunner
|
||||||
|
|
||||||
import org.gradle.api.Task
|
import org.gradle.api.Task
|
||||||
import org.gradle.workers.ForkMode
|
|
||||||
import org.gradle.workers.IsolationMode
|
import org.gradle.workers.IsolationMode
|
||||||
import org.gradle.workers.WorkerExecutor
|
import org.gradle.workers.WorkerExecutor
|
||||||
import org.jetbrains.kotlin.gradle.logging.kotlinDebug
|
import org.jetbrains.kotlin.gradle.logging.kotlinDebug
|
||||||
|
|||||||
+1
@@ -170,6 +170,7 @@ internal open class GradleCompilerRunner(protected val task: Task) {
|
|||||||
|
|
||||||
@Volatile
|
@Volatile
|
||||||
private var cachedGradle = WeakReference<Gradle>(null)
|
private var cachedGradle = WeakReference<Gradle>(null)
|
||||||
|
|
||||||
@Volatile
|
@Volatile
|
||||||
private var cachedModulesInfo: IncrementalModuleInfo? = null
|
private var cachedModulesInfo: IncrementalModuleInfo? = null
|
||||||
|
|
||||||
|
|||||||
+4
-11
@@ -17,7 +17,6 @@ import org.jetbrains.kotlin.gradle.report.BuildReportMode
|
|||||||
import org.jetbrains.kotlin.gradle.report.TaskExecutionResult
|
import org.jetbrains.kotlin.gradle.report.TaskExecutionResult
|
||||||
import org.jetbrains.kotlin.gradle.tasks.clearLocalState
|
import org.jetbrains.kotlin.gradle.tasks.clearLocalState
|
||||||
import org.jetbrains.kotlin.gradle.tasks.throwGradleExceptionIfError
|
import org.jetbrains.kotlin.gradle.tasks.throwGradleExceptionIfError
|
||||||
import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast
|
|
||||||
import org.jetbrains.kotlin.gradle.utils.stackTraceAsString
|
import org.jetbrains.kotlin.gradle.utils.stackTraceAsString
|
||||||
import org.jetbrains.kotlin.incremental.ChangedFiles
|
import org.jetbrains.kotlin.incremental.ChangedFiles
|
||||||
import org.jetbrains.kotlin.incremental.IncrementalModuleInfo
|
import org.jetbrains.kotlin.incremental.IncrementalModuleInfo
|
||||||
@@ -34,13 +33,13 @@ internal class ProjectFilesForCompilation(
|
|||||||
val projectRootFile: File,
|
val projectRootFile: File,
|
||||||
val clientIsAliveFlagFile: File,
|
val clientIsAliveFlagFile: File,
|
||||||
val sessionFlagFile: File,
|
val sessionFlagFile: File,
|
||||||
val project: Project
|
val buildDir: File
|
||||||
) : Serializable {
|
) : Serializable {
|
||||||
constructor(project: Project) : this(
|
constructor(project: Project) : this(
|
||||||
projectRootFile = project.rootProject.projectDir,
|
projectRootFile = project.rootProject.projectDir,
|
||||||
clientIsAliveFlagFile = GradleCompilerRunner.getOrCreateClientFlagFile(project),
|
clientIsAliveFlagFile = GradleCompilerRunner.getOrCreateClientFlagFile(project),
|
||||||
sessionFlagFile = GradleCompilerRunner.getOrCreateSessionFlagFile(project),
|
sessionFlagFile = GradleCompilerRunner.getOrCreateSessionFlagFile(project),
|
||||||
project = project
|
buildDir = project.buildDir
|
||||||
)
|
)
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
@@ -100,7 +99,7 @@ internal class GradleKotlinCompilerWork @Inject constructor(
|
|||||||
private val buildReportMode = config.buildReportMode
|
private val buildReportMode = config.buildReportMode
|
||||||
private val kotlinScriptExtensions = config.kotlinScriptExtensions
|
private val kotlinScriptExtensions = config.kotlinScriptExtensions
|
||||||
private val allWarningsAsErrors = config.allWarningsAsErrors
|
private val allWarningsAsErrors = config.allWarningsAsErrors
|
||||||
private val project = config.projectFiles.project
|
private val buildDir = config.projectFiles.buildDir
|
||||||
|
|
||||||
private val log: KotlinLogger =
|
private val log: KotlinLogger =
|
||||||
TaskLoggers.get(taskPath)?.let { GradleKotlinLogger(it).apply { debug("Using '$taskPath' logger") } }
|
TaskLoggers.get(taskPath)?.let { GradleKotlinLogger(it).apply { debug("Using '$taskPath' logger") } }
|
||||||
@@ -301,13 +300,7 @@ internal class GradleKotlinCompilerWork @Inject constructor(
|
|||||||
clearLocalState(outputFiles, log, reason = "out-of-process execution strategy is non-incremental")
|
clearLocalState(outputFiles, log, reason = "out-of-process execution strategy is non-incremental")
|
||||||
|
|
||||||
return try {
|
return try {
|
||||||
if (isGradleVersionAtLeast(6, 0)) {
|
runToolInSeparateProcess(compilerArgs, compilerClassName, compilerFullClasspath, log, buildDir)
|
||||||
val execResult =
|
|
||||||
runToolInSeparateProcessForGradle6AndMore(compilerArgs, compilerClassName, compilerFullClasspath, project)
|
|
||||||
exitCodeFromProcessExitCode(log, execResult.exitValue)
|
|
||||||
} else {
|
|
||||||
runToolInSeparateProcess(compilerArgs, compilerClassName, compilerFullClasspath, log, project.buildDir)
|
|
||||||
}
|
|
||||||
} finally {
|
} finally {
|
||||||
reportExecutionResultIfNeeded {
|
reportExecutionResultIfNeeded {
|
||||||
TaskExecutionResult(
|
TaskExecutionResult(
|
||||||
|
|||||||
+2
-16
@@ -16,7 +16,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.compilerRunner
|
package org.jetbrains.kotlin.compilerRunner
|
||||||
|
|
||||||
import org.gradle.api.Project
|
import org.gradle.api.file.FileCollection
|
||||||
|
import org.gradle.process.ExecOperations
|
||||||
import org.gradle.process.ExecResult
|
import org.gradle.process.ExecResult
|
||||||
import org.jetbrains.kotlin.cli.common.ExitCode
|
import org.jetbrains.kotlin.cli.common.ExitCode
|
||||||
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
import org.jetbrains.kotlin.cli.common.messages.CompilerMessageLocation
|
||||||
@@ -86,21 +87,6 @@ internal fun loadCompilerVersion(compilerClasspath: List<File>): String {
|
|||||||
return result ?: "<unknown>"
|
return result ?: "<unknown>"
|
||||||
}
|
}
|
||||||
|
|
||||||
internal fun runToolInSeparateProcessForGradle6AndMore(
|
|
||||||
argsArray: Array<String>,
|
|
||||||
compilerClassName: String,
|
|
||||||
classpath: List<File>,
|
|
||||||
project: Project
|
|
||||||
): ExecResult {
|
|
||||||
val gradleExecutionOperation = project.objects.newInstance(GradleExecOperationsHolder::class.java)
|
|
||||||
val compilationArguments = writeArgumentsToFile(project.buildDir, argsArray)
|
|
||||||
return gradleExecutionOperation.execOperation.javaexec {
|
|
||||||
it.classpath = project.files(classpath)
|
|
||||||
it.args = listOf("@${compilationArguments.absolutePath}")
|
|
||||||
it.main = compilerClassName
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal fun runToolInSeparateProcess(
|
internal fun runToolInSeparateProcess(
|
||||||
argsArray: Array<String>,
|
argsArray: Array<String>,
|
||||||
compilerClassName: String,
|
compilerClassName: String,
|
||||||
|
|||||||
+9
-19
@@ -26,13 +26,11 @@ import org.gradle.api.tasks.TaskAction
|
|||||||
import org.jetbrains.kotlin.cli.common.arguments.K2JSDceArguments
|
import org.jetbrains.kotlin.cli.common.arguments.K2JSDceArguments
|
||||||
import org.jetbrains.kotlin.cli.js.dce.K2JSDce
|
import org.jetbrains.kotlin.cli.js.dce.K2JSDce
|
||||||
import org.jetbrains.kotlin.compilerRunner.runToolInSeparateProcess
|
import org.jetbrains.kotlin.compilerRunner.runToolInSeparateProcess
|
||||||
import org.jetbrains.kotlin.compilerRunner.runToolInSeparateProcessForGradle6AndMore
|
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDce
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDceOptions
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDceOptions
|
||||||
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDceOptionsImpl
|
import org.jetbrains.kotlin.gradle.dsl.KotlinJsDceOptionsImpl
|
||||||
import org.jetbrains.kotlin.gradle.logging.GradleKotlinLogger
|
import org.jetbrains.kotlin.gradle.logging.GradleKotlinLogger
|
||||||
import org.jetbrains.kotlin.gradle.utils.canonicalPathWithoutExtension
|
import org.jetbrains.kotlin.gradle.utils.canonicalPathWithoutExtension
|
||||||
import org.jetbrains.kotlin.gradle.utils.isGradleVersionAtLeast
|
|
||||||
import java.io.File
|
import java.io.File
|
||||||
|
|
||||||
@CacheableTask
|
@CacheableTask
|
||||||
@@ -85,23 +83,15 @@ open class KotlinJsDce : AbstractKotlinCompileTool<K2JSDceArguments>(), KotlinJs
|
|||||||
val log = GradleKotlinLogger(logger)
|
val log = GradleKotlinLogger(logger)
|
||||||
val allArgs = argsArray + outputDirArgs + inputFiles
|
val allArgs = argsArray + outputDirArgs + inputFiles
|
||||||
|
|
||||||
if (isGradleVersionAtLeast(6,0)) {
|
val exitCode = runToolInSeparateProcess(
|
||||||
runToolInSeparateProcessForGradle6AndMore(
|
allArgs,
|
||||||
allArgs,
|
K2JSDce::class.java.name,
|
||||||
K2JSDce::class.java.name,
|
computedCompilerClasspath,
|
||||||
computedCompilerClasspath,
|
log,
|
||||||
project
|
project.buildDir
|
||||||
).rethrowFailure()
|
)
|
||||||
} else {
|
throwGradleExceptionIfError(exitCode)
|
||||||
val exitCode = runToolInSeparateProcess(
|
|
||||||
allArgs,
|
|
||||||
K2JSDce::class.java.name,
|
|
||||||
computedCompilerClasspath,
|
|
||||||
log,
|
|
||||||
project.buildDir
|
|
||||||
)
|
|
||||||
throwGradleExceptionIfError(exitCode)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun isDceCandidate(file: File): Boolean {
|
private fun isDceCandidate(file: File): Boolean {
|
||||||
|
|||||||
Reference in New Issue
Block a user