Avoid having -d and -module set at the same time

#KT-14619 fixed
This commit is contained in:
Alexey Tsvetkov
2017-01-31 14:57:42 +03:00
parent 9b5129a0f3
commit c57dac159b
5 changed files with 14 additions and 6 deletions
@@ -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!!)
}
@@ -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")
@@ -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")
@@ -191,6 +191,7 @@ class KotlinGradleIT: BaseGradleIT() {
assertReportExists("projB")
assertContains(":projB:compileKotlin")
assertNotContains("projB:compileKotlin UP-TO-DATE")
assertNotContains(DIR_AND_MODULE_ERROR_MESSAGE)
}
}
@@ -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)