Gradle: Include java sources to sources, not to classpath
#KT-7503 Fixed
This commit is contained in:
+13
-17
@@ -343,17 +343,15 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
|
|||||||
kotlinTask.setClasspath(javaTask.getClasspath())
|
kotlinTask.setClasspath(javaTask.getClasspath())
|
||||||
kotlinTask.setDependsOn(javaTask.getDependsOn())
|
kotlinTask.setDependsOn(javaTask.getDependsOn())
|
||||||
|
|
||||||
val javaSourceList = ArrayList<Any?>()
|
fun processSourceSet(javaSourceSet: AndroidSourceSet): SourceDirectorySet {
|
||||||
|
|
||||||
fun processSourceSet(javaSourceSet: AndroidSourceSet) {
|
|
||||||
val javaSrcDirs = AndroidGradleWrapper.getJavaSrcDirs(javaSourceSet)
|
val javaSrcDirs = AndroidGradleWrapper.getJavaSrcDirs(javaSourceSet)
|
||||||
javaSourceList.addAll(javaSrcDirs)
|
val kotlinSourceSet = getExtension<KotlinSourceSet>(javaSourceSet, "kotlin")
|
||||||
val testKotlinSource = getExtension<KotlinSourceSet>(javaSourceSet, "kotlin")
|
val kotlinSDS = kotlinSourceSet.getKotlin()
|
||||||
val kotlinSDS = testKotlinSource.getKotlin()
|
|
||||||
for (dir in javaSrcDirs) {
|
for (dir in javaSrcDirs) {
|
||||||
kotlinSDS.srcDir(dir)
|
kotlinSDS.srcDir(dir)
|
||||||
}
|
}
|
||||||
kotlinTask.source(kotlinSDS)
|
kotlinTask.source(kotlinSDS)
|
||||||
|
return kotlinSDS
|
||||||
}
|
}
|
||||||
|
|
||||||
if (variant is TestVariant) {
|
if (variant is TestVariant) {
|
||||||
@@ -362,17 +360,16 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
|
|||||||
processSourceSet(mainSourceSet)
|
processSourceSet(mainSourceSet)
|
||||||
}
|
}
|
||||||
|
|
||||||
if (null != buildTypeSourceSet) {
|
if (buildTypeSourceSet != null) {
|
||||||
processSourceSet(buildTypeSourceSet)
|
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) {
|
if (variant is ApkVariant) {
|
||||||
for (flavourName in AndroidGradleWrapper.getProductFlavorsNames(variant)) {
|
for (flavourName in AndroidGradleWrapper.getProductFlavorsNames(variant)) {
|
||||||
val defaultFlavourSourceSetName = flavourName + buildTypeSourceSetName.capitalize()
|
val defaultFlavourSourceSetName = flavourName + buildTypeSourceSetName.capitalize()
|
||||||
@@ -396,9 +393,8 @@ open class KotlinAndroidPlugin [Inject] (val scriptHandler: ScriptHandler, val t
|
|||||||
plugin = project.getPlugins().findPlugin("android-library")
|
plugin = project.getPlugins().findPlugin("android-library")
|
||||||
}
|
}
|
||||||
val basePlugin: BasePlugin = plugin as BasePlugin
|
val basePlugin: BasePlugin = plugin as BasePlugin
|
||||||
val javaSources = project.files(javaSourceList)
|
|
||||||
val androidRT = project.files(AndroidGradleWrapper.getRuntimeJars(basePlugin, androidExt))
|
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)
|
(it as AbstractCompile).setClasspath(fullClasspath)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user