Skip to content

Commit ac241e2

Browse files
Avoid having -d and -module set at the same time
#KT-14619 fixed
1 parent d59b9e7 commit ac241e2

File tree

5 files changed

+14
-6
lines changed

5 files changed

+14
-6
lines changed

compiler/daemon/src/org/jetbrains/kotlin/daemon/CompileServiceImpl.kt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ import java.util.concurrent.atomic.AtomicInteger
6363
import java.util.concurrent.locks.ReentrantReadWriteLock
6464
import java.util.logging.Level
6565
import java.util.logging.Logger
66+
import kotlin.collections.HashSet
6667
import kotlin.comparisons.compareByDescending
6768
import kotlin.concurrent.read
6869
import kotlin.concurrent.schedule
@@ -423,10 +424,13 @@ class CompileServiceImpl(
423424
}
424425
parsedModule
425426
}
426-
val javaSourceRoots = parsedModule.modules.flatMapTo(HashSet()) { it.getJavaSourceRoots().map { File(it.path) } }
427-
val allKotlinFiles = parsedModule.modules.flatMap { it.getSourceFiles().map(::File) }
428-
k2jvmArgs.friendPaths = parsedModule.modules.flatMap(Module::getFriendPaths).toTypedArray()
429427

428+
assert(parsedModule.modules.size == 1) { "More than one module description in ${k2jvmArgs.module}" }
429+
val module = parsedModule.modules.first()
430+
val javaSourceRoots = module.getJavaSourceRoots().mapTo(HashSet()) { File(it.path) }
431+
val allKotlinFiles = module.getSourceFiles().map(::File)
432+
k2jvmArgs.friendPaths = module.getFriendPaths().toTypedArray()
433+
k2jvmArgs.destination = module.getOutputDirectory()
430434
val changedFiles = if (incrementalCompilationOptions.areFileChangesKnown) {
431435
ChangedFiles.Known(incrementalCompilationOptions.modifiedFiles!!, incrementalCompilationOptions.deletedFiles!!)
432436
}

compiler/incremental-compilation-impl/src/org/jetbrains/kotlin/incremental/IncrementalJvmCompilerRunner.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -425,6 +425,7 @@ class IncrementalJvmCompilerRunner(
425425
javaSourceRoots = javaSourceRoots,
426426
classpath = classpath,
427427
friendDirs = listOf())
428+
args.destination = null
428429
args.module = moduleFile.absolutePath
429430
val outputItemCollector = OutputItemsCollectorImpl()
430431
@Suppress("NAME_SHADOWING")

libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/ExecutionStrategyIT.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import org.jetbrains.kotlin.gradle.util.getFileByName
44
import org.jetbrains.kotlin.gradle.util.modify
55
import org.junit.Test
66

7+
val DIR_AND_MODULE_ERROR_MESSAGE = "'-d' option with a directory destination is ignored because '-module' is specified"
8+
79
class ExecutionStrategyJsIT : ExecutionStrategyIT() {
810
override fun setupProject(project: Project) {
911
project.setupWorkingDir()
@@ -48,6 +50,7 @@ open class ExecutionStrategyIT : BaseGradleIT() {
4850
assertSuccessful()
4951
assertContains(finishMessage)
5052
checkOutput()
53+
assertNotContains(DIR_AND_MODULE_ERROR_MESSAGE)
5154
}
5255

5356
val fKt = project.projectDir.getFileByName("f.kt")

libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/KotlinGradlePluginIT.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -191,6 +191,7 @@ class KotlinGradleIT: BaseGradleIT() {
191191
assertReportExists("projB")
192192
assertContains(":projB:compileKotlin")
193193
assertNotContains("projB:compileKotlin UP-TO-DATE")
194+
assertNotContains(DIR_AND_MODULE_ERROR_MESSAGE)
194195
}
195196
}
196197

libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/compilerRunner/GradleKotlinCompilerRunner.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,17 +58,16 @@ internal class GradleCompilerRunner(private val project: Project) : KotlinCompil
5858
args: K2JVMCompilerArguments,
5959
environment: GradleCompilerEnvironment
6060
): ExitCode {
61-
val outputDir = args.destinationAsFile
62-
6361
val moduleFile = makeModuleFile(
6462
args.moduleName,
6563
isTest = false,
66-
outputDir = outputDir,
64+
outputDir = args.destinationAsFile,
6765
sourcesToCompile = sourcesToCompile,
6866
javaSourceRoots = javaSourceRoots,
6967
classpath = args.classpathAsList,
7068
friendDirs = args.friendPaths?.map(::File) ?: emptyList())
7169
args.module = moduleFile.absolutePath
70+
args.destination = null
7271

7372
try {
7473
return runCompiler(K2JVM_COMPILER, args, environment)

0 commit comments

Comments
 (0)