1
0
Fork 0
mirror of https://github.com/syncthing/syncthing-android.git synced 2024-11-23 12:51:16 +00:00
syncthing-android/build.gradle

147 lines
3.7 KiB
Groovy
Raw Normal View History

2014-05-12 16:54:26 +00:00
buildscript {
repositories {
mavenCentral()
jcenter()
}
dependencies {
2015-06-15 14:18:45 +00:00
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.github.ben-manes:gradle-versions-plugin:0.10.1'
}
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'
apply plugin: 'com.github.ben-manes.versions'
2014-05-12 16:54:26 +00:00
repositories {
mavenCentral()
maven {
url 'https://raw.github.com/kolavar/android-support-v4-preferencefragment/master/maven-repository/'
}
maven {
url 'http://jcenter.bintray.com'
}
}
dependencies {
compile 'eu.chainfire:libsuperuser:1.0.0.201504231659'
2015-06-15 14:18:45 +00:00
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:support-v4-preferencefragment:1.0.0@aar'
2015-06-15 14:18:45 +00:00
androidTestCompile 'com.squareup.okhttp:mockwebserver:2.4.0'
}
preBuild {
dependsOn 'buildNative'
}
project.archivesBaseName = 'syncthing'
2014-05-12 16:54:26 +00:00
android {
2015-04-05 22:24:12 +00:00
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
versionCode getVersionCodeFromManifest()
testApplicationId 'com.nutomic.syncthingandroid.test'
testInstrumentationRunner 'android.test.InstrumentationTestRunner'
testHandleProfiling true
testFunctionalTest true
}
sourceSets {
main {
jniLibs.srcDir file("libs/")
}
}
2015-03-20 23:56:59 +00:00
signingConfigs {
release {
if (System.getenv("key_alias")) {
storeFile = file(System.getenv("key_store"))
storePassword = System.getenv("key_store_password")
keyAlias = System.getenv("key_alias")
keyPassword = System.getenv("key_alias_password")
}
}
2015-03-20 23:56:59 +00:00
}
buildTypes {
debug {
applicationIdSuffix ".debug"
debuggable true
2015-04-09 19:49:12 +00:00
testCoverageEnabled true
}
2015-03-20 23:56:59 +00:00
release {
minifyEnabled true
2015-05-13 14:58:48 +00:00
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-android.txt'
if (System.getenv("key_alias")) {
signingConfig signingConfigs.release
}
2015-03-20 23:56:59 +00:00
}
}
productFlavors {
x86 {
versionCode Integer.parseInt("4" + defaultConfig.versionCode)
ndk {
abiFilter "x86"
}
}
armeabi {
2015-01-14 10:51:07 +00:00
versionCode Integer.parseInt("3" + defaultConfig.versionCode)
ndk {
abiFilter "armeabi"
}
}
fat {
versionCode Integer.parseInt("0" + defaultConfig.versionCode)
}
}
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/";
2015-01-15 17:52:59 +00:00
from st_dir + 'syncthing-x86', st_dir + 'syncthing-armeabi';
into lib_dir
rename('syncthing-x86', 'x86/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