mirror of
https://github.com/syncthing/syncthing-android.git
synced 2024-11-22 20:31:16 +00:00
Felix Ableitner
b1749ce7cb
It is impossible to add a custom code style in Android Studio that is stored in the project repository. So change style to something that's easy to use in practice now rather than later.
140 lines
3.3 KiB
Groovy
140 lines
3.3 KiB
Groovy
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
classpath 'com.android.tools.build:gradle:0.12.+'
|
|
classpath 'com.alexvasilkov:android_sign:0.2+'
|
|
}
|
|
}
|
|
|
|
import java.util.regex.Pattern
|
|
|
|
apply plugin: 'com.android.application'
|
|
apply plugin: 'android_sign'
|
|
|
|
repositories {
|
|
mavenCentral()
|
|
}
|
|
|
|
dependencies {
|
|
compile 'com.android.support:appcompat-v7:19.1.+'
|
|
compile project(':android-support-v4-preferencefragment')
|
|
}
|
|
|
|
preBuild {
|
|
dependsOn 'buildNative'
|
|
}
|
|
|
|
android {
|
|
compileSdkVersion 19
|
|
buildToolsVersion "19.1.0"
|
|
|
|
defaultConfig {
|
|
versionCode getVersionCodeFromManifest()
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
jniLibs.srcDir file("libs/")
|
|
}
|
|
}
|
|
|
|
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
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
debug {
|
|
applicationIdSuffix ".debug"
|
|
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)
|
|
}
|
|
}
|
|
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))
|
|
}
|
|
|
|
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
|
|
|