mirror of https://github.com/tuskyapp/Tusky.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
198 lines
6.6 KiB
198 lines
6.6 KiB
plugins { |
|
alias(libs.plugins.android.application) |
|
alias(libs.plugins.google.ksp) |
|
alias(libs.plugins.kotlin.android) |
|
alias(libs.plugins.kotlin.kapt) |
|
alias(libs.plugins.kotlin.parcelize) |
|
} |
|
|
|
apply from: 'getGitSha.gradle' |
|
|
|
final def gitSha = ext.getGitSha() |
|
|
|
// The app name |
|
final def APP_NAME = "Tusky" |
|
// The application id. Must be unique, e.g. based on your domain |
|
final def APP_ID = "com.keylesspalace.tusky" |
|
// url of a custom app logo. Recommended size at least 600x600. Keep empty to use the Tusky elephant friend. |
|
final def CUSTOM_LOGO_URL = "" |
|
// e.g. mastodon.social. Keep empty to not suggest any instance on the signup screen |
|
final def CUSTOM_INSTANCE = "" |
|
// link to your support account. Will be linked on the about page when not empty. |
|
final def SUPPORT_ACCOUNT_URL = "https://mastodon.social/@Tusky" |
|
|
|
android { |
|
compileSdk 33 |
|
namespace "com.keylesspalace.tusky" |
|
defaultConfig { |
|
applicationId APP_ID |
|
namespace "com.keylesspalace.tusky" |
|
minSdk 24 |
|
targetSdk 33 |
|
versionCode 117 |
|
versionName "24.1" |
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" |
|
vectorDrawables.useSupportLibrary = true |
|
|
|
resValue "string", "app_name", APP_NAME |
|
|
|
buildConfigField("String", "CUSTOM_LOGO_URL", "\"$CUSTOM_LOGO_URL\"") |
|
buildConfigField("String", "CUSTOM_INSTANCE", "\"$CUSTOM_INSTANCE\"") |
|
buildConfigField("String", "SUPPORT_ACCOUNT_URL", "\"$SUPPORT_ACCOUNT_URL\"") |
|
} |
|
buildTypes { |
|
release { |
|
minifyEnabled true |
|
shrinkResources true |
|
proguardFiles 'proguard-rules.pro' |
|
} |
|
} |
|
|
|
flavorDimensions += "color" |
|
productFlavors { |
|
blue {} |
|
green { |
|
resValue "string", "app_name", APP_NAME + " Test" |
|
applicationIdSuffix ".test" |
|
versionNameSuffix "-" + gitSha |
|
} |
|
} |
|
|
|
lint { |
|
lintConfig file("lint.xml") |
|
// Regenerate by running `./gradlew app:newLintBaseline` |
|
baseline = file("lint-baseline.xml") |
|
} |
|
|
|
buildFeatures { |
|
buildConfig true |
|
resValues true |
|
viewBinding true |
|
} |
|
testOptions { |
|
unitTests { |
|
returnDefaultValues = true |
|
includeAndroidResources = true |
|
} |
|
unitTests.all { |
|
systemProperty 'robolectric.logging.enabled', 'true' |
|
systemProperty 'robolectric.lazyload', 'ON' |
|
} |
|
} |
|
sourceSets { |
|
androidTest.assets.srcDirs += files("$projectDir/schemas".toString()) |
|
} |
|
|
|
// Exclude unneeded files added by libraries |
|
packagingOptions.resources.excludes += [ |
|
'LICENSE_OFL', |
|
'LICENSE_UNICODE', |
|
] |
|
|
|
bundle { |
|
language { |
|
// bundle all languages in every apk so the dynamic language switching works |
|
enableSplit = false |
|
} |
|
} |
|
dependenciesInfo { |
|
includeInApk false |
|
includeInBundle false |
|
} |
|
applicationVariants.configureEach { variant -> |
|
variant.outputs.configureEach { |
|
outputFileName = "Tusky_${variant.versionName}_${variant.versionCode}_${gitSha}_" + |
|
"${variant.flavorName}_${buildType.name}.apk" |
|
} |
|
} |
|
} |
|
|
|
ksp { |
|
arg("room.schemaLocation", "$projectDir/schemas") |
|
arg("room.incremental", "true") |
|
} |
|
|
|
configurations { |
|
// JNI-only libraries don't play nicely with Robolectric |
|
// see https://github.com/tuskyapp/Tusky/pull/3367 |
|
testImplementation.exclude group: "org.conscrypt", module: "conscrypt-android" |
|
testRuntime.exclude group: "org.conscrypt", module: "conscrypt-android" |
|
} |
|
|
|
// library versions are in PROJECT_ROOT/gradle/libs.versions.toml |
|
dependencies { |
|
implementation libs.kotlinx.coroutines.android |
|
implementation libs.kotlinx.coroutines.rx3 |
|
|
|
implementation libs.bundles.androidx |
|
implementation libs.bundles.room |
|
ksp libs.androidx.room.compiler |
|
|
|
implementation libs.android.material |
|
|
|
implementation libs.gson |
|
|
|
implementation libs.bundles.retrofit |
|
implementation libs.networkresult.calladapter |
|
|
|
implementation libs.bundles.okhttp |
|
|
|
implementation libs.conscrypt.android |
|
|
|
implementation libs.bundles.glide |
|
ksp libs.glide.compiler |
|
|
|
implementation libs.bundles.rxjava3 |
|
|
|
implementation libs.bundles.autodispose |
|
|
|
implementation libs.bundles.dagger |
|
kapt libs.bundles.dagger.processors |
|
|
|
implementation libs.sparkbutton |
|
|
|
implementation libs.touchimageview |
|
|
|
implementation libs.bundles.material.drawer |
|
implementation libs.material.typeface |
|
|
|
implementation libs.image.cropper |
|
|
|
implementation libs.bundles.filemojicompat |
|
|
|
implementation libs.bouncycastle |
|
implementation libs.unified.push |
|
|
|
implementation libs.bundles.xmldiff |
|
|
|
testImplementation libs.androidx.test.junit |
|
testImplementation libs.robolectric |
|
testImplementation libs.bundles.mockito |
|
testImplementation libs.mockwebserver |
|
testImplementation libs.androidx.core.testing |
|
testImplementation libs.kotlinx.coroutines.test |
|
testImplementation libs.androidx.work.testing |
|
testImplementation libs.truth |
|
testImplementation libs.turbine |
|
|
|
androidTestImplementation libs.espresso.core |
|
androidTestImplementation libs.androidx.room.testing |
|
androidTestImplementation libs.androidx.test.junit |
|
} |
|
|
|
// Work around warnings of: |
|
// WARNING: Illegal reflective access by org.jetbrains.kotlin.kapt3.util.ModuleManipulationUtilsKt (file:/C:/Users/Andi/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-annotation-processing-gradle/1.8.22/28dab7e0ee9ce62c03bf97de3543c911dc653700/kotlin-annotation-processing-gradle-1.8.22.jar) to constructor com.sun.tools.javac.util.Context() |
|
// See https://youtrack.jetbrains.com/issue/KT-30589/Kapt-An-illegal-reflective-access-operation-has-occurred |
|
tasks.withType(org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask).configureEach { |
|
kaptProcessJvmArgs.addAll([ |
|
"--add-opens", "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED", |
|
"--add-opens", "jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED", |
|
"--add-opens", "jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED", |
|
"--add-opens", "jdk.compiler/com.sun.tools.javac.jvm=ALL-UNNAMED", |
|
"--add-opens", "jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED", |
|
"--add-opens", "jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED", |
|
"--add-opens", "jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED", |
|
"--add-opens", "jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED", |
|
"--add-opens", "jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED", |
|
"--add-opens", "jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED"]) |
|
}
|
|
|