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
|
// getJavaSources should return the Java sources used for compilation
|
||||||
// We want to collect only generated files, like R-class output dir
|
// We want to collect only generated files, like R-class output dir
|
||||||
// Actual java sources will be collected later
|
// Actual java sources will be collected later
|
||||||
val additionalSourceFiles = variantData.getJavaSources().filterIsInstance(javaClass<File>())
|
val additionalSourceFiles = AndroidGradleWrapper.getGeneratedSourceDirs(variantData)
|
||||||
for (file in additionalSourceFiles) {
|
for (file in additionalSourceFiles) {
|
||||||
kotlinTask.source(file)
|
kotlinTask.source(file)
|
||||||
logger.kotlinDebug("Source directory with generated files ${file.getAbsolutePath()} was added to kotlin source for $kotlinTaskName")
|
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.BaseVariant
|
||||||
import com.android.build.gradle.api.TestVariant
|
import com.android.build.gradle.api.TestVariant
|
||||||
import com.android.build.gradle.internal.VariantManager
|
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.internal.DefaultDomainObjectSet
|
||||||
import org.gradle.api.tasks.compile.AbstractCompile
|
import org.gradle.api.tasks.compile.AbstractCompile
|
||||||
import org.gradle.api.tasks.util.PatternFilterable
|
import org.gradle.api.tasks.util.PatternFilterable
|
||||||
@@ -102,4 +103,37 @@ class AndroidGradleWrapper {
|
|||||||
static def VariantManager getVariantDataManager(BasePlugin plugin) {
|
static def VariantManager getVariantDataManager(BasePlugin plugin) {
|
||||||
return plugin.getVariantManager()
|
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