import java.util.regex.Pattern apply plugin: 'android' buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.10.+' } } ext.multiarch=false dependencies { compile fileTree(dir: 'libs', include: '*.jar') for (subproject in getProjectList()) { compile project(subproject) } } android { sourceSets { main { manifest.srcFile 'AndroidManifest.xml' java.srcDirs = ['src'] resources.srcDirs = ['src'] aidl.srcDirs = ['src'] renderscript.srcDirs = ['src'] res.srcDirs = ['res'] assets.srcDirs = ['assets'] } } defaultConfig { versionCode Integer.parseInt("" + getVersionCodeFromManifest() + "0") } compileSdkVersion 19 buildToolsVersion "19.0.0" if (multiarch) { productFlavors { armv7 { versionCode defaultConfig.versionCode + 2 ndk { abiFilters "armeabi-v7a", "" } } x86 { versionCode defaultConfig.versionCode + 4 ndk { abiFilters "x86", "" } } all { ndk { abiFilters "all", "" } } } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_7 targetCompatibility JavaVersion.VERSION_1_7 } } task wrapper(type: Wrapper) { gradleVersion = '1.12' } def getVersionCodeFromManifest() { def manifestFile = file(android.sourceSets.main.manifest.srcFile) def pattern = Pattern.compile("versionCode=\"(\\d+)\"") def matcher = pattern.matcher(manifestFile.getText()) matcher.find() return Integer.parseInt(matcher.group(1)) } def getProjectList() { def manifestFile = file("project.properties") def pattern = Pattern.compile("android.library.reference.(\\d+)\\s*=\\s*(.*)") def matcher = pattern.matcher(manifestFile.getText()) def projects = [] while (matcher.find()) { projects.add(":" + matcher.group(2).replace("/",":")) } return projects }