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.concurrent.locks.ReentrantReadWriteLock
|
||||||
import java.util.logging.Level
|
import java.util.logging.Level
|
||||||
import java.util.logging.Logger
|
import java.util.logging.Logger
|
||||||
|
import kotlin.collections.HashSet
|
||||||
import kotlin.comparisons.compareByDescending
|
import kotlin.comparisons.compareByDescending
|
||||||
import kotlin.concurrent.read
|
import kotlin.concurrent.read
|
||||||
import kotlin.concurrent.schedule
|
import kotlin.concurrent.schedule
|
||||||
@@ -423,10 +424,13 @@ class CompileServiceImpl(
|
|||||||
}
|
}
|
||||||
parsedModule
|
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) {
|
val changedFiles = if (incrementalCompilationOptions.areFileChangesKnown) {
|
||||||
ChangedFiles.Known(incrementalCompilationOptions.modifiedFiles!!, incrementalCompilationOptions.deletedFiles!!)
|
ChangedFiles.Known(incrementalCompilationOptions.modifiedFiles!!, incrementalCompilationOptions.deletedFiles!!)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
@@ -425,6 +425,7 @@ class IncrementalJvmCompilerRunner(
|
|||||||
javaSourceRoots = javaSourceRoots,
|
javaSourceRoots = javaSourceRoots,
|
||||||
classpath = classpath,
|
classpath = classpath,
|
||||||
friendDirs = listOf())
|
friendDirs = listOf())
|
||||||
|
args.destination = null
|
||||||
args.module = moduleFile.absolutePath
|
args.module = moduleFile.absolutePath
|
||||||
val outputItemCollector = OutputItemsCollectorImpl()
|
val outputItemCollector = OutputItemsCollectorImpl()
|
||||||
@Suppress("NAME_SHADOWING")
|
@Suppress("NAME_SHADOWING")
|
||||||
|
|||||||
+3
@@ -4,6 +4,8 @@ import org.jetbrains.kotlin.gradle.util.getFileByName
|
|||||||
import org.jetbrains.kotlin.gradle.util.modify
|
import org.jetbrains.kotlin.gradle.util.modify
|
||||||
import org.junit.Test
|
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() {
|
class ExecutionStrategyJsIT : ExecutionStrategyIT() {
|
||||||
override fun setupProject(project: Project) {
|
override fun setupProject(project: Project) {
|
||||||
project.setupWorkingDir()
|
project.setupWorkingDir()
|
||||||
@@ -48,6 +50,7 @@ open class ExecutionStrategyIT : BaseGradleIT() {
|
|||||||
assertSuccessful()
|
assertSuccessful()
|
||||||
assertContains(finishMessage)
|
assertContains(finishMessage)
|
||||||
checkOutput()
|
checkOutput()
|
||||||
|
assertNotContains(DIR_AND_MODULE_ERROR_MESSAGE)
|
||||||
}
|
}
|
||||||
|
|
||||||
val fKt = project.projectDir.getFileByName("f.kt")
|
val fKt = project.projectDir.getFileByName("f.kt")
|
||||||
|
|||||||
+1
@@ -191,6 +191,7 @@ class KotlinGradleIT: BaseGradleIT() {
|
|||||||
assertReportExists("projB")
|
assertReportExists("projB")
|
||||||
assertContains(":projB:compileKotlin")
|
assertContains(":projB:compileKotlin")
|
||||||
assertNotContains("projB:compileKotlin UP-TO-DATE")
|
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,
|
args: K2JVMCompilerArguments,
|
||||||
environment: GradleCompilerEnvironment
|
environment: GradleCompilerEnvironment
|
||||||
): ExitCode {
|
): ExitCode {
|
||||||
val outputDir = args.destinationAsFile
|
|
||||||
|
|
||||||
val moduleFile = makeModuleFile(
|
val moduleFile = makeModuleFile(
|
||||||
args.moduleName,
|
args.moduleName,
|
||||||
isTest = false,
|
isTest = false,
|
||||||
outputDir = outputDir,
|
outputDir = args.destinationAsFile,
|
||||||
sourcesToCompile = sourcesToCompile,
|
sourcesToCompile = sourcesToCompile,
|
||||||
javaSourceRoots = javaSourceRoots,
|
javaSourceRoots = javaSourceRoots,
|
||||||
classpath = args.classpathAsList,
|
classpath = args.classpathAsList,
|
||||||
friendDirs = args.friendPaths?.map(::File) ?: emptyList())
|
friendDirs = args.friendPaths?.map(::File) ?: emptyList())
|
||||||
args.module = moduleFile.absolutePath
|
args.module = moduleFile.absolutePath
|
||||||
|
args.destination = null
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return runCompiler(K2JVM_COMPILER, args, environment)
|
return runCompiler(K2JVM_COMPILER, args, environment)
|
||||||
|
|||||||
Reference in New Issue
Block a user