diff options
author | Christian Williams <christianw@google.com> | 2016-12-14 11:55:01 -0800 |
---|---|---|
committer | Christian Williams <christianw@google.com> | 2016-12-14 12:09:29 -0800 |
commit | 603390ad7c8db5335ccb5c90aca9045934715f89 (patch) | |
tree | 1152c484fd67932b6e394d31e9fde8698f276ca8 /buildSrc | |
parent | e0128033ee08a9c8145368c922561287cc2b702e (diff) | |
download | robolectric-shadows-603390ad7c8db5335ccb5c90aca9045934715f89.tar.gz |
Revert "Fix incremental build and sources/javadoc jars."
This reverts commit 080da4de7f47f0a59eef492509640337b279d605.
The gradle plugin doesn't currently set up IntelliJ correctly for
annotation processing; reverting for now.
Diffstat (limited to 'buildSrc')
-rw-r--r-- | buildSrc/build.gradle | 2 | ||||
-rw-r--r-- | buildSrc/src/main/groovy/shadows.groovy | 44 |
2 files changed, 33 insertions, 13 deletions
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 5f8def096..0da01d240 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -3,11 +3,9 @@ apply plugin: "groovy" repositories { mavenLocal() mavenCentral() - maven { url 'https://plugins.gradle.org/m2/' } // for gradle-processors } dependencies { compile gradleApi() compile localGroovy() - compile "gradle.plugin.org.inferred:gradle-processors:1.2.3" } diff --git a/buildSrc/src/main/groovy/shadows.groovy b/buildSrc/src/main/groovy/shadows.groovy index 02dc5f411..e1ad99a61 100644 --- a/buildSrc/src/main/groovy/shadows.groovy +++ b/buildSrc/src/main/groovy/shadows.groovy @@ -6,28 +6,50 @@ import org.gradle.util.GFileUtils class ShadowsPlugin implements Plugin<Project> { @Override void apply(Project project) { - project.apply plugin: "org.inferred.processors" - project.extensions.create("shadows", ShadowsPluginExtension) + project.configurations { + robolectricProcessor + } + project.dependencies { - processor project.project(":robolectric-processor") + robolectricProcessor project.project(":robolectric-processor") } def generatedSourcesDir = "${project.buildDir}/generated-shadows" project.sourceSets.main.java.srcDirs += project.file(generatedSourcesDir) - def compileJava = project.tasks["compileJava"] - project.afterEvaluate { - compileJava.options.compilerArgs.addAll( - "-Aorg.robolectric.annotation.processing.shadowPackage=${project.shadows.packageName}" - ) - } + project.task("generateShadowProvider", type: JavaCompile, description: "Generate Shadows.shadowOf()s class") { task -> + classpath = project.configurations.robolectricProcessor + source = project.sourceSets.main.java + destinationDir = project.file(generatedSourcesDir) + + doFirst { + logger.info "Generating Shadows.java for ${project.name}…" - compileJava.doFirst { - logger.info "Generating Shadows.java for ${project.name}…" + // reset our classpath at the last minute, since other plugins might mutate + // compileJava's classpath and we want to pick up any changes… + classpath = project.tasks['compileJava'].classpath + project.configurations.robolectricProcessor + + options.compilerArgs.addAll( + "-proc:only", + "-processor", "org.robolectric.annotation.processing.RobolectricProcessor", + "-Aorg.robolectric.annotation.processing.shadowPackage=${project.shadows.packageName}" + ) + } + + doLast { + def src = project.file("$generatedSourcesDir/META-INF/services/org.robolectric.internal.ShadowProvider") + def dest = project.file("${project.buildDir}/resources/main/META-INF/services/org.robolectric.internal.ShadowProvider") + + GFileUtils.mkdirs(dest.getParentFile()); + GFileUtils.copyFile(src, dest); + } } + + def compileJavaTask = project.tasks["compileJava"] + compileJavaTask.dependsOn("generateShadowProvider") } } |