buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.2.0' classpath 'com.github.ben-manes:gradle-versions-plugin:0.13.0' classpath 'com.github.triplet.gradle:play-publisher:1.1.4' } } apply plugin: 'com.android.application' apply plugin: 'com.github.ben-manes.versions' apply plugin: 'com.github.triplet.play' repositories { jcenter() } dependencies { compile 'eu.chainfire:libsuperuser:1.0.0.201608240809' compile 'com.android.support:design:24.2.1' compile 'com.google.zxing:android-integration:3.3.0' compile 'com.google.code.gson:gson:2.7' compile 'org.mindrot:jbcrypt:0.3m' testCompile 'junit:junit:4.12' testCompile 'org.robolectric:robolectric:3.1.2' } project.archivesBaseName = 'syncthing' android { compileSdkVersion 24 buildToolsVersion "24.0.2" defaultConfig { applicationId "com.nutomic.syncthingandroid" minSdkVersion 11 targetSdkVersion 24 versionCode 103 versionName "0.8.4" testApplicationId 'com.nutomic.syncthingandroid.test' testInstrumentationRunner 'android.test.InstrumentationTestRunner' testHandleProfiling true testFunctionalTest true jackOptions { enabled true } } // Without this parameter, all builds fail with error: // Execution failed for task ':mergeArmeabiDebugResources'. // > Some file crunching failed, see logs for details // https://code.google.com/p/android/issues/detail?id=163378 aaptOptions.setProperty("cruncherEnabled", false) // We haven't upgraded to the new HTTP library yet. useLibrary 'org.apache.http.legacy' 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") } } } buildTypes { debug { applicationIdSuffix ".debug" debuggable true } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-android.txt' if (System.getenv("key_alias")) { signingConfig signingConfigs.release } } } productFlavors { x86 { versionCode Integer.parseInt("4" + defaultConfig.versionCode) ndk { abiFilter "x86" } } armeabi { versionCode Integer.parseInt("3" + defaultConfig.versionCode) ndk { abiFilter "armeabi" } } fat { versionCode Integer.parseInt("0" + defaultConfig.versionCode) } } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } task buildNative(type: Exec) { outputs.upToDateWhen { false } executable = './make-all.bash' } task cleanNative(type: Delete) { delete 'src/main/jniLibs/' delete 'ext/syncthing/bin/' delete 'ext/syncthing/pkg/' } play { jsonFile = file('keys.json') uploadImages = false } /** * Some languages are not supported by Google Play, so we ignore them. */ task deleteUnsupportedPlayTranslations(type: Delete) { delete 'src/fat/play/en/' delete 'src/fat/play/da_DK' delete 'src/fat/play/el-EL' delete 'src/fat/play/es_EC' delete 'src/fat/play/es_MX' delete 'src/fat/play/fr_FR' delete 'src/fat/play/no_NO' delete 'src/fat/play/zh_TW' delete 'src/fat/play/zh_CN' delete 'src/fat/play/pt_BR' delete 'src/fat/play/pl_PL' delete 'src/fat/play/nb' delete 'src/fat/play/nn' }