aboutsummaryrefslogtreecommitdiff
path: root/build.gradle
diff options
context:
space:
mode:
Diffstat (limited to 'build.gradle')
-rw-r--r--build.gradle107
1 files changed, 107 insertions, 0 deletions
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 000000000..058fd11eb
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,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)
+ }
+ }
+}