Gradle plugin: fix compatibility with android-gradle plugin 2.0.0-alpha5
#KT-10676 Fixed
This commit is contained in:
committed by
Natalia Ukhorskaya
parent
8f441a020e
commit
d4fcb59965
+1
-1
@@ -399,7 +399,7 @@ open class KotlinAndroidPlugin @Inject constructor(val scriptHandler: ScriptHand
|
||||
// getJavaSources should return the Java sources used for compilation
|
||||
// We want to collect only generated files, like R-class output dir
|
||||
// Actual java sources will be collected later
|
||||
val additionalSourceFiles = variantData.getJavaSources().filterIsInstance(javaClass<File>())
|
||||
val additionalSourceFiles = AndroidGradleWrapper.getGeneratedSourceDirs(variantData)
|
||||
for (file in additionalSourceFiles) {
|
||||
kotlinTask.source(file)
|
||||
logger.kotlinDebug("Source directory with generated files ${file.getAbsolutePath()} was added to kotlin source for $kotlinTaskName")
|
||||
|
||||
+34
@@ -7,6 +7,7 @@ import com.android.build.gradle.api.ApkVariant
|
||||
import com.android.build.gradle.api.BaseVariant
|
||||
import com.android.build.gradle.api.TestVariant
|
||||
import com.android.build.gradle.internal.VariantManager
|
||||
import com.android.build.gradle.internal.variant.BaseVariantData
|
||||
import org.gradle.api.internal.DefaultDomainObjectSet
|
||||
import org.gradle.api.tasks.compile.AbstractCompile
|
||||
import org.gradle.api.tasks.util.PatternFilterable
|
||||
@@ -102,4 +103,37 @@ class AndroidGradleWrapper {
|
||||
static def VariantManager getVariantDataManager(BasePlugin plugin) {
|
||||
return plugin.getVariantManager()
|
||||
}
|
||||
|
||||
static def List<File> getGeneratedSourceDirs(BaseVariantData variantData) {
|
||||
def getJavaSourcesMethod = variantData.getMetaClass().getMetaMethod("getJavaSources")
|
||||
if (getJavaSourcesMethod.returnType.metaClass == Object[].metaClass) {
|
||||
return variantData.getJavaSources().findAll { it instanceof File }
|
||||
}
|
||||
else {
|
||||
def result = new ArrayList<File>()
|
||||
|
||||
if (variantData.scope.getGenerateRClassTask() != null) {
|
||||
result.add(variantData.scope.getRClassSourceOutputDir());
|
||||
}
|
||||
|
||||
if (variantData.scope.getGenerateBuildConfigTask() != null) {
|
||||
result.add(variantData.scope.getBuildConfigSourceOutputDir());
|
||||
}
|
||||
|
||||
if (variantData.scope.getAidlCompileTask() != null) {
|
||||
result.add(variantData.scope.getAidlSourceOutputDir());
|
||||
}
|
||||
|
||||
if (variantData.scope.getGlobalScope().getExtension().getDataBinding().isEnabled()) {
|
||||
result.add(variantData.scope.getClassOutputForDataBinding());
|
||||
}
|
||||
|
||||
if (!variantData.variantConfiguration.getRenderscriptNdkModeEnabled()
|
||||
&& variantData.scope.getRenderscriptCompileTask() != null) {
|
||||
result.add(variantData.scope.getRenderscriptSourceOutputDir());
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user