buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.7.+' } } repositories { mavenCentral() maven { url 'http://wordpress-mobile.github.io/WordPress-Android' } } apply plugin: 'android' android { lintOptions { quiet true abortOnError false } buildTypes { release { buildConfigField "String", "APP_PN_KEY", "\"org.wordpress.android.playstore\"" } debug { buildConfigField "String", "APP_PN_KEY", "\"org.wordpress.android.debug.build\"" } betagroup { buildConfigField "String", "APP_PN_KEY", "\"org.wordpress.android.beta.build\"" } } compileSdkVersion 19 buildToolsVersion "19" defaultConfig { packageName "org.wordpress.android" versionName "2.6 Beta 1" versionCode 86 minSdkVersion 9 targetSdkVersion 19 } 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-0.0.1' compile 'com.automattic:wordpresscom-rest:0.0.3' compile 'org.wordpress:httpmime:4.1.2' compile 'org.wordpress:graphview:3.1.1' compile 'org.wordpress:drag-sort-listview:0.6.1' compile 'org.wordpress:slidinguppanel:1.0.0' compile 'org.wordpress:android-passcodelock:0.0.4' compile 'org.wordpress:commons-lang:2.6' releaseCompile 'org.wordpress:emailchecker:0.1' debugCompile 'org.wordpress:emailchecker-debug:0.1' betagroupCompile 'org.wordpress:emailchecker:0.1' // Local dependencies compile files('libs/MixpanelAPI.jar') } 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 generateWPConfig(group: "generate", 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 generateWPConfig task to every flavor's compile tasks android.buildTypes.all { buildType -> def name = "generate${buildType.name.capitalize()}BuildConfig" tasks.whenTaskAdded { task -> if (task.name == name) { task.dependsOn(generateWPConfig) task.mustRunAfter(generateWPConfig) } } } // For app signing if(["storeFile", "storePassword", "keyAlias", "keyPassword"].count { !project.hasProperty(it) } == 0 ){ android { signingConfigs { release { storeFile = file(project.storeFile) storePassword = project.storePassword keyAlias = project.keyAlias keyPassword = project.keyPassword } } } android.buildTypes.release.signingConfig = android.signingConfigs.release android.buildTypes.betagroup.signingConfig = android.signingConfigs.release }