diff --git a/kaluga-library-components/src/main/kotlin/extensions/BaseKalugaAndroidSubprojectExtension.kt b/kaluga-library-components/src/main/kotlin/extensions/BaseKalugaAndroidSubprojectExtension.kt index 66ab0addb..dd52a2d0c 100644 --- a/kaluga-library-components/src/main/kotlin/extensions/BaseKalugaAndroidSubprojectExtension.kt +++ b/kaluga-library-components/src/main/kotlin/extensions/BaseKalugaAndroidSubprojectExtension.kt @@ -38,6 +38,8 @@ abstract class BaseKalugaAndroidSubprojectExtension( objects: ObjectFactory, ) : BaseKalugaSubprojectExtension(versionCatalog, libraryExtension, namespacePostfix, objects) { + override fun Project.setupSubproject() {} + override fun Project.configureSubproject() { extensions.configure(KotlinAndroidProjectExtension::class) { compilerOptions { diff --git a/kaluga-library-components/src/main/kotlin/extensions/BaseKalugaSubprojectExtension.kt b/kaluga-library-components/src/main/kotlin/extensions/BaseKalugaSubprojectExtension.kt index 06ca741d4..794745f15 100644 --- a/kaluga-library-components/src/main/kotlin/extensions/BaseKalugaSubprojectExtension.kt +++ b/kaluga-library-components/src/main/kotlin/extensions/BaseKalugaSubprojectExtension.kt @@ -76,6 +76,7 @@ sealed class BaseKalugaSubprojectExtension( ).map { it.asDependency() } override fun Project.beforeEvaluated() { + setupSubproject() libraryExtension.apply { compileSdk = versionCatalog.findVersion("androidCompileSdk").get().displayName.toInt() buildToolsVersion = versionCatalog.findVersion("androidBuildTools").get().displayName @@ -113,6 +114,9 @@ sealed class BaseKalugaSubprojectExtension( configure() } } + + protected abstract fun Project.setupSubproject() + override fun Project.afterProjectEvaluated() { if (moduleName.isEmpty()) { throw RuntimeException("moduleName must be configured") diff --git a/kaluga-library-components/src/main/kotlin/extensions/KalugaMultiplatformSubprojectExtension.kt b/kaluga-library-components/src/main/kotlin/extensions/KalugaMultiplatformSubprojectExtension.kt index 207bd2b4c..e14db176e 100644 --- a/kaluga-library-components/src/main/kotlin/extensions/KalugaMultiplatformSubprojectExtension.kt +++ b/kaluga-library-components/src/main/kotlin/extensions/KalugaMultiplatformSubprojectExtension.kt @@ -77,6 +77,16 @@ open class KalugaMultiplatformSubprojectExtension @Inject constructor( frameworkConfig = action } + override fun Project.setupSubproject() { + // Android Target must be setup before project is evaluated as publishing will break otherwise + extensions.configure(KotlinMultiplatformExtension::class) { + androidTarget("androidLib") { + instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test) + unitTestVariant.sourceSetTree.set(KotlinSourceSetTree.test) + publishAllLibraryVariants() + } + } + } @OptIn(ExperimentalKotlinGradlePluginApi::class) override fun Project.configureSubproject() { extensions.configure(KotlinMultiplatformExtension::class) { @@ -142,12 +152,6 @@ open class KalugaMultiplatformSubprojectExtension @Inject constructor( } } - androidTarget("androidLib") { - instrumentedTestVariant.sourceSetTree.set(KotlinSourceSetTree.test) - unitTestVariant.sourceSetTree.set(KotlinSourceSetTree.test) - publishLibraryVariants("release", "debug") - } - val iosTargets = project.iosTargets.map { iosTarget -> when (iosTarget) { IOSTarget.Arm64 -> iosArm64() diff --git a/libs.versions.toml b/libs.versions.toml index 63062f08a..c1d417e3b 100644 --- a/libs.versions.toml +++ b/libs.versions.toml @@ -1,6 +1,6 @@ [versions] # kotlin version is included since it will affect building -androidGradle = "8.5.0-rc01" +androidGradle = "8.5.0-rc02" androidBuildTools = "34.0.0" androidCompileSdk = "34" androidMinSdk = "24"