Try to detect target for output items using outputDir when sourceFiles is empty

Original commit: 879b1a8abb
This commit is contained in:
Zalim Bashorov
2015-09-03 22:51:13 +03:00
committed by Michael Bogdanov
parent 6d76d4a9d0
commit 13bc63a62f
@@ -329,23 +329,18 @@ public class KotlinBuilder : ModuleLevelBuilder(BuilderCategory.SOURCE_PROCESSOR
val representativeTarget = chunk.representativeTarget()
for (outputItem in outputItemCollector.getOutputs()) {
var target: ModuleBuildTarget? = null
val sourceFiles = outputItem.getSourceFiles()
val outputFile = outputItem.getOutputFile()
if (!sourceFiles.isEmpty()) {
target = sourceToTarget[sourceFiles.iterator().next()]
}
if (target == null) {
target = representativeTarget
}
val sourceFiles = outputItem.sourceFiles
val outputFile = outputItem.outputFile
val target =
sourceFiles.firstOrNull()?.let { sourceToTarget[it] } ?:
chunk.targets.filter { it.outputDir?.let { outputFile.startsWith(it) } ?: false }.singleOrNull() ?:
representativeTarget
if (outputFile.getName().endsWith(".class")) {
result.add(GeneratedJvmClass(target!!, sourceFiles, outputFile))
result.add(GeneratedJvmClass(target, sourceFiles, outputFile))
}
else {
result.add(GeneratedFile(target!!, sourceFiles, outputFile))
result.add(GeneratedFile(target, sourceFiles, outputFile))
}
}
return result