import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet import org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) alias(libs.plugins.jetbrains.compose) alias(libs.plugins.compose.compiler) alias(libs.plugins.detekt) } @OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class) kotlin { applyDefaultHierarchyTemplate() androidTarget { compilerOptions { jvmTarget.set(JvmTarget.JVM_1_8) } } listOf( iosX64(), iosArm64(), iosSimulatorArm64(), ).forEach { it.binaries.framework { baseName = "domain.inbox" isStatic = true } } sourceSets { val commonMain by getting { dependencies { implementation(compose.foundation) implementation(compose.runtime) implementation(libs.koin.core) implementation(projects.core.resources) implementation(projects.domain.identity) implementation(projects.domain.lemmy.data) implementation(projects.domain.lemmy.repository) } } val androidMain by getting { dependencies { implementation(libs.androidx.core) implementation(libs.androidx.work.runtime) } } val androidUnitTest by getting { dependencies { implementation(libs.kotlinx.coroutines.test) implementation(kotlin("test-junit")) implementation(libs.mockk) implementation(libs.turbine) implementation(projects.core.testutils) } } } } android { namespace = "com.github.diegoberaldin.raccoonforlemmy.domain.inbox" compileSdk = libs.versions.android.targetSdk.get().toInt() defaultConfig { minSdk = libs.versions.android.minSdk.get().toInt() } } // both :feature:inbox and :domain:inbox are called "inbox" so this causes a name clash kotlin { metadata { compilations.configureEach { if (name == KotlinSourceSet.COMMON_MAIN_SOURCE_SET_NAME) { compileTaskProvider { this as KotlinCompileCommon moduleName.set("${project.group}:${moduleName.get()}") } } } } }