aboutsummaryrefslogtreecommitdiff
path: root/buildSrc
diff options
context:
space:
mode:
authorChristian Williams <christianw@google.com>2016-12-09 18:19:32 -0800
committerChristian Williams <christianw@google.com>2016-12-09 18:19:32 -0800
commit080da4de7f47f0a59eef492509640337b279d605 (patch)
tree04e82a93a5e2c862573c6f43c766f499a2fb9371 /buildSrc
parentc4462b892d9ac1981181e2ce0d91ee663cfe15bc (diff)
downloadrobolectric-shadows-080da4de7f47f0a59eef492509640337b279d605.tar.gz
Fix incremental build and sources/javadoc jars.
Diffstat (limited to 'buildSrc')
-rw-r--r--buildSrc/build.gradle2
-rw-r--r--buildSrc/src/main/groovy/shadows.groovy44
2 files changed, 13 insertions, 33 deletions
diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index 0da01d240..5f8def096 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -3,9 +3,11 @@ 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 e1ad99a61..02dc5f411 100644
--- a/buildSrc/src/main/groovy/shadows.groovy
+++ b/buildSrc/src/main/groovy/shadows.groovy
@@ -6,50 +6,28 @@ import org.gradle.util.GFileUtils
class ShadowsPlugin implements Plugin<Project> {
@Override
void apply(Project project) {
- project.extensions.create("shadows", ShadowsPluginExtension)
+ project.apply plugin: "org.inferred.processors"
- project.configurations {
- robolectricProcessor
- }
+ project.extensions.create("shadows", ShadowsPluginExtension)
project.dependencies {
- robolectricProcessor project.project(":robolectric-processor")
+ processor project.project(":robolectric-processor")
}
def generatedSourcesDir = "${project.buildDir}/generated-shadows"
project.sourceSets.main.java.srcDirs += project.file(generatedSourcesDir)
- 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}…"
-
- // 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 compileJava = project.tasks["compileJava"]
+ project.afterEvaluate {
+ compileJava.options.compilerArgs.addAll(
+ "-Aorg.robolectric.annotation.processing.shadowPackage=${project.shadows.packageName}"
+ )
}
- def compileJavaTask = project.tasks["compileJava"]
- compileJavaTask.dependsOn("generateShadowProvider")
+ compileJava.doFirst {
+ logger.info "Generating Shadows.java for ${project.name}…"
+ }
}
}