|
1 | 1 | buildscript { |
2 | | - repositories { |
3 | | - mavenCentral() |
4 | | - } |
5 | | - |
6 | | - dependencies { |
7 | | - classpath 'com.android.tools.build:gradle:0.12.+' |
8 | | - classpath 'com.alexvasilkov:android_sign:0.2+' |
9 | | - } |
| 2 | + repositories { |
| 3 | + mavenCentral() |
| 4 | + jcenter() |
| 5 | + |
| 6 | + } |
| 7 | + |
| 8 | + dependencies { |
| 9 | + classpath 'com.android.tools.build:gradle:0.12.2' |
| 10 | + classpath 'com.alexvasilkov:android_sign:0.2' |
| 11 | + classpath 'com.github.ben-manes:gradle-versions-plugin:0.5-beta-6' |
| 12 | + classpath 'org.codehaus.groovy:groovy-backports-compat23:2.3.5' |
| 13 | + } |
10 | 14 | } |
11 | 15 |
|
12 | 16 | import java.util.regex.Pattern |
13 | 17 |
|
14 | 18 | apply plugin: 'com.android.application' |
15 | 19 | apply plugin: 'android_sign' |
| 20 | +apply plugin: 'com.github.ben-manes.versions' |
16 | 21 |
|
17 | 22 | repositories { |
18 | | - mavenCentral() |
| 23 | + mavenCentral() |
| 24 | + maven { |
| 25 | + url { |
| 26 | + 'https://raw.github.com/kolavar/android-support-v4-preferencefragment/master/maven-repository/' |
| 27 | + } |
| 28 | + } |
19 | 29 | } |
20 | 30 |
|
21 | 31 | dependencies { |
22 | | - compile 'com.android.support:appcompat-v7:19.1.+' |
| 32 | + compile 'com.android.support:appcompat-v7:19.1.0' |
| 33 | + compile 'com.android.support:support-v4-preferencefragment:1.0.0@aar' |
| 34 | + androidTestCompile 'com.squareup.okhttp:mockwebserver:2.0.0' |
23 | 35 | } |
24 | 36 |
|
25 | 37 | preBuild { |
26 | | - dependsOn 'buildNative' |
| 38 | + dependsOn 'buildNative' |
27 | 39 | } |
28 | 40 |
|
29 | 41 | android { |
30 | | - compileSdkVersion 19 |
31 | | - buildToolsVersion "19.1.0" |
32 | | - |
33 | | - defaultConfig { |
34 | | - versionCode getVersionCodeFromManifest() |
35 | | - } |
36 | | - |
37 | | - sourceSets { |
38 | | - main { |
39 | | - jniLibs.srcDir file("libs/") |
40 | | - } |
41 | | - } |
42 | | - |
43 | | - signingConfigs { |
44 | | - release { |
45 | | - // Android Studio does not pass environment variables. |
46 | | - // This means you have to use the command line for release builds. |
47 | | - def ks = System.getenv("KEYSTORE") |
48 | | - def ka = System.getenv("KEY_ALIAS") |
49 | | - if (ks != null && ka != null) { |
50 | | - storeFile file(ks) |
51 | | - keyAlias ka |
52 | | - } |
53 | | - } |
54 | | - } |
55 | | - |
56 | | - buildTypes { |
57 | | - debug { |
58 | | - applicationIdSuffix ".debug" |
59 | | - debuggable true |
60 | | - } |
61 | | - release { |
62 | | - signingConfig signingConfigs.release |
63 | | - } |
64 | | - } |
65 | | - |
66 | | - productFlavors { |
67 | | - x86 { |
68 | | - versionCode Integer.parseInt("4" + defaultConfig.versionCode) |
69 | | - ndk { |
70 | | - abiFilter "x86" |
71 | | - } |
72 | | - } |
73 | | - armeabi_v7a { |
74 | | - versionCode Integer.parseInt("3" + defaultConfig.versionCode) |
75 | | - ndk { |
76 | | - abiFilter "armeabi-v7a" |
77 | | - } |
78 | | - } |
79 | | - armeabi { |
80 | | - versionCode Integer.parseInt("2" + defaultConfig.versionCode) |
81 | | - ndk { |
82 | | - abiFilter "armeabi" |
83 | | - } |
84 | | - } |
85 | | - mips { |
86 | | - versionCode Integer.parseInt("1" + defaultConfig.versionCode) |
87 | | - ndk { |
88 | | - abiFilter "mips" |
89 | | - } |
90 | | - } |
91 | | - fat { |
92 | | - versionCode Integer.parseInt("0" + defaultConfig.versionCode) |
93 | | - } |
94 | | - } |
| 42 | + compileSdkVersion 19 |
| 43 | + buildToolsVersion "19.1.0" |
| 44 | + |
| 45 | + defaultConfig { |
| 46 | + versionCode getVersionCodeFromManifest() |
| 47 | + testApplicationId 'com.nutomic.syncthingandroid.test' |
| 48 | + testInstrumentationRunner 'android.test.InstrumentationTestRunner' |
| 49 | + testHandleProfiling true |
| 50 | + testFunctionalTest true |
| 51 | + } |
| 52 | + |
| 53 | + sourceSets { |
| 54 | + main { |
| 55 | + jniLibs.srcDir file("libs/") |
| 56 | + } |
| 57 | + } |
| 58 | + |
| 59 | + signingConfigs { |
| 60 | + release { |
| 61 | + // Android Studio does not pass environment variables. |
| 62 | + // This means you have to use the command line for release builds. |
| 63 | + def ks = System.getenv("KEYSTORE") |
| 64 | + def ka = System.getenv("KEY_ALIAS") |
| 65 | + if (ks != null && ka != null) { |
| 66 | + storeFile file(ks) |
| 67 | + keyAlias ka |
| 68 | + } |
| 69 | + } |
| 70 | + } |
| 71 | + |
| 72 | + buildTypes { |
| 73 | + debug { |
| 74 | + applicationIdSuffix ".debug" |
| 75 | + debuggable true |
| 76 | + } |
| 77 | + release { |
| 78 | + signingConfig signingConfigs.release |
| 79 | + } |
| 80 | + } |
| 81 | + |
| 82 | + productFlavors { |
| 83 | + x86 { |
| 84 | + versionCode Integer.parseInt("4" + defaultConfig.versionCode) |
| 85 | + ndk { |
| 86 | + abiFilter "x86" |
| 87 | + } |
| 88 | + } |
| 89 | + armeabi_v7a { |
| 90 | + versionCode Integer.parseInt("3" + defaultConfig.versionCode) |
| 91 | + ndk { |
| 92 | + abiFilter "armeabi-v7a" |
| 93 | + } |
| 94 | + } |
| 95 | + armeabi { |
| 96 | + versionCode Integer.parseInt("2" + defaultConfig.versionCode) |
| 97 | + ndk { |
| 98 | + abiFilter "armeabi" |
| 99 | + } |
| 100 | + } |
| 101 | + mips { |
| 102 | + versionCode Integer.parseInt("1" + defaultConfig.versionCode) |
| 103 | + ndk { |
| 104 | + abiFilter "mips" |
| 105 | + } |
| 106 | + } |
| 107 | + fat { |
| 108 | + versionCode Integer.parseInt("0" + defaultConfig.versionCode) |
| 109 | + } |
| 110 | + } |
| 111 | + compileOptions { |
| 112 | + sourceCompatibility JavaVersion.VERSION_1_7 |
| 113 | + targetCompatibility JavaVersion.VERSION_1_7 |
| 114 | + } |
95 | 115 | } |
96 | 116 |
|
97 | 117 | def getVersionCodeFromManifest() { |
98 | | - def manifestFile = file(android.sourceSets.main.manifest.srcFile) |
99 | | - def pattern = Pattern.compile("versionCode=\"(\\d+)\"") |
100 | | - def matcher = pattern.matcher(manifestFile.getText()) |
101 | | - matcher.find() |
102 | | - return Integer.parseInt(matcher.group(1)) |
| 118 | + def manifestFile = file(android.sourceSets.main.manifest.srcFile) |
| 119 | + def pattern = Pattern.compile("versionCode=\"(\\d+)\"") |
| 120 | + def matcher = pattern.matcher(manifestFile.getText()) |
| 121 | + matcher.find() |
| 122 | + return Integer.parseInt(matcher.group(1)) |
103 | 123 | } |
104 | 124 |
|
105 | 125 | task buildNative(type: Exec) { |
106 | | - outputs.upToDateWhen { false } |
107 | | - executable = './build-syncthing.sh' |
| 126 | + outputs.upToDateWhen { false } |
| 127 | + executable = './build-syncthing.sh' |
108 | 128 | } |
109 | 129 |
|
110 | 130 | task copyNative(type: Copy) { |
111 | | - def lib_dir = "libs/" |
112 | | - new File(lib_dir).mkdirs() |
113 | | - def st_dir = "bin/"; |
114 | | - from st_dir + 'syncthing-x86', st_dir + 'syncthing-armeabi', st_dir + 'syncthing-armeabi-v7a'; |
115 | | - into lib_dir |
116 | | - rename('syncthing-x86', 'x86/libsyncthing.so') |
| 131 | + def lib_dir = "libs/" |
| 132 | + new File(lib_dir).mkdirs() |
| 133 | + def st_dir = "bin/"; |
| 134 | + from st_dir + 'syncthing-x86', st_dir + 'syncthing-armeabi', st_dir + 'syncthing-armeabi-v7a'; |
| 135 | + into lib_dir |
| 136 | + rename('syncthing-x86', 'x86/libsyncthing.so') |
117 | 137 | rename('syncthing-armeabi-v7a', 'armeabi-v7a/libsyncthing.so') |
118 | | - rename('syncthing-armeabi', 'armeabi/libsyncthing.so') |
| 138 | + rename('syncthing-armeabi', 'armeabi/libsyncthing.so') |
119 | 139 | } |
120 | 140 | buildNative.finalizedBy copyNative |
121 | 141 |
|
122 | 142 | task cleanBin(type: Delete) { |
123 | | - delete 'bin/' |
| 143 | + delete 'bin/' |
124 | 144 | } |
125 | 145 | copyNative.finalizedBy cleanBin |
126 | 146 |
|
127 | 147 | task cleanNative(type: Delete) { |
128 | | - delete 'bin/' |
129 | | - delete 'build/' |
130 | | - delete 'libs/' |
131 | | - delete 'ext/syncthing/bin/' |
132 | | - delete 'ext/syncthing/pkg/' |
| 148 | + delete 'bin/' |
| 149 | + delete 'build/' |
| 150 | + delete 'libs/' |
| 151 | + delete 'ext/syncthing/bin/' |
| 152 | + delete 'ext/syncthing/pkg/' |
133 | 153 | } |
134 | 154 | clean.dependsOn cleanNative |
135 | 155 |
|
0 commit comments