From f448561787cae21a8a7e796da043379f27e853eb Mon Sep 17 00:00:00 2001 From: 0xera <56160164+0xera@users.noreply.github.com> Date: Sun, 25 Aug 2024 22:44:46 +0300 Subject: [PATCH 1/2] apply build type for flavored configurations --- .../kotlin/io/deepmedia/tools/grease/configurations.kt | 7 +++++++ tests/sample-library/build.gradle.kts | 4 +--- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/grease/src/main/kotlin/io/deepmedia/tools/grease/configurations.kt b/grease/src/main/kotlin/io/deepmedia/tools/grease/configurations.kt index 0bf055e..abf86fe 100644 --- a/grease/src/main/kotlin/io/deepmedia/tools/grease/configurations.kt +++ b/grease/src/main/kotlin/io/deepmedia/tools/grease/configurations.kt @@ -118,7 +118,11 @@ internal fun Project.createProductFlavorConfigurations( val buildTypedSubFlavor = nameOf(subFlavor, variant.buildType.orEmpty()) log.d { "Creating buildTyped sub product flavor configuration ${buildTypedSubFlavor.greasify()}..." } val config = createGrease(buildTypedSubFlavor, isTransitive) + config.attributes { + attribute(BuildTypeAttr.ATTRIBUTE, objects.named(BuildTypeAttr::class, variant.buildType.orEmpty())) + } config.extendsFromSafely(grease(isTransitive), log) + config.extendsFromSafely(greaseOf(variant.buildType.orEmpty(), isTransitive), log) config.extendsFromSafely(greaseOf(subFlavor, isTransitive), log) config.extendsFromSafely(flavorConfiguration, log) } @@ -153,6 +157,9 @@ internal fun Project.createVariantConfigurations( ) = androidComponent.onVariants { variant -> log.d { "Creating variant configuration ${variant.name.greasify()}..." } val config = createGrease(variant.name, isTransitive) + config.attributes { + attribute(BuildTypeAttr.ATTRIBUTE, objects.named(BuildTypeAttr::class, variant.buildType.orEmpty())) + } config.extendsFromSafely(grease(isTransitive), log) config.extendsFromSafely(greaseOf(variant.buildType.orEmpty(), isTransitive), log) variant.flavorName?.let { flavor -> diff --git a/tests/sample-library/build.gradle.kts b/tests/sample-library/build.gradle.kts index 55b2e61..46c1896 100644 --- a/tests/sample-library/build.gradle.kts +++ b/tests/sample-library/build.gradle.kts @@ -68,7 +68,5 @@ dependencies { // Manifest changes, layout resources grease("com.otaliastudios:cameraview:2.7.2") - // Doesn't work. TODO: we need to configure grease configurations so that in case of multiple matching - // variants, they prefer one where com.android.build.api.attributes.BuildTypeAttr is set to release - // grease(project(":sample-dependency-pure")) + grease(project(":sample-dependency-pure")) } \ No newline at end of file From 850807a4bc785de6ada92d8dce0bfed5094d8440 Mon Sep 17 00:00:00 2001 From: 0xera <56160164+0xera@users.noreply.github.com> Date: Sun, 25 Aug 2024 22:57:44 +0300 Subject: [PATCH 2/2] configure kotlin for sample library --- gradle/libs.versions.toml | 1 + tests/sample-dependency-pure/build.gradle.kts | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6d8fa58..7cfae0b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,5 +19,6 @@ gradle-android = ["gradle-android-sdk-common", "gradle-android-build", "gradle-a [plugins] kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } +kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" } publisher = { id = "io.deepmedia.tools.deployer", version.ref = "publisher" } android-library = { id = "com.android.library", version.ref = "agp" } diff --git a/tests/sample-dependency-pure/build.gradle.kts b/tests/sample-dependency-pure/build.gradle.kts index c3b88ba..e221e25 100644 --- a/tests/sample-dependency-pure/build.gradle.kts +++ b/tests/sample-dependency-pure/build.gradle.kts @@ -1,5 +1,6 @@ plugins { alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) } android { @@ -8,6 +9,10 @@ android { defaultConfig { minSdk = 21 } + + kotlinOptions { + jvmTarget = "1.8" + } } dependencies {