Gradle: Include java sources to sources, not to classpath

#KT-7503 Fixed
This commit is contained in:
Natalia Ukhorskaya
2015-04-21 14:06:09 +03:00
parent 3da49df471
commit f0e93d2df5
@@ -343,17 +343,15 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
kotlinTask.setClasspath(javaTask.getClasspath())
kotlinTask.setDependsOn(javaTask.getDependsOn())
val javaSourceList = ArrayList<Any?>()
fun processSourceSet(javaSourceSet: AndroidSourceSet) {
fun processSourceSet(javaSourceSet: AndroidSourceSet): SourceDirectorySet {
val javaSrcDirs = AndroidGradleWrapper.getJavaSrcDirs(javaSourceSet)
javaSourceList.addAll(javaSrcDirs)
val testKotlinSource = getExtension<KotlinSourceSet>(javaSourceSet, "kotlin")
val kotlinSDS = testKotlinSource.getKotlin()
val kotlinSourceSet = getExtension<KotlinSourceSet>(javaSourceSet, "kotlin")
val kotlinSDS = kotlinSourceSet.getKotlin()
for (dir in javaSrcDirs) {
kotlinSDS.srcDir(dir)
}
kotlinTask.source(kotlinSDS)
return kotlinSDS
}
if (variant is TestVariant) {
@@ -362,17 +360,16 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
processSourceSet(mainSourceSet)
}
if (null != buildTypeSourceSet) {
processSourceSet(buildTypeSourceSet)
if (buildTypeSourceSet != null) {
val variantSourceDirectorySet = processSourceSet(buildTypeSourceSet)
for (resourceFolder in AndroidGradleWrapper.getRClassFolder(variant)) {
variantSourceDirectorySet.srcDir(resourceFolder)
}
variantSourceDirectorySet.srcDir(variant.getGenerateBuildConfig()?.getSourceOutputDir())
variantSourceDirectorySet.srcDir(variant.getAidlCompile().getSourceOutputDir())
variantSourceDirectorySet.srcDir(variant.getRenderscriptCompile().getSourceOutputDir())
}
for (resourceFolder in AndroidGradleWrapper.getRClassFolder(variant)) {
javaSourceList.add(resourceFolder)
}
javaSourceList.add(variant.getGenerateBuildConfig()?.getSourceOutputDir())
javaSourceList.add(variant.getAidlCompile().getSourceOutputDir())
javaSourceList.add(variant.getRenderscriptCompile().getSourceOutputDir())
if (variant is ApkVariant) {
for (flavourName in AndroidGradleWrapper.getProductFlavorsNames(variant)) {
val defaultFlavourSourceSetName = flavourName + buildTypeSourceSetName.capitalize()
@@ -396,9 +393,8 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
plugin = project.getPlugins().findPlugin("android-library")
}
val basePlugin: BasePlugin = plugin as BasePlugin
val javaSources = project.files(javaSourceList)
val androidRT = project.files(AndroidGradleWrapper.getRuntimeJars(basePlugin, androidExt))
val fullClasspath = (javaTask.getClasspath() + (javaSources + androidRT)) - project.files(kotlinTask.property("kotlinDestinationDir"))
val fullClasspath = (javaTask.getClasspath() + androidRT) - project.files(kotlinTask.property("kotlinDestinationDir"))
(it as AbstractCompile).setClasspath(fullClasspath)
}