adaway/app/build.gradle

150 lines
4.6 KiB
Groovy
Raw Normal View History

2025-11-20 14:05:12 +01:00
plugins {
id 'com.android.application'
}
boolean keyStoreDefined = project.hasProperty('signingStoreLocation') &&
project.hasProperty('signingStorePassword') &&
project.hasProperty('signingKeyAlias') &&
project.hasProperty('signingKeyPassword')
repositories {
maven {
url 'https://jitpack.io'
}
}
android {
compileSdk 34
ndkVersion '25.2.9519653'
namespace 'org.adaway'
defaultConfig {
minSdk 26
targetSdk 33
versionCode libs.versions.appCode.get() as int
versionName libs.versions.appName.get()
javaCompileOptions {
annotationProcessorOptions {
arguments = [
"room.schemaLocation": "$projectDir/schemas".toString(),
"room.incremental" : "true"
]
}
}
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
/*
* To sign release build, create file gradle.properties in ~/.gradle/ with this content:
*
* signingStoreLocation=/home/key.store
* signingStorePassword=xxx
* signingKeyAlias=alias
* signingKeyPassword=xxx
*/
if (keyStoreDefined) {
println "Found signature properties in gradle.properties. Build will be signed."
signingConfigs {
release {
storeFile file(signingStoreLocation)
storePassword signingStorePassword
keyAlias signingKeyAlias
keyPassword signingKeyPassword
}
}
buildTypes.debug.signingConfig = signingConfigs.release
buildTypes.release.signingConfig = signingConfigs.release
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
buildFeatures {
viewBinding true
}
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
buildTypes {
// debug {
// shrinkResources false
// minifyEnabled false
// proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// }
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
// Do not abort build if lint finds errors
lint {
disable 'MissingTranslation'
}
}
dependencies {
// Native modules
implementation project(':tcpdump')
implementation project(':webserver')
// AndroidX components
implementation 'androidx.appcompat:appcompat:1.7.0'
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.fragment:fragment:1.8.1'
// "fragment-ktx" is not used but was added to fix the following dependency error:
// Duplicate class androidx.lifecycle.ViewModelLazy found in modules lifecycle-viewmodel-2.5.0-runtime (androidx.lifecycle:lifecycle-viewmodel:2.5.0) and lifecycle-viewmodel-ktx-2.3.1-runtime
implementation 'androidx.fragment:fragment-ktx:1.8.1'
implementation 'androidx.paging:paging-runtime:3.3.0'
implementation 'androidx.preference:preference:1.2.1'
implementation 'androidx.recyclerview:recyclerview:1.3.2'
implementation 'androidx.room:room-runtime:2.6.1'
implementation 'androidx.room:room-paging:2.6.1'
annotationProcessor 'androidx.room:room-compiler:2.6.1'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0'
implementation 'androidx.work:work-runtime:2.8.1'
implementation 'com.google.android.material:material:1.9.0'
// Collections related
implementation libs.guava
// Network related
implementation libs.okhttp3.okhttp
// Logging related
implementation libs.timber
if (keyStoreDefined) {
implementation project(':sentrystub')
} else {
implementation platform('io.sentry:sentry-bom:7.8.0')
implementation('io.sentry:sentry-android')
implementation('io.sentry:sentry-android-fragment')
implementation('io.sentry:sentry-android-timber')
}
// Root related
implementation libs.libsu
// VPN related
implementation libs.bundles.pcap4j
implementation libs.dnsjava
implementation libs.slf4j.android
implementation libs.okhttp.dnsoverhttps
// Test related
testImplementation libs.junit
testImplementation libs.json
androidTestImplementation libs.bundles.androidx.test
androidTestImplementation libs.junit
}