Avoid having -d and -module set at the same time
#KT-14619 fixed
This commit is contained in:
@@ -63,6 +63,7 @@ import java.util.concurrent.atomic.AtomicInteger
|
||||
import java.util.concurrent.locks.ReentrantReadWriteLock
|
||||
import java.util.logging.Level
|
||||
import java.util.logging.Logger
|
||||
import kotlin.collections.HashSet
|
||||
import kotlin.comparisons.compareByDescending
|
||||
import kotlin.concurrent.read
|
||||
import kotlin.concurrent.schedule
|
||||
@@ -423,10 +424,13 @@ class CompileServiceImpl(
|
||||
}
|
||||
parsedModule
|
||||
}
|
||||
val javaSourceRoots = parsedModule.modules.flatMapTo(HashSet()) { it.getJavaSourceRoots().map { File(it.path) } }
|
||||
val allKotlinFiles = parsedModule.modules.flatMap { it.getSourceFiles().map(::File) }
|
||||
k2jvmArgs.friendPaths = parsedModule.modules.flatMap(Module::getFriendPaths).toTypedArray()
|
||||
|
||||
assert(parsedModule.modules.size == 1) { "More than one module description in ${k2jvmArgs.module}" }
|
||||
val module = parsedModule.modules.first()
|
||||
val javaSourceRoots = module.getJavaSourceRoots().mapTo(HashSet()) { File(it.path) }
|
||||
val allKotlinFiles = module.getSourceFiles().map(::File)
|
||||
k2jvmArgs.friendPaths = module.getFriendPaths().toTypedArray()
|
||||
k2jvmArgs.destination = module.getOutputDirectory()
|
||||
val changedFiles = if (incrementalCompilationOptions.areFileChangesKnown) {
|
||||
ChangedFiles.Known(incrementalCompilationOptions.modifiedFiles!!, incrementalCompilationOptions.deletedFiles!!)
|
||||
}
|
||||
|
||||
+1
@@ -425,6 +425,7 @@ class IncrementalJvmCompilerRunner(
|
||||
javaSourceRoots = javaSourceRoots,
|
||||
classpath = classpath,
|
||||
friendDirs = listOf())
|
||||
args.destination = null
|
||||
args.module = moduleFile.absolutePath
|
||||
val outputItemCollector = OutputItemsCollectorImpl()
|
||||
@Suppress("NAME_SHADOWING")
|
||||
|
||||
+3
@@ -4,6 +4,8 @@ import org.jetbrains.kotlin.gradle.util.getFileByName
|
||||
import org.jetbrains.kotlin.gradle.util.modify
|
||||
import org.junit.Test
|
||||
|
||||
val DIR_AND_MODULE_ERROR_MESSAGE = "'-d' option with a directory destination is ignored because '-module' is specified"
|
||||
|
||||
class ExecutionStrategyJsIT : ExecutionStrategyIT() {
|
||||
override fun setupProject(project: Project) {
|
||||
project.setupWorkingDir()
|
||||
@@ -48,6 +50,7 @@ open class ExecutionStrategyIT : BaseGradleIT() {
|
||||
assertSuccessful()
|
||||
assertContains(finishMessage)
|
||||
checkOutput()
|
||||
assertNotContains(DIR_AND_MODULE_ERROR_MESSAGE)
|
||||
}
|
||||
|
||||
val fKt = project.projectDir.getFileByName("f.kt")
|
||||
|
||||
+1
@@ -191,6 +191,7 @@ class KotlinGradleIT: BaseGradleIT() {
|
||||
assertReportExists("projB")
|
||||
assertContains(":projB:compileKotlin")
|
||||
assertNotContains("projB:compileKotlin UP-TO-DATE")
|
||||
assertNotContains(DIR_AND_MODULE_ERROR_MESSAGE)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+2
-3
@@ -58,17 +58,16 @@ internal class GradleCompilerRunner(private val project: Project) : KotlinCompil
|
||||
args: K2JVMCompilerArguments,
|
||||
environment: GradleCompilerEnvironment
|
||||
): ExitCode {
|
||||
val outputDir = args.destinationAsFile
|
||||
|
||||
val moduleFile = makeModuleFile(
|
||||
args.moduleName,
|
||||
isTest = false,
|
||||
outputDir = outputDir,
|
||||
outputDir = args.destinationAsFile,
|
||||
sourcesToCompile = sourcesToCompile,
|
||||
javaSourceRoots = javaSourceRoots,
|
||||
classpath = args.classpathAsList,
|
||||
friendDirs = args.friendPaths?.map(::File) ?: emptyList())
|
||||
args.module = moduleFile.absolutePath
|
||||
args.destination = null
|
||||
|
||||
try {
|
||||
return runCompiler(K2JVM_COMPILER, args, environment)
|
||||
|
||||
Reference in New Issue
Block a user