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

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