blob: 058fd11eb5b4751d2a8ff4a524753e109cfa7d82 (
plain)
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
|
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
repositories {
mavenCentral()
maven { url 'http://wordpress-mobile.github.io/WordPress-Android' }
}
dependencies {
// Provided by maven central
compile 'com.google.code.gson:gson:2.2.2'
compile 'org.ccil.cowan.tagsoup:tagsoup:1.2.1'
compile 'com.android.support:support-v4:18.0.+'
// These are provided by the WordPress-Android Repository
compile 'org.wordpress:actionbarsherlock:4.4.0'
compile 'org.wordpress:menudrawer:3.0.5-SNAPSHOT'
compile 'org.wordpress:gcm:1.0.0'
compile 'org.wordpress:volley:wp'
compile 'com.automattic:wordpresscom-rest:0.0.3'
compile 'org.wordpress:httpmime:4.1.2'
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
instrumentTest.setRoot('tests')
}
}
// Generates the Config.java class using properties defined in gradle.properties
// or by other means provided by Gradle
task wordpressConfig(group: "build", description: "Generate Config class") {
def dir = "${buildDir}/source/wordpress"
def file = new File(dir, "org/wordpress/android/Config.java")
android {
sourceSets {
main {
java {
srcDir dir
}
}
}
}
outputs.file file
doLast {
file.getParentFile().mkdirs()
def properties = new Properties()
new File("${rootDir}/local.properties").withInputStream { stream ->
properties.load(stream)
}
def constants = [:]
properties.propertyNames().each { property ->
def keys = property.tokenize('.')
if (keys[0] == 'wp') {
def name = property.tokenize('.')[1..-1].collect { key -> key.toUpperCase()}.join('_')
constants[name] = properties.getProperty(property)
}
}
def writer = new FileWriter(file)
def config = constants.inject("") { consts, name, val ->
consts + " public static final String ${name} = \"${val}\";\n"
}
writer.write("""/* auto-generated file do not modify */
package org.wordpress.android;
public final class Config {
${config}
}
""")
writer.close()
}
}
// Add the wordpressConfig task to every flavor's compile tasks
android.buildTypes.all { buildType ->
def name = "compile${buildType.name.capitalize()}"
tasks.whenTaskAdded { task ->
if (task.name == name) {
task.dependsOn(wordpressConfig)
task.mustRunAfter(wordpressConfig)
}
}
}
|