0
0
mirror of https://github.com/thunderbird/thunderbird-android.git synced 2024-09-19 19:52:14 +02:00

Add Android Compose library build plugin

This commit is contained in:
Wolf Montwé 2023-02-16 15:40:38 +01:00
parent e0f0300e82
commit a7256692e5
No known key found for this signature in database
GPG Key ID: 6D45B21512ACBF72
4 changed files with 51 additions and 19 deletions

View File

@ -1,4 +1,5 @@
import com.android.build.api.dsl.CommonExtension
import org.gradle.accessors.dm.LibrariesForLibs
fun CommonExtension<*, *, *, *>.configureSharedConfig() {
compileSdk = ThunderbirdProjectConfig.androidSdkCompile
@ -26,3 +27,24 @@ fun CommonExtension<*, *, *, *>.configureSharedConfig() {
}
}
}
fun CommonExtension<*, *, *, *>.configureSharedComposeConfig(libs: LibrariesForLibs) {
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = libs.versions.androidxComposeCompiler.get()
}
lint {
warningsAsErrors = true
abortOnError = true
}
packagingOptions {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}

View File

@ -6,5 +6,6 @@ object ThunderbirdPlugins {
object Library {
const val jvm = "thunderbird.library.jvm"
const val android = "thunderbird.library.android"
const val androidCompose = "thunderbird.library.android.compose"
}
}

View File

@ -3,13 +3,7 @@ plugins {
}
android {
buildFeatures {
compose = true
}
composeOptions {
kotlinCompilerExtensionVersion = libs.versions.androidxComposeCompiler.get()
}
configureSharedComposeConfig(libs)
buildTypes {
release {
@ -20,17 +14,6 @@ android {
)
}
}
lint {
warningsAsErrors = true
abortOnError = true
}
packagingOptions {
resources {
excludes += "/META-INF/{AL2.0,LGPL2.1}"
}
}
}
dependencies {
@ -48,6 +31,7 @@ dependencies {
debugImplementation("androidx.compose.ui:ui-test-manifest")
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
implementation(libs.androidx.compose.activity)
implementation(libs.androidx.compose.lifecycle.viewmodel)
implementation(libs.androidx.compose.activity)
}

View File

@ -0,0 +1,25 @@
plugins {
id("thunderbird.library.android")
}
android {
configureSharedComposeConfig(libs)
}
dependencies {
val composeBom = platform("androidx.compose:compose-bom:${libs.versions.androidxComposeBom.get()}")
implementation(composeBom)
androidTestImplementation(composeBom)
implementation("androidx.compose.material:material")
// Android Studio Preview support
implementation("androidx.compose.ui:ui-tooling-preview")
debugImplementation("androidx.compose.ui:ui-tooling")
// UI Tests
debugImplementation("androidx.compose.ui:ui-test-manifest")
androidTestImplementation("androidx.compose.ui:ui-test-junit4")
implementation(libs.androidx.compose.lifecycle.viewmodel)
}