Skip to content

Commit 125230a

Browse files
authored
Fix flavored build with subproject and configure kotlin for sample subproject (#5)
* apply build type for flavored configurations * configure kotlin for sample library
1 parent 7e95ea3 commit 125230a

File tree

4 files changed

+14
-3
lines changed

4 files changed

+14
-3
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,6 @@ gradle-android = ["gradle-android-sdk-common", "gradle-android-build", "gradle-a
1919

2020
[plugins]
2121
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
22+
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
2223
publisher = { id = "io.deepmedia.tools.deployer", version.ref = "publisher" }
2324
android-library = { id = "com.android.library", version.ref = "agp" }

grease/src/main/kotlin/io/deepmedia/tools/grease/configurations.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,11 @@ internal fun Project.createProductFlavorConfigurations(
118118
val buildTypedSubFlavor = nameOf(subFlavor, variant.buildType.orEmpty())
119119
log.d { "Creating buildTyped sub product flavor configuration ${buildTypedSubFlavor.greasify()}..." }
120120
val config = createGrease(buildTypedSubFlavor, isTransitive)
121+
config.attributes {
122+
attribute(BuildTypeAttr.ATTRIBUTE, objects.named(BuildTypeAttr::class, variant.buildType.orEmpty()))
123+
}
121124
config.extendsFromSafely(grease(isTransitive), log)
125+
config.extendsFromSafely(greaseOf(variant.buildType.orEmpty(), isTransitive), log)
122126
config.extendsFromSafely(greaseOf(subFlavor, isTransitive), log)
123127
config.extendsFromSafely(flavorConfiguration, log)
124128
}
@@ -153,6 +157,9 @@ internal fun Project.createVariantConfigurations(
153157
) = androidComponent.onVariants { variant ->
154158
log.d { "Creating variant configuration ${variant.name.greasify()}..." }
155159
val config = createGrease(variant.name, isTransitive)
160+
config.attributes {
161+
attribute(BuildTypeAttr.ATTRIBUTE, objects.named(BuildTypeAttr::class, variant.buildType.orEmpty()))
162+
}
156163
config.extendsFromSafely(grease(isTransitive), log)
157164
config.extendsFromSafely(greaseOf(variant.buildType.orEmpty(), isTransitive), log)
158165
variant.flavorName?.let { flavor ->

tests/sample-dependency-pure/build.gradle.kts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
plugins {
22
alias(libs.plugins.android.library)
3+
alias(libs.plugins.kotlin.android)
34
}
45

56
android {
@@ -8,6 +9,10 @@ android {
89
defaultConfig {
910
minSdk = 21
1011
}
12+
13+
kotlinOptions {
14+
jvmTarget = "1.8"
15+
}
1116
}
1217

1318
dependencies {

tests/sample-library/build.gradle.kts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,5 @@ dependencies {
6868
// Manifest changes, layout resources
6969
grease("com.otaliastudios:cameraview:2.7.2")
7070

71-
// Doesn't work. TODO: we need to configure grease configurations so that in case of multiple matching
72-
// variants, they prefer one where com.android.build.api.attributes.BuildTypeAttr is set to release
73-
// grease(project(":sample-dependency-pure"))
71+
grease(project(":sample-dependency-pure"))
7472
}

0 commit comments

Comments
 (0)