syncthing-android/build.gradle

141 lines
2.8 KiB
Groovy
Raw Normal View History

2014-05-12 16:54:26 +00:00
buildscript {
2014-05-14 15:08:19 +00:00
repositories {
mavenCentral()
}
2014-05-12 16:54:26 +00:00
2014-05-14 15:08:19 +00:00
dependencies {
classpath 'com.android.tools.build:gradle:0.12.+'
2014-06-09 21:49:58 +00:00
classpath 'com.alexvasilkov:android_sign:0.2+'
2014-05-14 15:08:19 +00:00
}
2014-05-12 16:54:26 +00:00
}
import java.util.regex.Pattern
2014-07-27 20:00:07 +00:00
apply plugin: 'com.android.application'
2014-05-12 16:54:26 +00:00
apply plugin: 'android_sign'
repositories {
2014-05-14 15:08:19 +00:00
mavenCentral()
}
dependencies {
2014-05-14 21:02:33 +00:00
compile 'com.android.support:appcompat-v7:19.1.+'
compile project(':android-support-v4-preferencefragment')
}
preBuild {
dependsOn 'buildNative'
}
2014-05-12 16:54:26 +00:00
android {
2014-05-14 15:08:19 +00:00
compileSdkVersion 19
2014-06-09 21:49:58 +00:00
buildToolsVersion "19.1.0"
defaultConfig {
versionCode getVersionCodeFromManifest()
}
2014-05-14 15:08:19 +00:00
sourceSets {
2014-05-12 16:54:26 +00:00
main {
jniLibs.srcDir file("libs/")
}
}
2014-05-14 15:08:19 +00:00
signingConfigs {
release {
// Android Studio does not pass environment variables.
// This means you have to use the command line for release builds.
def ks = System.getenv("KEYSTORE")
def ka = System.getenv("KEY_ALIAS")
if (ks != null && ka != null) {
storeFile file(ks)
keyAlias ka
}
}
}
2014-05-12 16:54:26 +00:00
2014-05-14 15:08:19 +00:00
buildTypes {
debug {
2014-06-09 21:49:58 +00:00
applicationIdSuffix ".debug"
2014-05-14 15:08:19 +00:00
debuggable true
}
release {
signingConfig signingConfigs.release
}
}
productFlavors {
x86 {
versionCode Integer.parseInt("4" + defaultConfig.versionCode)
ndk {
abiFilter "x86"
}
}
armeabi_v7a {
versionCode Integer.parseInt("3" + defaultConfig.versionCode)
ndk {
abiFilter "armeabi-v7a"
}
}
armeabi {
versionCode Integer.parseInt("2" + defaultConfig.versionCode)
ndk {
abiFilter "armeabi"
}
}
mips {
versionCode Integer.parseInt("1" + defaultConfig.versionCode)
ndk {
abiFilter "mips"
}
}
fat {
versionCode Integer.parseInt("0" + defaultConfig.versionCode)
}
}
2014-08-01 23:23:53 +00:00
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
}
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))
2014-05-12 16:54:26 +00:00
}
task buildNative(type: Exec) {
outputs.upToDateWhen { false }
executable = './build-syncthing.sh'
}
task copyNative(type: Copy) {
def lib_dir = "libs/"
new File(lib_dir).mkdirs()
def st_dir = "bin/";
from st_dir + 'syncthing-x86', st_dir + 'syncthing-armeabi', st_dir + 'syncthing-armeabi-v7a';
into lib_dir
rename('syncthing-x86', 'x86/libsyncthing.so')
rename('syncthing-armeabi-v7a', 'armeabi-v7a/libsyncthing.so')
rename('syncthing-armeabi', 'armeabi/libsyncthing.so')
}
buildNative.finalizedBy copyNative
task cleanBin(type: Delete) {
delete 'bin/'
}
copyNative.finalizedBy cleanBin
task cleanNative(type: Delete) {
delete 'bin/'
delete 'build/'
delete 'libs/'
delete 'ext/syncthing/bin/'
delete 'ext/syncthing/pkg/'
}
clean.dependsOn cleanNative