/* * Tinc Mesh VPN: Android client and user interface * Copyright (C) 2017-2024 Euxane P. TRAN-GIRARD * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-kapt' id 'com.github.triplet.play' version '2.1.0' } def keystorePropertiesFile = rootProject.file("keystore.properties") def keystoreAvailable = keystorePropertiesFile.exists() def keystoreProperties = new Properties() if (keystoreAvailable) keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) android { compileSdkVersion 34 defaultConfig { applicationId 'org.pacien.tincapp' minSdkVersion 21 targetSdkVersion 34 multiDexEnabled true versionCode 42 versionName '0.42' ndk { abiFilters 'x86', 'x86_64', 'armeabi-v7a', 'arm64-v8a' } } if (keystoreAvailable) signingConfigs { release { keyAlias keystoreProperties['keyAlias'] keyPassword keystoreProperties['keyPassword'] storeFile file(keystoreProperties['storeFile']) storePassword keystoreProperties['storePassword'] } } buildTypes { release { if (keystoreAvailable) signingConfig signingConfigs.release minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } externalNativeBuild { cmake { path 'CMakeLists.txt' } } buildFeatures { buildConfig = true dataBinding = true viewBinding = true } compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } namespace 'org.pacien.tincapp' } dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" implementation 'net.sourceforge.streamsupport:streamsupport-cfuture:1.7.0' implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0' implementation 'androidx.core:core-ktx:1.13.1' implementation 'com.google.android.material:material:1.12.0' implementation 'com.journeyapps:zxing-android-embedded:3.6.0' implementation 'org.bouncycastle:bcpkix-jdk15on:1.67' implementation 'org.slf4j:slf4j-api:1.7.30' implementation 'com.github.tony19:logback-android:2.0.0' // commons-configuration2:2.4 requires support for interface default methods, not available on SDK <24 implementation('org.apache.commons:commons-configuration2:2.3') { exclude group: 'commons-logging', module: 'commons-logging' } implementation('commons-beanutils:commons-beanutils:1.9.3') { exclude group: 'commons-logging', module: 'commons-logging' } implementation('commons-io:commons-io:2.13.0') { exclude group: 'commons-logging', module: 'commons-logging' } } repositories { mavenCentral() google() } play { if (keystoreAvailable) serviceAccountCredentials = file(keystoreProperties['apiKeyFile']) track = 'beta' resolutionStrategy = "auto" }