mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-04-20 22:23:37 +00:00
refactor(build): Use version catalog for Compose Multiplatform (#4452)
This commit is contained in:
parent
4643435f5f
commit
67120465da
6 changed files with 31 additions and 42 deletions
|
|
@ -187,7 +187,7 @@ androidComponents {
|
|||
}
|
||||
}
|
||||
|
||||
project.afterEvaluate { logger.lifecycle("Version code is set to: ${android.defaultConfig.versionCode}") }
|
||||
project.afterEvaluate { logger.lifecycle("Version code is set to: ${extensions.getByType<ApplicationExtension>().defaultConfig.versionCode}") }
|
||||
|
||||
dependencies {
|
||||
implementation(projects.core.analytics)
|
||||
|
|
|
|||
|
|
@ -19,9 +19,9 @@ import org.gradle.api.Plugin
|
|||
import org.gradle.api.Project
|
||||
import org.gradle.kotlin.dsl.apply
|
||||
import org.gradle.kotlin.dsl.configure
|
||||
import org.jetbrains.compose.ComposeExtension
|
||||
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
|
||||
import org.meshtastic.buildlogic.configureComposeCompiler
|
||||
import org.meshtastic.buildlogic.library
|
||||
import org.meshtastic.buildlogic.libs
|
||||
import org.meshtastic.buildlogic.plugin
|
||||
|
||||
|
|
@ -31,12 +31,11 @@ class KmpLibraryComposeConventionPlugin : Plugin<Project> {
|
|||
apply(plugin = libs.plugin("compose-compiler").get().pluginId)
|
||||
apply(plugin = libs.plugin("compose-multiplatform").get().pluginId)
|
||||
|
||||
val compose = extensions.getByType(ComposeExtension::class.java)
|
||||
extensions.configure<KotlinMultiplatformExtension> {
|
||||
sourceSets.getByName("commonMain").dependencies {
|
||||
implementation(compose.dependencies.runtime)
|
||||
implementation(libs.library("compose-multiplatform-runtime"))
|
||||
// API because consuming modules will usually need the resource types
|
||||
api(compose.dependencies.components.resources)
|
||||
api(libs.library("compose-multiplatform-resources"))
|
||||
}
|
||||
}
|
||||
configureComposeCompiler()
|
||||
|
|
|
|||
|
|
@ -17,9 +17,7 @@
|
|||
|
||||
package org.meshtastic.buildlogic
|
||||
|
||||
import com.android.build.api.dsl.ApplicationExtension
|
||||
import com.android.build.api.dsl.CommonExtension
|
||||
import com.android.build.api.dsl.LibraryExtension
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.kotlin.dsl.dependencies
|
||||
|
||||
|
|
@ -29,8 +27,9 @@ import org.gradle.kotlin.dsl.dependencies
|
|||
internal fun Project.configureAndroidCompose(
|
||||
commonExtension: CommonExtension,
|
||||
) {
|
||||
(commonExtension as? ApplicationExtension)?.buildFeatures?.compose = true
|
||||
(commonExtension as? LibraryExtension)?.buildFeatures?.compose = true
|
||||
commonExtension.apply {
|
||||
buildFeatures.compose = true
|
||||
}
|
||||
|
||||
dependencies {
|
||||
val bom = libs.library("androidx-compose-bom")
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ package org.meshtastic.buildlogic
|
|||
import com.android.build.api.dsl.ApplicationExtension
|
||||
import com.android.build.api.dsl.CommonExtension
|
||||
import com.android.build.api.dsl.KotlinMultiplatformAndroidLibraryTarget
|
||||
import com.android.build.api.dsl.LibraryExtension
|
||||
import org.gradle.api.JavaVersion
|
||||
import org.gradle.api.Project
|
||||
import org.gradle.kotlin.dsl.configure
|
||||
|
|
@ -44,17 +43,13 @@ internal fun Project.configureKotlinAndroid(
|
|||
val targetSdkVersion = configProperties.getProperty("TARGET_SDK").toInt()
|
||||
|
||||
commonExtension.apply {
|
||||
when (this) {
|
||||
is ApplicationExtension -> {
|
||||
compileSdk = compileSdkVersion
|
||||
defaultConfig.targetSdk = targetSdkVersion
|
||||
}
|
||||
is LibraryExtension -> {
|
||||
compileSdk = compileSdkVersion
|
||||
}
|
||||
}
|
||||
compileSdk = compileSdkVersion
|
||||
|
||||
defaultConfig.minSdk = minSdkVersion
|
||||
|
||||
if (this is ApplicationExtension) {
|
||||
defaultConfig.targetSdk = targetSdkVersion
|
||||
}
|
||||
|
||||
compileOptions.sourceCompatibility = JavaVersion.VERSION_17
|
||||
compileOptions.targetCompatibility = JavaVersion.VERSION_17
|
||||
|
|
|
|||
|
|
@ -18,7 +18,6 @@
|
|||
package org.meshtastic.buildlogic
|
||||
|
||||
import com.android.build.api.dsl.ApplicationExtension
|
||||
import com.android.build.api.dsl.ApplicationProductFlavor
|
||||
import com.android.build.api.dsl.CommonExtension
|
||||
import com.android.build.api.dsl.LibraryExtension
|
||||
import com.android.build.api.dsl.ProductFlavor
|
||||
|
|
@ -38,34 +37,28 @@ fun configureFlavors(
|
|||
commonExtension: CommonExtension,
|
||||
flavorConfigurationBlock: ProductFlavor.(flavor: MeshtasticFlavor) -> Unit = {},
|
||||
) {
|
||||
(commonExtension as? ApplicationExtension)?.apply {
|
||||
commonExtension.apply {
|
||||
FlavorDimension.entries.forEach { flavorDimension ->
|
||||
flavorDimensions += flavorDimension.name
|
||||
}
|
||||
|
||||
productFlavors {
|
||||
MeshtasticFlavor.entries.forEach { meshtasticFlavor ->
|
||||
register(meshtasticFlavor.name) {
|
||||
dimension = meshtasticFlavor.dimension.name
|
||||
flavorConfigurationBlock(this, meshtasticFlavor)
|
||||
if (meshtasticFlavor.default) {
|
||||
isDefault = true
|
||||
when (this) {
|
||||
is ApplicationExtension -> productFlavors {
|
||||
MeshtasticFlavor.entries.forEach { meshtasticFlavor ->
|
||||
register(meshtasticFlavor.name) {
|
||||
dimension = meshtasticFlavor.dimension.name
|
||||
flavorConfigurationBlock(this, meshtasticFlavor)
|
||||
if (meshtasticFlavor.default) {
|
||||
isDefault = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
(commonExtension as? LibraryExtension)?.apply {
|
||||
FlavorDimension.entries.forEach { flavorDimension ->
|
||||
flavorDimensions += flavorDimension.name
|
||||
}
|
||||
|
||||
productFlavors {
|
||||
MeshtasticFlavor.entries.forEach { meshtasticFlavor ->
|
||||
register(meshtasticFlavor.name) {
|
||||
dimension = meshtasticFlavor.dimension.name
|
||||
flavorConfigurationBlock(this, meshtasticFlavor)
|
||||
if (this@apply is ApplicationExtension && this is ApplicationProductFlavor) {
|
||||
is LibraryExtension -> productFlavors {
|
||||
MeshtasticFlavor.entries.forEach { meshtasticFlavor ->
|
||||
register(meshtasticFlavor.name) {
|
||||
dimension = meshtasticFlavor.dimension.name
|
||||
flavorConfigurationBlock(this, meshtasticFlavor)
|
||||
if (meshtasticFlavor.default) {
|
||||
isDefault = true
|
||||
}
|
||||
|
|
@ -75,4 +68,3 @@ fun configureFlavors(
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -101,6 +101,10 @@ androidx-compose-ui-text = { module = "androidx.compose.ui:ui-text" }
|
|||
androidx-compose-ui-tooling = { module = "androidx.compose.ui:ui-tooling" }
|
||||
androidx-compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }
|
||||
|
||||
# Compose Multiplatform
|
||||
compose-multiplatform-runtime = { module = "org.jetbrains.compose.runtime:runtime", version.ref = "compose-multiplatform" }
|
||||
compose-multiplatform-resources = { module = "org.jetbrains.compose.components:components-resources", version.ref = "compose-multiplatform" }
|
||||
|
||||
# Google
|
||||
firebase-analytics = { module = "com.google.firebase:firebase-analytics" }
|
||||
firebase-bom = { module = "com.google.firebase:firebase-bom", version = "34.8.0" }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue