aboutsummaryrefslogtreecommitdiff
path: root/buildSrc
diff options
context:
space:
mode:
authorChristian Williams <christianw@google.com>2016-12-14 11:55:01 -0800
committerChristian Williams <christianw@google.com>2016-12-14 12:09:29 -0800
commit603390ad7c8db5335ccb5c90aca9045934715f89 (patch)
tree1152c484fd67932b6e394d31e9fde8698f276ca8 /buildSrc
parente0128033ee08a9c8145368c922561287cc2b702e (diff)
downloadrobolectric-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.gradle2
-rw-r--r--buildSrc/src/main/groovy/shadows.groovy44
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")
}
}