-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathbuild.gradle
140 lines (117 loc) · 5.37 KB
/
build.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
/*
* Copyright (C) 2015-2017 akha, a.k.a. Alexander Kharitonov
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
buildscript {
repositories {
jcenter()
flatDir dirs: '../yakhont-weaver/build/libs' // Yakhont weaver
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' // Dagger 2
classpath 'akha.yakhont.weaver:yakhont-weaver:0.9.19' // Yakhont weaver
classpath 'org.javassist:javassist:3.20.0-GA'
}
}
apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
//noinspection GroovyMissingReturnStatement
android {
compileSdkVersion 25
buildToolsVersion '25.0.3'
//noinspection GroovyMissingReturnStatement
defaultConfig {
applicationId 'akha.yakhont.demo'
minSdkVersion 14
//noinspection OldTargetApi
targetSdkVersion 23 // for lower values permissions dialogs will not be shown
versionCode 10101
versionName '1.1'
resConfigs 'en', 'ru'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
lintOptions {
abortOnError false
}
buildTypes {
release {
minifyEnabled true
// normally it added from aar automatically - but this demo is not dependent on yakhont.aar
//proguardFile '../yakhont/proguard/proguard-consumer.pro'
rootProject.ext.projectProGuardFiles.each {
//noinspection GroovyAssignabilityCheck
proguardFile '../proguard/libs/' + it
}
proguardFile './proguard/libs/proguard-support-design.pro'
proguardFile './proguard/proguard-project-app.pro'
proguardFile '../proguard/proguard-project.pro'
//noinspection GroovyAssignabilityCheck
proguardFile getDefaultProguardFile('proguard-android.txt')
}
}
// workaround for the local Yakhont aar
repositories {
flatDir dirs: '../yakhont/build/outputs/aar'
}
// fixed DuplicateFileException when both RxJava 1.x and RxJava 2.x are in use
packagingOptions{
exclude 'META-INF/rxjava.properties'
}
}
ext.libVerDemoSupport = '25.3.1'
ext.libVerDemoDagger = '2.10'
ext.libVerDemoRetrofit2 = '2.3.0'
// in alphabetical order:
dependencies {
compile "com.google.dagger:dagger:${libVerDemoDagger}" // Dagger2
apt "com.google.dagger:dagger-compiler:${libVerDemoDagger}"
provided "javax.annotation:jsr250-api:1.0"
compile "com.android.support:appcompat-v7:${libVerDemoSupport}" // Google
compile "com.android.support:design:${libVerDemoSupport}"
compile "com.google.android.gms:play-services-location:11.0.4"
compile "com.squareup.retrofit2:retrofit:${libVerDemoRetrofit2}" // Retrofit
compile "com.squareup.retrofit2:converter-gson:${libVerDemoRetrofit2}"
compile "com.squareup.okhttp3:logging-interceptor:3.8.0"
compile "com.squareup.retrofit2:adapter-rxjava2:${libVerDemoRetrofit2}"
compile "com.squareup.retrofit:retrofit:1.9.0"
compile "io.reactivex.rxjava2:rxjava:2.1.0" // Rx
compile "io.reactivex:rxjava:1.3.0"
compile name:'yakhont-support', ext:'aar' // Yakhont
// 'cause support sources doesn't exist and generated 'on the fly'
// compile project(':yakhont')
}
android.variantFilter { variant ->
if (variant.buildType.name == 'release') { // or 'debug'; weaver can't handle both release and debug at the same time
variant.setIgnore(true);
}
}
String[] weaverConfigFiles = null // use default one; or something like "new String[] {projectDir.absolutePath + '/weaver.config'}"
boolean weaverDebug = false, weaverAddConfig = true
//noinspection GroovyAssignabilityCheck, UnnecessaryQualifiedReference
android.registerTransform(new akha.yakhont.weaver.WeaverTransform(weaverDebug, android.defaultConfig.applicationId,
android.bootClasspath.join(File.pathSeparator), weaverConfigFiles, weaverAddConfig))
/*
// to avoid using the Transform API, you can try the following:
android.applicationVariants.all { variant ->
JavaCompile javaCompile = variant.javaCompile
javaCompile.doLast {
new akha.yakhont.weaver.Weaver().run(weaverDebug, android.defaultConfig.applicationId,
javaCompile.destinationDir.toString(), javaCompile.classpath.asPath,
android.bootClasspath.join(File.pathSeparator), weaverConfigFiles, weaverAddConfig)
}
}
*/