Skip to content

Commit ded625e

Browse files
bejibxgrandstaish
authored andcommitted
Add gradle incremental compilation support (#219)
1 parent 40e7d1d commit ded625e

File tree

8 files changed

+58
-34
lines changed

8 files changed

+58
-34
lines changed

build.gradle

+23-17
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ subprojects { project ->
33
version = VERSION_NAME
44
}
55

6-
ext.kotlin_version = '1.1.60'
6+
ext.kotlin_version = '1.3.31'
77

88
allprojects {
99
repositories {
@@ -20,7 +20,7 @@ allprojects {
2020

2121
dependencies {
2222
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
23-
classpath 'com.android.tools.build:gradle:3.0.1'
23+
classpath 'com.android.tools.build:gradle:3.4.1'
2424
classpath 'io.realm:realm-gradle-plugin:2.2.1'
2525
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
2626
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.4.1'
@@ -38,7 +38,7 @@ ext {
3838
minSdkVersion = 9
3939
targetSdkVersion = 27
4040
compileSdkVersion = 27
41-
buildToolsVersion = '26.0.2'
41+
buildToolsVersion = '28.0.3'
4242
sourceCompatibilityVersion = JavaVersion.VERSION_1_7
4343
targetCompatibilityVersion = JavaVersion.VERSION_1_7
4444
}
@@ -57,22 +57,28 @@ project.plugins.whenPluginAdded { plugin ->
5757
}
5858

5959
def androidSupportVersion = '27.0.1'
60+
def gradleIncapHelperVersion = '0.2'
61+
def autoserviceVersion = '1.0-rc5'
6062

6163
ext.deps = [
62-
android : 'com.google.android:android:4.1.1.4',
63-
supportAnnotations : "com.android.support:support-annotations:$androidSupportVersion",
64-
appCompat : "com.android.support:appcompat-v7:$androidSupportVersion",
65-
design : "com.android.support:design:$androidSupportVersion",
66-
supportTestRunner : 'com.android.support.test:runner:0.5',
67-
javapoet : 'com.squareup:javapoet:1.8.0',
68-
autovalue : 'com.google.auto.value:auto-value:1.3',
69-
autocommon : 'com.google.auto:auto-common:0.8',
70-
autoservice : 'com.google.auto.service:auto-service:1.0-rc2',
71-
javaFormat : 'com.google.googlejavaformat:google-java-format:1.1',
72-
junit : 'junit:junit:4.12',
73-
truth : 'com.google.truth:truth:0.30',
74-
compiletesting : 'com.google.testing.compile:compile-testing:0.10',
75-
lombok : "org.projectlombok:lombok:1.16.16"
64+
android : 'com.google.android:android:4.1.1.4',
65+
supportAnnotations : "com.android.support:support-annotations:$androidSupportVersion",
66+
appCompat : "com.android.support:appcompat-v7:$androidSupportVersion",
67+
design : "com.android.support:design:$androidSupportVersion",
68+
supportTestRunner : 'com.android.support.test:runner:0.5',
69+
javapoet : 'com.squareup:javapoet:1.8.0',
70+
autovalueProcessor : 'com.google.auto.value:auto-value:1.6.5',
71+
autovalueApi : 'com.google.auto.value:auto-value-annotations:1.6.3',
72+
autocommon : 'com.google.auto:auto-common:0.8',
73+
autoserviceProcessor : "com.google.auto.service:auto-service:$autoserviceVersion",
74+
autoserviceApi : "com.google.auto.service:auto-service-annotations:$autoserviceVersion",
75+
javaFormat : 'com.google.googlejavaformat:google-java-format:1.1',
76+
junit : 'junit:junit:4.12',
77+
truth : 'com.google.truth:truth:0.30',
78+
compiletesting : 'com.google.testing.compile:compile-testing:0.10',
79+
lombok : "org.projectlombok:lombok:1.16.16",
80+
gradleIncapHelperApi : "net.ltgt.gradle.incap:incap:$gradleIncapHelperVersion",
81+
gradleIncapHelperProcessor: "net.ltgt.gradle.incap:incap-processor:$gradleIncapHelperVersion"
7682
]
7783

7884
task clean(type: Delete) {

gradle/wrapper/gradle-wrapper.properties

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.zip

paperparcel-compiler/build.gradle

+7-2
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@ targetCompatibility = rootProject.ext.targetCompatibilityVersion
66

77
dependencies {
88
compile project(':paperparcel-api')
9-
compile deps.autovalue
10-
compile deps.autoservice
9+
compile deps.autovalueApi
10+
compile deps.autovalueProcessor
11+
annotationProcessor deps.autovalueProcessor
12+
compile deps.autoserviceApi
13+
annotationProcessor deps.autoserviceProcessor
1114
compile deps.autocommon
1215
compile deps.javapoet
1316
compile deps.javaFormat
17+
compile deps.gradleIncapHelperApi
18+
annotationProcessor deps.gradleIncapHelperProcessor
1419
}
1520

1621
apply from: rootProject.file('gradle/bintray.gradle')

paperparcel-compiler/src/main/java/paperparcel/PaperParcelAutoValueExtension.java

+5
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ public class PaperParcelAutoValueExtension extends AutoValueExtension {
5858
private static final TypeName PARCEL = ClassName.get("android.os", "Parcel");
5959
private static final String NULLABLE_ANNOTATION_NAME = "Nullable";
6060

61+
@Override
62+
public IncrementalExtensionType incrementalType(final ProcessingEnvironment processingEnvironment) {
63+
return IncrementalExtensionType.ISOLATING;
64+
}
65+
6166
@Override public boolean applicable(Context context) {
6267
ProcessingEnvironment env = context.processingEnvironment();
6368
Elements elements = env.getElementUtils();

paperparcel-compiler/src/main/java/paperparcel/PaperParcelProcessor.java

+5
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
import com.google.auto.service.AutoService;
2121
import com.google.common.collect.ImmutableList;
2222
import com.google.googlejavaformat.java.filer.FormattingFiler;
23+
24+
import net.ltgt.gradle.incap.IncrementalAnnotationProcessor;
25+
import net.ltgt.gradle.incap.IncrementalAnnotationProcessorType;
26+
2327
import javax.annotation.processing.Filer;
2428
import javax.annotation.processing.Messager;
2529
import javax.annotation.processing.Processor;
@@ -32,6 +36,7 @@
3236
* implementation.
3337
*/
3438
@AutoService(Processor.class)
39+
@IncrementalAnnotationProcessor(IncrementalAnnotationProcessorType.AGGREGATING)
3540
public class PaperParcelProcessor extends BasicAnnotationProcessor {
3641
@Override public SourceVersion getSupportedSourceVersion() {
3742
return SourceVersion.latestSupported();

paperparcel-kotlin/build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@ dokka {
3030
}
3131

3232
dependencies {
33-
provided "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
33+
compileOnly "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
3434

35-
provided project(":paperparcel")
35+
compileOnly project(":paperparcel")
3636
}
3737

3838
apply from: rootProject.file('gradle/bintray.gradle')

paperparcel/build.gradle

+14-11
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import org.gradle.internal.jvm.Jvm
2+
13
apply plugin: 'com.android.library'
24

35
android {
@@ -25,20 +27,21 @@ tasks.withType(Test) {
2527
}
2628

2729
dependencies {
28-
compile project(':paperparcel-api')
29-
compile deps.supportAnnotations
30+
api project(':paperparcel-api')
31+
api deps.supportAnnotations
3032

31-
androidTestCompile deps.junit
32-
androidTestCompile deps.truth
33-
androidTestCompile deps.supportTestRunner
33+
androidTestImplementation deps.junit
34+
androidTestImplementation deps.truth
35+
androidTestImplementation deps.supportTestRunner
3436
androidTestAnnotationProcessor project(':paperparcel-compiler')
3537

36-
testCompile deps.junit
37-
testCompile deps.truth
38-
testCompile deps.compiletesting
39-
testCompile files(getRuntimeJar())
40-
testCompile files(org.gradle.internal.jvm.Jvm.current().getToolsJar())
41-
testCompile project(':paperparcel-compiler')
38+
testImplementation deps.junit
39+
testImplementation deps.truth
40+
testImplementation deps.compiletesting
41+
testImplementation files(getRuntimeJar())
42+
testImplementation files(Jvm.current().getToolsJar())
43+
testImplementation project(':paperparcel-compiler')
44+
testAnnotationProcessor project(':paperparcel-compiler')
4245
}
4346

4447
def getRuntimeJar() {
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
<manifest package="paperparcel"/>
1+
<manifest package="paperparcel.core"/>

0 commit comments

Comments
 (0)