diff --git a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlProcessor.kt b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlProcessor.kt index ea07b28420c..52a2d9723e4 100644 --- a/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlProcessor.kt +++ b/compiler/frontend.android/src/org/jetbrains/jet/lang/resolve/android/AndroidUIXmlProcessor.kt @@ -103,7 +103,7 @@ abstract class AndroidUIXmlProcessor(val project: Project) { private fun writeImports(kw: KotlinStringWriter): KotlinWriter { kw.writePackage(androidAppPackage) - if (ApplicationManager.getApplication()?.isUnitTestMode() ?: false) return kw +// if (ApplicationManager.getApplication()?.isUnitTestMode() ?: false) return kw for (elem in androidImports) kw.writeImport(elem) kw.writeEmptyLine() diff --git a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt index fd3ee02464b..7df3da0072e 100644 --- a/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt +++ b/libraries/tools/kotlin-gradle-plugin-core/src/main/kotlin/org/jetbrains/kotlin/gradle/tasks/Tasks.kt @@ -46,6 +46,41 @@ abstract class AbstractKotlinCompile() : AbstractCo private val logger = Logging.getLogger(this.javaClass) override fun getLogger() = logger + public var resPath: String = "" + public var manifestPath: String = "" + + // override setSource to track source directory sets + override fun setSource(source: Any?) { + srcDirsSources.clear() + if (source is SourceDirectorySet) { + srcDirsSources.add(source) + } + super.setSource(source) + } + + // override source to track source directory sets + override fun source(vararg sources: Any?): SourceTask? { + for (source in sources) { + if (source is SourceDirectorySet) { + srcDirsSources.add(source) + } + } + return super.source(sources) + } + + fun findSrcDirRoot(file: File): File? { + val absPath = file.getAbsolutePath() + for (source in srcDirsSources) { + for (root in source.getSrcDirs()) { + val rootAbsPath = root.getAbsolutePath() + if (FilenameUtils.directoryContains(rootAbsPath, absPath)) { + return root + } + } + } + return null + } + [TaskAction] override fun compile() { getLogger().debug("Starting ${javaClass} task") @@ -75,7 +110,6 @@ abstract class AbstractKotlinCompile() : AbstractCo args.noInline = kotlinOptions.noInline } - private fun callCompiler(args: T) { val messageCollector = GradleMessageCollector(getLogger()) getLogger().debug("Calling compiler") @@ -97,6 +131,9 @@ public open class KotlinCompile() : AbstractKotlinCompile() override fun populateTargetSpecificArgs(args: K2JVMCompilerArguments) { + args.androidRes = resPath + args.androidManifest = manifestPath + if (StringUtils.isEmpty(kotlinOptions.classpath)) { val existingClasspathEntries = getClasspath().filter({ it != null && it.exists() }) val effectiveClassPath = (getJavaSourceRoots() + existingClasspathEntries).makeString(File.pathSeparator) diff --git a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt index 7faf82d1cc3..548831fdac9 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/main/kotlin/org/jetbrains/kotlin/gradle/plugin/KotlinPlugin.kt @@ -338,6 +338,9 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t kotlinTask.setClasspath(javaTask.getClasspath()) kotlinTask.setDependsOn(javaTask.getDependsOn()) + kotlinTask.resPath = File(variant.getMergeResources()?.getOutputDir()!!.canonicalPath + "/layout").canonicalPath + kotlinTask.manifestPath = variant.getProcessResources().getManifestFile()!!.canonicalPath + val javaSourceList = ArrayList() fun processSourceSet(javaSourceSet: AndroidSourceSet) {