mirror of
https://github.com/bitfireAT/davx5-ose
synced 2024-09-28 15:31:26 +00:00
Migrate to Kotlin DSL (#586)
* Migrated to Kotlin DSL Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me> * Migrated to Kotlin DSL Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me> * Update versions, suppress nofications for libs we don't want to upgrade --------- Signed-off-by: Arnau Mora Gras <arnyminerz@proton.me> Co-authored-by: Ricki Hirner <hirner@bitfire.at>
This commit is contained in:
parent
30bb981975
commit
0253cd3d89
216
app/build.gradle
216
app/build.gradle
|
@ -1,216 +0,0 @@
|
|||
/***************************************************************************************************
|
||||
* Copyright © All Contributors. See LICENSE and AUTHORS in the root directory for details.
|
||||
**************************************************************************************************/
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.mikepenz.aboutLibraries)
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.hilt)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.kapt)
|
||||
alias(libs.plugins.ksp)
|
||||
}
|
||||
|
||||
aboutLibraries {
|
||||
// This means that we have to generate the dependencies explicitly:
|
||||
// ./gradlew --no-configuration-cache --no-build-cache -PaboutLibraries.exportPath=src/main/res/raw/ app:exportLibraryDefinitions
|
||||
registerAndroidTasks = false
|
||||
}
|
||||
|
||||
// Android configuration
|
||||
android {
|
||||
compileSdk 34
|
||||
|
||||
defaultConfig {
|
||||
applicationId "at.bitfire.davdroid"
|
||||
|
||||
versionCode 403130100
|
||||
versionName '4.3.13.1'
|
||||
|
||||
buildConfigField "long", "buildTime", System.currentTimeMillis() + "L"
|
||||
|
||||
setProperty "archivesBaseName", "davx5-ose-" + getVersionName()
|
||||
|
||||
minSdkVersion 24 // Android 7.0
|
||||
targetSdkVersion 34 // Android 14
|
||||
|
||||
buildConfigField "String", "userAgent", "\"DAVx5\""
|
||||
|
||||
testInstrumentationRunner "at.bitfire.davdroid.CustomTestRunner"
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
// enable because ical4android requires desugaring
|
||||
coreLibraryDesugaringEnabled true
|
||||
|
||||
sourceCompatibility JavaVersion.VERSION_17
|
||||
targetCompatibility JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig = true
|
||||
compose = true
|
||||
viewBinding = true
|
||||
dataBinding = true
|
||||
}
|
||||
composeOptions {
|
||||
// Keep this in sync with Kotlin version:
|
||||
// https://developer.android.com/jetpack/androidx/releases/compose-kotlin
|
||||
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
|
||||
}
|
||||
|
||||
// Java namespace for our classes (not to be confused with Android package ID)
|
||||
namespace "at.bitfire.davdroid"
|
||||
|
||||
flavorDimensions = [ "distribution" ]
|
||||
productFlavors {
|
||||
ose {
|
||||
dimension "distribution"
|
||||
versionNameSuffix "-ose"
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
androidTest {
|
||||
assets.srcDirs += files("$projectDir/schemas".toString())
|
||||
}
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
bitfire {
|
||||
storeFile file(System.getenv("ANDROID_KEYSTORE") ?: "/dev/null")
|
||||
storePassword System.getenv("ANDROID_KEYSTORE_PASSWORD")
|
||||
keyAlias System.getenv("ANDROID_KEY_ALIAS")
|
||||
keyPassword System.getenv("ANDROID_KEY_PASSWORD")
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
}
|
||||
release {
|
||||
minifyEnabled true
|
||||
proguardFiles getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules-release.pro"
|
||||
|
||||
shrinkResources true
|
||||
|
||||
signingConfig signingConfigs.bitfire
|
||||
}
|
||||
}
|
||||
|
||||
lint {
|
||||
disable "GoogleAppIndexingWarning", "ImpliedQuantity", "MissingQuantity", "MissingTranslation", "ExtraTranslation", "RtlEnabled", "RtlHardcoded", "Typos", "NullSafeMutableLiveData"
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
resources {
|
||||
excludes += ["META-INF/*.md"]
|
||||
}
|
||||
}
|
||||
|
||||
androidResources {
|
||||
generateLocaleConfig true
|
||||
}
|
||||
}
|
||||
|
||||
ksp {
|
||||
arg("room.schemaLocation", "$projectDir/schemas")
|
||||
}
|
||||
|
||||
configurations {
|
||||
configureEach {
|
||||
// exclude modules which are in conflict with system libraries
|
||||
exclude module: "commons-logging"
|
||||
exclude group: "org.json", module: "json"
|
||||
|
||||
// Groovy requires SDK 26+, and it's not required, so exclude it
|
||||
exclude group: "org.codehaus.groovy"
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// core
|
||||
implementation libs.kotlin.stdlib
|
||||
implementation libs.kotlinx.coroutines
|
||||
coreLibraryDesugaring libs.android.desugaring
|
||||
|
||||
// Hilt
|
||||
implementation libs.hilt.android.base
|
||||
ksp libs.androidx.hilt.compiler
|
||||
ksp libs.hilt.android.compiler
|
||||
|
||||
// support libs
|
||||
implementation libs.androidx.activityCompose
|
||||
implementation libs.androidx.appcompat
|
||||
implementation libs.androidx.browser
|
||||
implementation libs.androidx.cardView
|
||||
implementation libs.androidx.concurrentFuture
|
||||
implementation libs.androidx.constraintLayout
|
||||
implementation libs.androidx.core
|
||||
implementation libs.androidx.fragment
|
||||
implementation libs.androidx.hilt.work
|
||||
implementation libs.androidx.lifecycle.viewmodel.base
|
||||
implementation libs.androidx.lifecycle.viewmodel.compose
|
||||
implementation libs.androidx.paging
|
||||
implementation libs.androidx.preference
|
||||
implementation libs.androidx.security
|
||||
implementation libs.androidx.swiperefreshlayout
|
||||
implementation libs.androidx.work.base
|
||||
implementation libs.android.flexbox
|
||||
implementation libs.android.material
|
||||
|
||||
// Jetpack Compose
|
||||
implementation libs.compose.accompanist.permissions
|
||||
implementation libs.compose.accompanist.themeAdapter
|
||||
implementation platform(libs.compose.bom)
|
||||
implementation libs.compose.material
|
||||
implementation libs.compose.materialIconsExtended
|
||||
implementation libs.compose.runtime.livedata
|
||||
debugImplementation libs.compose.ui.tooling
|
||||
implementation libs.compose.ui.toolingPreview
|
||||
|
||||
// Jetpack Room
|
||||
implementation libs.room.runtime
|
||||
implementation libs.room.base
|
||||
implementation libs.room.paging
|
||||
ksp libs.room.compiler
|
||||
|
||||
// own libraries
|
||||
implementation libs.bitfire.cert4android
|
||||
implementation(libs.bitfire.dav4jvm) {
|
||||
exclude group: "junit"
|
||||
}
|
||||
implementation libs.bitfire.ical4android
|
||||
implementation libs.bitfire.vcard4android
|
||||
|
||||
// third-party libs
|
||||
implementation libs.openid.appauth
|
||||
implementation libs.appintro
|
||||
implementation libs.mikepenz.aboutLibraries
|
||||
implementation libs.commons.collections
|
||||
implementation libs.commons.io
|
||||
implementation libs.commons.lang
|
||||
implementation libs.commons.text
|
||||
implementation libs.dnsjava
|
||||
implementation libs.jaredrummler.colorpicker
|
||||
implementation libs.nsk90.kstatemachine
|
||||
implementation libs.okhttp.base
|
||||
implementation libs.okhttp.brotli
|
||||
implementation libs.okhttp.logging
|
||||
|
||||
// for tests
|
||||
androidTestImplementation libs.androidx.arch.core.testing
|
||||
androidTestImplementation libs.androidx.test.core
|
||||
androidTestImplementation libs.androidx.test.junit
|
||||
androidTestImplementation libs.androidx.test.rules
|
||||
androidTestImplementation libs.androidx.test.runner
|
||||
androidTestImplementation libs.androidx.work.testing
|
||||
androidTestImplementation libs.hilt.android.testing
|
||||
androidTestImplementation libs.junit
|
||||
androidTestImplementation libs.mockk.android
|
||||
androidTestImplementation libs.okhttp.mockwebserver
|
||||
androidTestImplementation libs.room.testing
|
||||
|
||||
testImplementation libs.junit
|
||||
testImplementation libs.okhttp.mockwebserver
|
||||
}
|
214
app/build.gradle.kts
Normal file
214
app/build.gradle.kts
Normal file
|
@ -0,0 +1,214 @@
|
|||
/***************************************************************************************************
|
||||
* Copyright © All Contributors. See LICENSE and AUTHORS in the root directory for details.
|
||||
**************************************************************************************************/
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.mikepenz.aboutLibraries)
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.hilt)
|
||||
alias(libs.plugins.kotlin.android)
|
||||
alias(libs.plugins.kotlin.kapt)
|
||||
alias(libs.plugins.ksp)
|
||||
}
|
||||
|
||||
aboutLibraries {
|
||||
// This means that we have to generate the dependencies explicitly:
|
||||
// ./gradlew --no-configuration-cache --no-build-cache -PaboutLibraries.exportPath=src/main/res/raw/ app:exportLibraryDefinitions
|
||||
registerAndroidTasks = false
|
||||
}
|
||||
|
||||
// Android configuration
|
||||
android {
|
||||
compileSdk = 34
|
||||
|
||||
defaultConfig {
|
||||
applicationId = "at.bitfire.davdroid"
|
||||
|
||||
versionCode = 403130100
|
||||
versionName = "4.3.13.1"
|
||||
|
||||
buildConfigField("long", "buildTime", "${System.currentTimeMillis()}L")
|
||||
|
||||
setProperty("archivesBaseName", "davx5-ose-" + versionName)
|
||||
|
||||
minSdk = 24 // Android 7.0
|
||||
targetSdk = 34 // Android 14
|
||||
|
||||
buildConfigField("String", "userAgent", "\"DAVx5\"")
|
||||
|
||||
testInstrumentationRunner = "at.bitfire.davdroid.CustomTestRunner"
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
// enable because ical4android requires desugaring
|
||||
isCoreLibraryDesugaringEnabled = true
|
||||
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
buildConfig = true
|
||||
compose = true
|
||||
viewBinding = true
|
||||
dataBinding = true
|
||||
}
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
|
||||
}
|
||||
|
||||
// Java namespace for our classes (not to be confused with Android package ID)
|
||||
namespace = "at.bitfire.davdroid"
|
||||
|
||||
flavorDimensions += "distribution"
|
||||
productFlavors {
|
||||
create("ose") {
|
||||
dimension = "distribution"
|
||||
versionNameSuffix = "-ose"
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
getByName("androidTest") {
|
||||
assets.srcDir("$projectDir/schemas")
|
||||
}
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
create("bitfire") {
|
||||
storeFile = file(System.getenv("ANDROID_KEYSTORE") ?: "/dev/null")
|
||||
storePassword = System.getenv("ANDROID_KEYSTORE_PASSWORD")
|
||||
keyAlias = System.getenv("ANDROID_KEY_ALIAS")
|
||||
keyPassword = System.getenv("ANDROID_KEY_PASSWORD")
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
getByName("release") {
|
||||
isMinifyEnabled = true
|
||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules-release.pro")
|
||||
|
||||
isShrinkResources = true
|
||||
|
||||
signingConfig = signingConfigs.findByName("bitfire")
|
||||
}
|
||||
}
|
||||
|
||||
lint {
|
||||
disable += arrayOf("GoogleAppIndexingWarning", "ImpliedQuantity", "MissingQuantity", "MissingTranslation", "ExtraTranslation", "RtlEnabled", "RtlHardcoded", "Typos", "NullSafeMutableLiveData")
|
||||
}
|
||||
|
||||
packaging {
|
||||
resources {
|
||||
excludes += arrayOf("META-INF/*.md")
|
||||
}
|
||||
}
|
||||
|
||||
androidResources {
|
||||
generateLocaleConfig = true
|
||||
}
|
||||
}
|
||||
|
||||
ksp {
|
||||
arg("room.schemaLocation", "$projectDir/schemas")
|
||||
}
|
||||
|
||||
configurations {
|
||||
configureEach {
|
||||
// exclude modules which are in conflict with system libraries
|
||||
exclude(module="commons-logging")
|
||||
exclude(group="org.json", module="json")
|
||||
|
||||
// Groovy requires SDK 26+, and it's not required, so exclude it
|
||||
exclude(group="org.codehaus.groovy")
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
// core
|
||||
implementation(libs.kotlin.stdlib)
|
||||
implementation(libs.kotlinx.coroutines)
|
||||
coreLibraryDesugaring(libs.android.desugaring)
|
||||
|
||||
// Hilt
|
||||
implementation(libs.hilt.android.base)
|
||||
ksp(libs.androidx.hilt.compiler)
|
||||
ksp(libs.hilt.android.compiler)
|
||||
|
||||
// support libs
|
||||
implementation(libs.androidx.activityCompose)
|
||||
implementation(libs.androidx.appcompat)
|
||||
implementation(libs.androidx.browser)
|
||||
implementation(libs.androidx.cardView)
|
||||
implementation(libs.androidx.concurrentFuture)
|
||||
implementation(libs.androidx.constraintLayout)
|
||||
implementation(libs.androidx.core)
|
||||
implementation(libs.androidx.fragment)
|
||||
implementation(libs.androidx.hilt.work)
|
||||
implementation(libs.androidx.lifecycle.viewmodel.base)
|
||||
implementation(libs.androidx.lifecycle.viewmodel.compose)
|
||||
implementation(libs.androidx.paging)
|
||||
implementation(libs.androidx.preference)
|
||||
implementation(libs.androidx.security)
|
||||
implementation(libs.androidx.swiperefreshlayout)
|
||||
implementation(libs.androidx.work.base)
|
||||
implementation(libs.android.flexbox)
|
||||
implementation(libs.android.material)
|
||||
|
||||
// Jetpack Compose
|
||||
implementation(libs.compose.accompanist.permissions)
|
||||
implementation(libs.compose.accompanist.themeAdapter)
|
||||
implementation(platform(libs.compose.bom))
|
||||
implementation(libs.compose.material)
|
||||
implementation(libs.compose.materialIconsExtended)
|
||||
implementation(libs.compose.runtime.livedata)
|
||||
debugImplementation(libs.compose.ui.tooling)
|
||||
implementation(libs.compose.ui.toolingPreview)
|
||||
|
||||
// Jetpack Room
|
||||
implementation(libs.room.runtime)
|
||||
implementation(libs.room.base)
|
||||
implementation(libs.room.paging)
|
||||
ksp(libs.room.compiler)
|
||||
|
||||
// own libraries
|
||||
implementation(libs.bitfire.cert4android)
|
||||
implementation(libs.bitfire.dav4jvm) {
|
||||
exclude(group="junit")
|
||||
}
|
||||
implementation(libs.bitfire.ical4android)
|
||||
implementation(libs.bitfire.vcard4android)
|
||||
|
||||
// third-party libs
|
||||
implementation(libs.openid.appauth)
|
||||
implementation(libs.appintro)
|
||||
implementation(libs.mikepenz.aboutLibraries)
|
||||
implementation(libs.commons.collections)
|
||||
@Suppress("RedundantSuppression")
|
||||
implementation(libs.commons.io)
|
||||
implementation(libs.commons.lang)
|
||||
implementation(libs.commons.text)
|
||||
@Suppress("RedundantSuppression")
|
||||
implementation(libs.dnsjava)
|
||||
implementation(libs.jaredrummler.colorpicker)
|
||||
implementation(libs.nsk90.kstatemachine)
|
||||
implementation(libs.okhttp.base)
|
||||
implementation(libs.okhttp.brotli)
|
||||
implementation(libs.okhttp.logging)
|
||||
|
||||
// for tests
|
||||
androidTestImplementation(libs.androidx.arch.core.testing)
|
||||
androidTestImplementation(libs.androidx.test.core)
|
||||
androidTestImplementation(libs.androidx.test.junit)
|
||||
androidTestImplementation(libs.androidx.test.rules)
|
||||
androidTestImplementation(libs.androidx.test.runner)
|
||||
androidTestImplementation(libs.androidx.work.testing)
|
||||
androidTestImplementation(libs.hilt.android.testing)
|
||||
androidTestImplementation(libs.junit)
|
||||
androidTestImplementation(libs.mockk.android)
|
||||
androidTestImplementation(libs.okhttp.mockwebserver)
|
||||
androidTestImplementation(libs.room.testing)
|
||||
|
||||
testImplementation(libs.junit)
|
||||
testImplementation(libs.okhttp.mockwebserver)
|
||||
}
|
|
@ -37,19 +37,21 @@ commons-io = "2.8.0"
|
|||
commons-text = "1.11.0"
|
||||
compose-accompanist = "0.34.0"
|
||||
compose-bom = "2024.02.00"
|
||||
# Keep this in sync with Kotlin version:
|
||||
# https://developer.android.com/jetpack/androidx/releases/compose-kotlin
|
||||
compose-compiler = "1.5.8"
|
||||
# don't update to dnsjava 3.x until API level 26 (Android 8) is the minimum API [https://github.com/bitfireAT/davx5/issues/453]
|
||||
dnsjava = "2.1.9"
|
||||
hilt = "2.50"
|
||||
jaredrummler-colorpicker = "1.1.0"
|
||||
# keep in sync with * app/build.gradle composeOptions.kotlinCompilerExtensionVersion
|
||||
# keep in sync with * app/build.gradle.kts composeOptions.kotlinCompilerExtensionVersion
|
||||
# * com.google.devtools.ksp at the end of this file
|
||||
kotlin = "1.9.22"
|
||||
kotlinx-coroutines = "1.7.3"
|
||||
kotlinx-coroutines = "1.8.0"
|
||||
# see https://github.com/google/ksp/releases for version numbers
|
||||
ksp = "1.9.22-1.0.17"
|
||||
mikepenz-aboutLibraries = "10.10.0"
|
||||
nsk90-kstatemachine = "0.26.0"
|
||||
nsk90-kstatemachine = "0.27.0"
|
||||
mockk = "1.13.9"
|
||||
okhttp = "4.12.0"
|
||||
openid-appauth = "0.11.1"
|
||||
|
|
|
@ -4,7 +4,7 @@ pluginManagement {
|
|||
mavenCentral()
|
||||
|
||||
// AboutLibraries
|
||||
maven { url "https://plugins.gradle.org/m2/" }
|
||||
maven("https://plugins.gradle.org/m2/")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -15,8 +15,8 @@ dependencyResolutionManagement {
|
|||
mavenCentral()
|
||||
|
||||
// AppIntro, dav4jvm
|
||||
maven { url "https://jitpack.io" }
|
||||
maven("https://jitpack.io")
|
||||
}
|
||||
}
|
||||
|
||||
include ':app'
|
||||
include(":app")
|
Loading…
Reference in a new issue