forked from MarcusWolschon/osmeditor4android
-
Notifications
You must be signed in to change notification settings - Fork 0
/
build.gradle
103 lines (86 loc) · 3 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
// Top-level build file where you can add
// configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'
}
}
allprojects {
repositories {
mavenCentral()
}
}
// Project level build file starts here
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion project.getMinSdkVersion()
targetSdkVersion project.getTargetSdkVersion()
versionCode project.getVersionCode()
versionName "${project.getVersionName()}"
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
}
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:recyclerview-v7:23.3.0'
compile 'com.android.support:preference-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
}
int getMinSdkVersion() {
def xml = getXmlFromFile("${projectDir}/AndroidManifest.xml")
return xml.'uses-sdk'.@'android:minSdkVersion'.toInteger()
}
int getTargetSdkVersion() {
def xml = getXmlFromFile("${projectDir}/AndroidManifest.xml")
return xml.'uses-sdk'.@'android:targetSdkVersion'.toInteger()
}
int getVersionCode() {
def xml = getXmlFromFile("${projectDir}/AndroidManifest.xml")
return xml.@'android:versionCode'.toInteger()
}
String getVersionName() {
def xml = getXmlFromFile("${projectDir}/res/values/appname.xml")
def versionName = xml.string.find { it.@name == 'app_version' }.toString()
if (versionName == null || versionName.length() == 0) {
throw new NullPointerException("Failure extracting version name.")
}
return versionName
}
def getXmlFromFile(String xmlFilePath) {
def xml = new XmlSlurper().parse(new File(xmlFilePath))
if (xml == null) {
throw new NullPointerException("Failure reading from " + xmlFilePath)
}
return xml;
}