diff --git a/androidApp/build.gradle.kts b/androidApp/build.gradle.kts index 1092c1a08..5fda4c53a 100644 --- a/androidApp/build.gradle.kts +++ b/androidApp/build.gradle.kts @@ -101,7 +101,7 @@ dependencies { kover(projects.shared) kover(projects.core.appearance) - kover(projects.core.commonui.detailopenerImpl) + kover(projects.core.commonui.detailopener.impl) kover(projects.core.navigation) kover(projects.core.notifications) kover(projects.core.persistence) diff --git a/build-logic/convention/build.gradle.kts b/build-logic/convention/build.gradle.kts new file mode 100644 index 000000000..579def73e --- /dev/null +++ b/build-logic/convention/build.gradle.kts @@ -0,0 +1,39 @@ +plugins { + `kotlin-dsl` +} + +group = "com.livefaast.eattrash.raccoonforlemmy.buildlogic" + +repositories { + google() + mavenCentral() + gradlePluginPortal() +} + +dependencies { + compileOnly(libs.gradle) + compileOnly(libs.kotlin.gradlePlugin) + compileOnly(libs.compose.gradlePlugin) + compileOnly(libs.ksp.gradlePlugin) +} + +gradlePlugin { + plugins { + register("kotlinMultiplatform") { + id = "com.livefast.eattrash.kotlinMultiplatform" + implementationClass = "plugins.KotlinMultiplatformPlugin" + } + register("koinWithKsp") { + id = "com.livefast.eattrash.koinWithKsp" + implementationClass = "plugins.KoinWithKspPlugin" + } + register("composeMultiplatform") { + id = "com.livefast.eattrash.composeMultiplatform" + implementationClass = "plugins.ComposeMultiplatformPlugin" + } + register("androidTestPlugin") { + id = "com.livefast.eattrash.androidTest" + implementationClass = "plugins.AndroidTestPlugin" + } + } +} diff --git a/build-logic/convention/src/main/kotlin/extensions/ConfigureComposeMultiplatform.kt b/build-logic/convention/src/main/kotlin/extensions/ConfigureComposeMultiplatform.kt new file mode 100644 index 000000000..4c78d060e --- /dev/null +++ b/build-logic/convention/src/main/kotlin/extensions/ConfigureComposeMultiplatform.kt @@ -0,0 +1,20 @@ +package extensions + +import org.gradle.api.Project +import org.jetbrains.compose.ComposePlugin +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension + +internal fun Project.configureComposeMultiplatform(extension: KotlinMultiplatformExtension) = + extension.apply { + val composeDeps = extensions.getByType(ComposePlugin.Dependencies::class.java) + sourceSets.apply { + commonMain { + dependencies { + implementation(composeDeps.runtime) + implementation(composeDeps.foundation) + implementation(composeDeps.material3) + implementation(composeDeps.materialIconsExtended) + } + } + } + } diff --git a/build-logic/convention/src/main/kotlin/extensions/ConfigureKoinAnnotations.kt b/build-logic/convention/src/main/kotlin/extensions/ConfigureKoinAnnotations.kt new file mode 100644 index 000000000..33ef815c3 --- /dev/null +++ b/build-logic/convention/src/main/kotlin/extensions/ConfigureKoinAnnotations.kt @@ -0,0 +1,24 @@ +package extensions + +import org.gradle.api.Project +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import utils.dependency +import utils.libs + +internal fun Project.configureKoinAnnotations(extension: KotlinMultiplatformExtension) = + extension.apply { + compilerOptions { + freeCompilerArgs.add("-Xexpect-actual-classes") + } + + sourceSets.apply { + commonMain { + dependencies { + implementation(libs.findLibrary("koin-core").dependency) + api(libs.findLibrary("koin-annotations").dependency) + } + + kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") + } + } + } diff --git a/build-logic/convention/src/main/kotlin/extensions/ConfigureKotlinAndroid.kt b/build-logic/convention/src/main/kotlin/extensions/ConfigureKotlinAndroid.kt new file mode 100644 index 000000000..e2ba7d41b --- /dev/null +++ b/build-logic/convention/src/main/kotlin/extensions/ConfigureKotlinAndroid.kt @@ -0,0 +1,28 @@ +package extensions + +import com.android.build.gradle.LibraryExtension +import org.gradle.api.JavaVersion +import org.gradle.api.Project +import utils.PACKAGE_PREFIX +import utils.libs +import utils.version + +internal fun Project.configureKotlinAndroid(extension: LibraryExtension) = + extension.apply { + val moduleName = path.split(":").drop(1).joinToString(".") + namespace = if (moduleName.isNotEmpty()) "$PACKAGE_PREFIX.$moduleName" else PACKAGE_PREFIX + + compileSdk = libs.findVersion("android-compileSdk").version + defaultConfig { + minSdk = libs.findVersion("android-minSdk").version + } + compileOptions { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + packaging { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + } + } + } diff --git a/build-logic/convention/src/main/kotlin/extensions/ConfigureKotlinMultiplatform.kt b/build-logic/convention/src/main/kotlin/extensions/ConfigureKotlinMultiplatform.kt new file mode 100644 index 000000000..20211f3eb --- /dev/null +++ b/build-logic/convention/src/main/kotlin/extensions/ConfigureKotlinMultiplatform.kt @@ -0,0 +1,27 @@ +package extensions + +import org.gradle.api.Project +import org.jetbrains.kotlin.gradle.dsl.JvmTarget +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension + +internal fun Project.configureKotlinMultiplatform(extension: KotlinMultiplatformExtension) = + extension.apply { + applyDefaultHierarchyTemplate() + androidTarget { + compilerOptions { + jvmTarget.set(JvmTarget.JVM_1_8) + } + } + + val moduleName = path.split(":").drop(1).joinToString(".") + listOf( + iosX64(), + iosArm64(), + iosSimulatorArm64(), + ).forEach { + it.binaries.framework { + baseName = moduleName + isStatic = true + } + } + } diff --git a/build-logic/convention/src/main/kotlin/plugins/AndroidTestPlugin.kt b/build-logic/convention/src/main/kotlin/plugins/AndroidTestPlugin.kt new file mode 100644 index 000000000..e0897398d --- /dev/null +++ b/build-logic/convention/src/main/kotlin/plugins/AndroidTestPlugin.kt @@ -0,0 +1,35 @@ +package plugins + +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.dependencies +import org.gradle.kotlin.dsl.kotlin +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import utils.dependency +import utils.libs + +class AndroidTestPlugin : Plugin { + override fun apply(target: Project): Unit = + with(target) { + extensions.configure( + KotlinMultiplatformExtension::class.java, + ) { + sourceSets.apply { + androidUnitTest { + dependencies { + implementation(libs.findLibrary("kotlinx-coroutines-test").dependency) + implementation(kotlin("test-junit")) + implementation(libs.findLibrary("mockk").dependency) + implementation(libs.findLibrary("turbine").dependency) + implementation(project(":core:testutils")) + } + } + commonTest { + dependencies { + implementation(kotlin("test")) + } + } + } + } + } +} diff --git a/build-logic/convention/src/main/kotlin/plugins/ComposeMultiplatformPlugin.kt b/build-logic/convention/src/main/kotlin/plugins/ComposeMultiplatformPlugin.kt new file mode 100644 index 000000000..c485997f0 --- /dev/null +++ b/build-logic/convention/src/main/kotlin/plugins/ComposeMultiplatformPlugin.kt @@ -0,0 +1,23 @@ +package plugins + +import extensions.configureComposeMultiplatform +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import utils.libs +import utils.pluginId + +class ComposeMultiplatformPlugin : Plugin { + override fun apply(target: Project): Unit = + with(target) { + with(pluginManager) { + apply(libs.findPlugin("jetbrains-compose").pluginId) + apply(libs.findPlugin("compose-compiler").pluginId) + } + + extensions.configure( + KotlinMultiplatformExtension::class.java, + ::configureComposeMultiplatform, + ) + } +} diff --git a/build-logic/convention/src/main/kotlin/plugins/KoinWithKspPlugin.kt b/build-logic/convention/src/main/kotlin/plugins/KoinWithKspPlugin.kt new file mode 100644 index 000000000..002a9264a --- /dev/null +++ b/build-logic/convention/src/main/kotlin/plugins/KoinWithKspPlugin.kt @@ -0,0 +1,44 @@ +package plugins + +import com.google.devtools.ksp.gradle.KspExtension +import extensions.configureKoinAnnotations +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask +import utils.dependency +import utils.libs +import utils.pluginId + +class KoinWithKspPlugin : Plugin { + override fun apply(target: Project) { + with(target) { + with(pluginManager) { + apply(libs.findPlugin("ksp").pluginId) + } + + extensions.configure( + KotlinMultiplatformExtension::class.java, + ::configureKoinAnnotations, + ) + + extensions.configure(KspExtension::class.java) { + arg("KOIN_DEFAULT_MODULE", "false") + } + + dependencies.apply { + add("kspCommonMainMetadata", libs.findLibrary("koin-ksp").dependency) + add("kspAndroid", libs.findLibrary("koin-ksp").dependency) + add("kspIosX64", libs.findLibrary("koin-ksp").dependency) + add("kspIosArm64", libs.findLibrary("koin-ksp").dependency) + add("kspIosSimulatorArm64", libs.findLibrary("koin-ksp").dependency) + } + + tasks.withType(KotlinCompilationTask::class.java).configureEach { + if (name != "kspCommonMainKotlinMetadata") { + dependsOn("kspCommonMainKotlinMetadata") + } + } + } + } +} diff --git a/build-logic/convention/src/main/kotlin/plugins/KotlinMultiplatformPlugin.kt b/build-logic/convention/src/main/kotlin/plugins/KotlinMultiplatformPlugin.kt new file mode 100644 index 000000000..3c1cdb905 --- /dev/null +++ b/build-logic/convention/src/main/kotlin/plugins/KotlinMultiplatformPlugin.kt @@ -0,0 +1,29 @@ +package plugins + +import com.android.build.gradle.LibraryExtension +import extensions.configureKotlinAndroid +import extensions.configureKotlinMultiplatform +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import utils.libs +import utils.pluginId + +class KotlinMultiplatformPlugin : Plugin { + override fun apply(target: Project): Unit = + with(target) { + with(pluginManager) { + apply(libs.findPlugin("kotlin-multiplatform").pluginId) + apply(libs.findPlugin("android-library").pluginId) + } + + extensions.configure( + KotlinMultiplatformExtension::class.java, + ::configureKotlinMultiplatform, + ) + extensions.configure( + LibraryExtension::class.java, + ::configureKotlinAndroid, + ) + } +} diff --git a/build-logic/convention/src/main/kotlin/utils/Constants.kt b/build-logic/convention/src/main/kotlin/utils/Constants.kt new file mode 100644 index 000000000..389410300 --- /dev/null +++ b/build-logic/convention/src/main/kotlin/utils/Constants.kt @@ -0,0 +1,3 @@ +package utils + +internal const val PACKAGE_PREFIX = "com.livefaast.eattrash.raccoonforlemmy" diff --git a/build-logic/convention/src/main/kotlin/utils/Utils.kt b/build-logic/convention/src/main/kotlin/utils/Utils.kt new file mode 100644 index 000000000..1678793d9 --- /dev/null +++ b/build-logic/convention/src/main/kotlin/utils/Utils.kt @@ -0,0 +1,18 @@ +package utils + +import org.gradle.api.Project +import org.gradle.api.artifacts.MinimalExternalModuleDependency +import org.gradle.api.artifacts.VersionCatalogsExtension +import org.gradle.api.artifacts.VersionConstraint +import org.gradle.api.provider.Provider +import org.gradle.kotlin.dsl.getByType +import org.gradle.plugin.use.PluginDependency +import java.util.Optional + +internal val Project.libs get() = extensions.getByType().named("libs") + +internal val Optional>.pluginId get() = get().get().pluginId + +internal val Optional.version get() = get().requiredVersion.toInt() + +internal val Optional>.dependency get() = get().get() diff --git a/build-logic/settings.gradle.kts b/build-logic/settings.gradle.kts new file mode 100644 index 000000000..1fab440da --- /dev/null +++ b/build-logic/settings.gradle.kts @@ -0,0 +1,12 @@ +dependencyResolutionManagement { + versionCatalogs { + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } +} + +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") + +rootProject.name = "build-logic" +include(":convention") diff --git a/core/api/build.gradle.kts b/core/api/build.gradle.kts index a4434c826..d8f92b386 100644 --- a/core/api/build.gradle.kts +++ b/core/api/build.gradle.kts @@ -1,38 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") alias(libs.plugins.ktorfit) - alias(libs.plugins.ksp) alias(libs.plugins.kotlinx.serialization) } -@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 = "core.api" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.kotlinx.serialization.json) implementation(libs.ktorfit.lib) implementation(libs.ktor.serialization) @@ -43,51 +19,5 @@ kotlin { implementation(projects.core.utils) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.api" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -dependencies { - add("kspCommonMainMetadata", libs.ktorfit.ksp) - add("kspAndroid", libs.ktorfit.ksp) - add("kspIosX64", libs.ktorfit.ksp) - add("kspIosArm64", libs.ktorfit.ksp) - add("kspIosSimulatorArm64", libs.ktorfit.ksp) - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/core/appearance/build.gradle.kts b/core/appearance/build.gradle.kts index c45e4eb5d..89310d642 100644 --- a/core/appearance/build.gradle.kts +++ b/core/appearance/build.gradle.kts @@ -1,38 +1,12 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.kover) - alias(libs.plugins.ksp) } -@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 = "core.appearance" - isStatic = true - } - } - - compilerOptions { - freeCompilerArgs.add("-Xexpect-actual-classes") - } - sourceSets { val androidMain by getting { dependencies { @@ -41,62 +15,11 @@ kotlin { } val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.materialKolor) implementation(projects.core.l10n) implementation(projects.core.resources) } } - val androidUnitTest by getting { - dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) - implementation(projects.core.testutils) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.appearance" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/core/architecture/build.gradle.kts b/core/architecture/build.gradle.kts index a7e90f1ff..ccdd6a014 100644 --- a/core/architecture/build.gradle.kts +++ b/core/architecture/build.gradle.kts @@ -1,29 +1,8 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) + id("com.livefast.eattrash.kotlinMultiplatform") } -@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 = "core.architecture" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { @@ -32,17 +11,3 @@ kotlin { } } } - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.architecture" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} diff --git a/core/commonui/components/build.gradle.kts b/core/commonui/components/build.gradle.kts index fa34f1bde..c41a65819 100644 --- a/core/commonui/components/build.gradle.kts +++ b/core/commonui/components/build.gradle.kts @@ -1,40 +1,13 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "core.commonui.components" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - implementation(libs.coil.compose) implementation(libs.compose.multiplatform.media.player) @@ -44,24 +17,5 @@ kotlin { implementation(projects.core.utils) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.commonui.components" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() } } diff --git a/core/commonui/components/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/components/SearchField.kt b/core/commonui/components/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/components/SearchField.kt index 7b3bbffd5..0edb788ef 100644 --- a/core/commonui/components/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/components/SearchField.kt +++ b/core/commonui/components/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/components/SearchField.kt @@ -9,10 +9,10 @@ import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.BasicTextField import androidx.compose.foundation.text.KeyboardOptions -import androidx.compose.material.Icon import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Clear import androidx.compose.material.icons.filled.Search +import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -36,7 +36,6 @@ import androidx.compose.ui.unit.toSize import com.livefast.eattrash.raccoonforlemmy.core.appearance.theme.IconSize import com.livefast.eattrash.raccoonforlemmy.core.appearance.theme.Spacing import com.livefast.eattrash.raccoonforlemmy.core.appearance.theme.ancillaryTextAlpha -import com.livefast.eattrash.raccoonforlemmy.core.utils.compose.onClick import com.livefast.eattrash.raccoonforlemmy.core.utils.toLocalDp @Composable diff --git a/core/commonui/detailopener-api/build.gradle.kts b/core/commonui/detailopener-api/build.gradle.kts deleted file mode 100644 index 6daaf9225..000000000 --- a/core/commonui/detailopener-api/build.gradle.kts +++ /dev/null @@ -1,62 +0,0 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - -plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) -} - -@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 = "core.commonui.detailopener-api" - isStatic = true - } - } - - sourceSets { - val commonMain by getting { - dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - - implementation(libs.koin.core) - - implementation(projects.domain.lemmy.data) - } - } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.commonui.detailopener.api" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} diff --git a/core/commonui/detailopener-impl/build.gradle.kts b/core/commonui/detailopener-impl/build.gradle.kts deleted file mode 100644 index 8a8126ce9..000000000 --- a/core/commonui/detailopener-impl/build.gradle.kts +++ /dev/null @@ -1,84 +0,0 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - -plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.kotlinx.kover) -} - -@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 = "core.commonui.detailopener-impl" - isStatic = true - } - } - - sourceSets { - val androidMain by getting { - dependencies { - implementation(libs.coil.compose) - } - } - val commonMain by getting { - dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - - implementation(libs.voyager.navigator) - - implementation(projects.core.navigation) - implementation(projects.core.commonui.detailopenerApi) - - implementation(projects.domain.identity) - implementation(projects.domain.lemmy.data) - implementation(projects.domain.lemmy.pagination) - implementation(projects.domain.lemmy.repository) - - implementation(projects.unit.postdetail) - implementation(projects.unit.communitydetail) - implementation(projects.unit.userdetail) - implementation(projects.unit.createpost) - implementation(projects.unit.createcomment) - implementation(projects.unit.web) - } - } - val androidUnitTest by getting { - dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) - implementation(projects.core.testutils) - } - } - } -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.commonui.detailopener.impl" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} diff --git a/core/commonui/detailopener/api/build.gradle.kts b/core/commonui/detailopener/api/build.gradle.kts new file mode 100644 index 000000000..927eb5517 --- /dev/null +++ b/core/commonui/detailopener/api/build.gradle.kts @@ -0,0 +1,16 @@ +plugins { + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") +} + +kotlin { + sourceSets { + val commonMain by getting { + dependencies { + implementation(projects.domain.lemmy.data) + } + } + } +} diff --git a/core/commonui/detailopener-api/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt b/core/commonui/detailopener/api/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt similarity index 100% rename from core/commonui/detailopener-api/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt rename to core/commonui/detailopener/api/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt diff --git a/core/commonui/detailopener-api/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/DetailOpener.kt b/core/commonui/detailopener/api/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/DetailOpener.kt similarity index 100% rename from core/commonui/detailopener-api/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/DetailOpener.kt rename to core/commonui/detailopener/api/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/DetailOpener.kt diff --git a/core/commonui/detailopener-api/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt b/core/commonui/detailopener/api/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt similarity index 100% rename from core/commonui/detailopener-api/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt rename to core/commonui/detailopener/api/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt diff --git a/core/commonui/detailopener-api/src/iosMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt b/core/commonui/detailopener/api/src/iosMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt similarity index 100% rename from core/commonui/detailopener-api/src/iosMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt rename to core/commonui/detailopener/api/src/iosMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/api/Utils.kt diff --git a/core/commonui/detailopener/impl/build.gradle.kts b/core/commonui/detailopener/impl/build.gradle.kts new file mode 100644 index 000000000..f9d0617cf --- /dev/null +++ b/core/commonui/detailopener/impl/build.gradle.kts @@ -0,0 +1,33 @@ +plugins { + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") + alias(libs.plugins.kotlinx.kover) +} + +@OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class) +kotlin { + sourceSets { + val commonMain by getting { + dependencies { + implementation(libs.voyager.navigator) + + implementation(projects.core.navigation) + implementation(projects.core.commonui.detailopener.api) + + implementation(projects.domain.identity) + implementation(projects.domain.lemmy.data) + implementation(projects.domain.lemmy.pagination) + implementation(projects.domain.lemmy.repository) + + implementation(projects.unit.postdetail) + implementation(projects.unit.communitydetail) + implementation(projects.unit.userdetail) + implementation(projects.unit.createpost) + implementation(projects.unit.createcomment) + implementation(projects.unit.web) + } + } + } +} diff --git a/core/commonui/detailopener-impl/src/androidUnitTest/kotlin/DefaultDetailOpenerTest.kt b/core/commonui/detailopener/impl/src/androidUnitTest/kotlin/DefaultDetailOpenerTest.kt similarity index 100% rename from core/commonui/detailopener-impl/src/androidUnitTest/kotlin/DefaultDetailOpenerTest.kt rename to core/commonui/detailopener/impl/src/androidUnitTest/kotlin/DefaultDetailOpenerTest.kt diff --git a/core/commonui/detailopener-impl/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/impl/DefaultDetailOpener.kt b/core/commonui/detailopener/impl/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/impl/DefaultDetailOpener.kt similarity index 100% rename from core/commonui/detailopener-impl/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/impl/DefaultDetailOpener.kt rename to core/commonui/detailopener/impl/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/commonui/detailopener/impl/DefaultDetailOpener.kt diff --git a/core/commonui/lemmyui/build.gradle.kts b/core/commonui/lemmyui/build.gradle.kts index b0db8a4ce..0937c470b 100644 --- a/core/commonui/lemmyui/build.gradle.kts +++ b/core/commonui/lemmyui/build.gradle.kts @@ -1,33 +1,11 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "core.commonui.lemmyui" - isStatic = true - } - } - sourceSets { val androidMain by getting { dependencies { @@ -36,14 +14,6 @@ kotlin { } val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.calf) implementation(projects.core.appearance) @@ -55,49 +25,8 @@ kotlin { implementation(projects.core.utils) implementation(projects.domain.lemmy.data) - implementation(projects.core.commonui.detailopenerApi) - } - } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) + implementation(projects.core.commonui.detailopener.api) } } } } - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") - } -} diff --git a/core/commonui/modals/build.gradle.kts b/core/commonui/modals/build.gradle.kts index d85bb471f..74af82a0d 100644 --- a/core/commonui/modals/build.gradle.kts +++ b/core/commonui/modals/build.gradle.kts @@ -1,41 +1,12 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.composeMultiplatform") } -@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 = "core.commonui.modals" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) implementation(libs.voyager.navigator) implementation(libs.voyager.bottomsheet) @@ -52,24 +23,5 @@ kotlin { implementation(projects.domain.lemmy.data) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.commonui.modals" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() } } diff --git a/core/l10n/build.gradle.kts b/core/l10n/build.gradle.kts index 94b4ac821..c367b53fd 100644 --- a/core/l10n/build.gradle.kts +++ b/core/l10n/build.gradle.kts @@ -1,82 +1,16 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "core.l10n" - isStatic = true - } - } - sourceSets { val commonMain by getting { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.lyricist) } } } } - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.commonui.l10n" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") - } -} diff --git a/core/markdown/build.gradle.kts b/core/markdown/build.gradle.kts index dfcbe668a..5ffea5937 100644 --- a/core/markdown/build.gradle.kts +++ b/core/markdown/build.gradle.kts @@ -1,30 +1,9 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.composeMultiplatform") } -@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 = "core.markdown" - isStatic = true - } - } sourceSets { val androidMain by getting { @@ -34,10 +13,6 @@ kotlin { } val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - api(libs.multiplatform.markdown.renderer) api(libs.multiplatform.markdown.renderer.m3) api(libs.multiplatform.markdown.renderer.coil3) @@ -47,24 +22,5 @@ kotlin { implementation(projects.core.utils) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.markdown" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() } } diff --git a/core/navigation/build.gradle.kts b/core/navigation/build.gradle.kts index 79c8096f6..450b1b071 100644 --- a/core/navigation/build.gradle.kts +++ b/core/navigation/build.gradle.kts @@ -1,97 +1,25 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.kover) - alias(libs.plugins.ksp) } kotlin { - applyDefaultHierarchyTemplate() - androidTarget { - compilerOptions { - jvmTarget.set(JvmTarget.JVM_1_8) - } - } - listOf( - iosX64(), - iosArm64(), - iosSimulatorArm64(), - ).forEach { - it.binaries.framework { - baseName = "core.navigation" - isStatic = true - } - } - sourceSets { commonMain.dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - - implementation(libs.koin.core) implementation(libs.stately.common) implementation(libs.voyager.navigator) implementation(libs.voyager.tab) implementation(libs.voyager.bottomsheet) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) - api(libs.koin.annotations) implementation(projects.core.l10n) implementation(projects.core.persistence) implementation(projects.core.preferences) implementation(projects.domain.lemmy.data) } - val androidUnitTest by getting { - dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) - implementation(libs.turbine) - implementation(projects.core.testutils) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.navigation" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/core/navigation/src/androidUnitTest/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/DefaultNavigationCoordinatorTest.kt b/core/navigation/src/androidUnitTest/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/DefaultNavigationCoordinatorTest.kt index 8dfb4d2be..48e4194b6 100644 --- a/core/navigation/src/androidUnitTest/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/DefaultNavigationCoordinatorTest.kt +++ b/core/navigation/src/androidUnitTest/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/DefaultNavigationCoordinatorTest.kt @@ -8,7 +8,6 @@ import app.cash.turbine.test import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.core.screen.ScreenKey import cafe.adriel.voyager.navigator.Navigator -import cafe.adriel.voyager.navigator.bottomSheet.BottomSheetNavigator import cafe.adriel.voyager.navigator.tab.Tab import cafe.adriel.voyager.navigator.tab.TabNavigator import cafe.adriel.voyager.navigator.tab.TabOptions @@ -231,48 +230,6 @@ class DefaultNavigationCoordinatorTest { } } - @Test - fun whenShowBottomSheet_thenInteractionsAreAsExpected() = - runTest { - val screen = - object : Screen { - @Composable - override fun Content() { - Box(modifier = Modifier.fillMaxSize()) - } - } - val navigator = mockk(relaxUnitFun = true) - sut.setBottomNavigator(navigator) - - launch { - sut.showBottomSheet(screen) - } - advanceTimeBy(DELAY) - - verify { - navigator.show(screen) - } - } - - @Test - fun whenHideBottomSheet_thenInteractionsAreAsExpected() = - runTest { - val navigator = - mockk(relaxUnitFun = true) { - every { isVisible } returns true - } - sut.setBottomNavigator(navigator) - - launch { - sut.hideBottomSheet() - } - advanceTimeBy(DELAY) - - verify { - navigator.hide() - } - } - @Test fun whenShowSideMenu_thenInteractionsAreAsExpected() = runTest { diff --git a/core/navigation/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/DefaultNavigationCoordinator.kt b/core/navigation/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/DefaultNavigationCoordinator.kt index e496c590f..863a8eed8 100644 --- a/core/navigation/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/DefaultNavigationCoordinator.kt +++ b/core/navigation/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/DefaultNavigationCoordinator.kt @@ -3,7 +3,6 @@ package com.livefast.eattrash.raccoonforlemmy.core.navigation import androidx.compose.ui.input.nestedscroll.NestedScrollConnection import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.navigator.Navigator -import cafe.adriel.voyager.navigator.bottomSheet.BottomSheetNavigator import cafe.adriel.voyager.navigator.tab.Tab import cafe.adriel.voyager.navigator.tab.TabNavigator import kotlinx.coroutines.CoroutineDispatcher @@ -46,10 +45,8 @@ internal class DefaultNavigationCoordinator( private var connection: NestedScrollConnection? = null private var navigator: Navigator? = null - private var bottomNavigator: BottomSheetNavigator? = null private var tabNavigator: TabNavigator? = null private var canGoBackCallback: (() -> Boolean)? = null - private val bottomSheetChannel = Channel() private val screenChannel = Channel() private val scope: CoroutineScope = CoroutineScope(SupervisorJob() + dispatcher) @@ -59,15 +56,6 @@ internal class DefaultNavigationCoordinator( init { scope.launch { - bottomSheetChannel - .receiveAsFlow() - .onEach { evt -> - when (evt) { - is NavigationEvent.Show -> { - bottomNavigator?.show(evt.screen) - } - } - }.launchIn(this) screenChannel .receiveAsFlow() .onEach { evt -> @@ -136,17 +124,6 @@ internal class DefaultNavigationCoordinator( inboxUnread.value = count } - override fun setBottomNavigator(value: BottomSheetNavigator?) { - bottomNavigator = value - } - - override fun showBottomSheet(screen: Screen) { - closeSideMenu() - scope.launch { - bottomSheetChannel.send(NavigationEvent.Show(screen)) - } - } - override fun pushScreen(screen: Screen) { closeSideMenu() scope.launch { @@ -154,10 +131,6 @@ internal class DefaultNavigationCoordinator( } } - override fun hideBottomSheet() { - bottomNavigator?.hide() - } - override fun popScreen() { navigator?.pop() canPop.value = navigator?.canPop == true diff --git a/core/navigation/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/NavigationCoordinator.kt b/core/navigation/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/NavigationCoordinator.kt index dc92ce4bc..0bfa10433 100644 --- a/core/navigation/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/NavigationCoordinator.kt +++ b/core/navigation/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/navigation/NavigationCoordinator.kt @@ -4,7 +4,6 @@ import androidx.compose.runtime.Stable import androidx.compose.ui.input.nestedscroll.NestedScrollConnection import cafe.adriel.voyager.core.screen.Screen import cafe.adriel.voyager.navigator.Navigator -import cafe.adriel.voyager.navigator.bottomSheet.BottomSheetNavigator import cafe.adriel.voyager.navigator.tab.Tab import cafe.adriel.voyager.navigator.tab.TabNavigator import kotlinx.coroutines.flow.Flow @@ -60,12 +59,6 @@ interface NavigationCoordinator { fun setInboxUnread(count: Int) - fun setBottomNavigator(value: BottomSheetNavigator?) - - fun showBottomSheet(screen: Screen) - - fun hideBottomSheet() - fun pushScreen(screen: Screen) fun popScreen() diff --git a/core/notifications/build.gradle.kts b/core/notifications/build.gradle.kts index b6b4bf3ae..b0f91c509 100644 --- a/core/notifications/build.gradle.kts +++ b/core/notifications/build.gradle.kts @@ -1,92 +1,19 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.kover) - alias(libs.plugins.ksp) } -@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 = "core.notifications" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - - implementation(libs.koin.core) - api(libs.koin.annotations) - implementation(projects.core.appearance) implementation(projects.core.persistence) implementation(projects.domain.lemmy.data) } } - val androidUnitTest by getting { - dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) - implementation(libs.turbine) - implementation(projects.core.testutils) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.notifications" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/core/persistence/build.gradle.kts b/core/persistence/build.gradle.kts index 1a57caf24..bdd95c107 100644 --- a/core/persistence/build.gradle.kts +++ b/core/persistence/build.gradle.kts @@ -12,7 +12,6 @@ plugins { alias(libs.plugins.ksp) } -@OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class) kotlin { applyDefaultHierarchyTemplate() androidTarget { diff --git a/core/persistence/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt b/core/persistence/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt index 46947aa77..ccffb9b3a 100644 --- a/core/persistence/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt +++ b/core/persistence/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt @@ -3,13 +3,14 @@ package com.livefast.eattrash.raccoonforlemmy.core.persistence.di import com.livefast.eattrash.raccoonforlemmy.core.persistence.repository.AccountRepository import com.livefast.eattrash.raccoonforlemmy.core.persistence.repository.SettingsRepository import org.koin.core.annotation.ComponentScan +import org.koin.core.annotation.Module import org.koin.java.KoinJavaComponent -@org.koin.core.annotation.Module +@Module @ComponentScan("com.livefast.eattrash.raccoonforlemmy.core.persistence.driver") internal actual class DriverModule -@org.koin.core.annotation.Module +@Module @ComponentScan("com.livefast.eattrash.raccoonforlemmy.core.persistence.key") internal actual class KeyModule diff --git a/core/persistence/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/key/DefaultDatabaseKeyProvider.kt b/core/persistence/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/key/DefaultDatabaseKeyProvider.kt index 829c07374..1e5d3b85a 100644 --- a/core/persistence/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/key/DefaultDatabaseKeyProvider.kt +++ b/core/persistence/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/key/DefaultDatabaseKeyProvider.kt @@ -9,10 +9,6 @@ import java.security.SecureRandom internal actual class DefaultDatabaseKeyProvider( private val keyStore: TemporaryKeyStore, ) : DatabaseKeyProvider { - companion object { - private const val DATABASE_KEY = "database_key" - } - actual override fun getKey(): ByteArray { val savedKey = retrieveStoreKey() return if (savedKey.isEmpty()) { @@ -51,4 +47,8 @@ internal actual class DefaultDatabaseKeyProvider( private fun encodeToString(key: ByteArray): String = Base64.encodeToString(key, Base64.DEFAULT) private fun decodeFromString(key: String): ByteArray = Base64.decode(key, Base64.DEFAULT) + + companion object { + private const val DATABASE_KEY = "database_key" + } } diff --git a/core/persistence/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt b/core/persistence/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt index b52c43831..3851fbbd0 100644 --- a/core/persistence/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt +++ b/core/persistence/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt @@ -2,11 +2,12 @@ package com.livefast.eattrash.raccoonforlemmy.core.persistence.di import com.livefast.eattrash.raccoonforlemmy.core.persistence.repository.AccountRepository import com.livefast.eattrash.raccoonforlemmy.core.persistence.repository.SettingsRepository +import org.koin.core.annotation.Module -@org.koin.core.annotation.Module +@Module internal expect class DriverModule() -@org.koin.core.annotation.Module +@Module internal expect class KeyModule() expect fun getAccountRepository(): AccountRepository diff --git a/core/persistence/src/iosMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt b/core/persistence/src/iosMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt index 0725acb9c..c029e9680 100644 --- a/core/persistence/src/iosMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt +++ b/core/persistence/src/iosMain/kotlin/com/livefast/eattrash/raccoonforlemmy/core/persistence/di/Utils.kt @@ -3,14 +3,15 @@ package com.livefast.eattrash.raccoonforlemmy.core.persistence.di import com.livefast.eattrash.raccoonforlemmy.core.persistence.repository.AccountRepository import com.livefast.eattrash.raccoonforlemmy.core.persistence.repository.SettingsRepository import org.koin.core.annotation.ComponentScan +import org.koin.core.annotation.Module import org.koin.core.component.KoinComponent import org.koin.core.component.inject -@org.koin.core.annotation.Module +@Module @ComponentScan("com.livefast.eattrash.raccoonforlemmy.core.persistence.driver") internal actual class DriverModule -@org.koin.core.annotation.Module +@Module @ComponentScan("com.livefast.eattrash.raccoonforlemmy.core.persistence.key") internal actual class KeyModule @@ -18,7 +19,7 @@ actual fun getAccountRepository(): AccountRepository = PersistenceDiHelper.accou actual fun getSettingsRepository(): SettingsRepository = PersistenceDiHelper.settingsRepository -object PersistenceDiHelper : KoinComponent { +internal object PersistenceDiHelper : KoinComponent { val accountRepository: AccountRepository by inject() val settingsRepository: SettingsRepository by inject() } diff --git a/core/preferences/build.gradle.kts b/core/preferences/build.gradle.kts index db1796107..12fbf8b21 100644 --- a/core/preferences/build.gradle.kts +++ b/core/preferences/build.gradle.kts @@ -1,37 +1,13 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.serialization) alias(libs.plugins.kotlinx.kover) - alias(libs.plugins.ksp) } -@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 = "core.preferences" - isStatic = true - } - } - - compilerOptions { - freeCompilerArgs.add("-Xexpect-actual-classes") - } - sourceSets { val androidMain by getting { dependencies { @@ -41,8 +17,6 @@ kotlin { } val commonMain by getting { dependencies { - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.kotlinx.coroutines) implementation(libs.kotlinx.serialization.json) implementation(libs.ktor.client.core) @@ -53,48 +27,8 @@ kotlin { } val androidUnitTest by getting { dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) implementation(libs.ktor.client.mock) - implementation(projects.core.testutils) } } } } - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.preferences" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") - } -} diff --git a/core/resources/build.gradle.kts b/core/resources/build.gradle.kts index 71db3a9b8..23556e817 100644 --- a/core/resources/build.gradle.kts +++ b/core/resources/build.gradle.kts @@ -1,62 +1,15 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") } -@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 = "core.resources" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - implementation(libs.compose.multiplatform.media.player) - implementation(libs.koin.core) } } } } - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.resources" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } - sourceSets { - named("main") { - manifest.srcFile("src/androidMain/AndroidManifest.xml") - res.srcDirs("src/commonMain/resources") - } - } -} diff --git a/core/testutils/build.gradle.kts b/core/testutils/build.gradle.kts index 1551ea6f8..853dc34cd 100644 --- a/core/testutils/build.gradle.kts +++ b/core/testutils/build.gradle.kts @@ -1,31 +1,9 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) + id("com.livefast.eattrash.kotlinMultiplatform") } -@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 = "core.testutils" - isStatic = true - } - } - sourceSets { - val commonMain by getting val androidMain by getting { dependencies { implementation(kotlin("test-junit")) @@ -34,17 +12,3 @@ kotlin { } } } - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.testutils" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} diff --git a/core/utils/build.gradle.kts b/core/utils/build.gradle.kts index e445ff406..2cbf44989 100644 --- a/core/utils/build.gradle.kts +++ b/core/utils/build.gradle.kts @@ -1,48 +1,15 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.kover) - alias(libs.plugins.ksp) } -@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 = "core.utils" - isStatic = true - } - } - - compilerOptions { - freeCompilerArgs.add("-Xexpect-actual-classes") - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.ktor.cio) implementation(libs.coil) implementation(libs.coil.network.ktor) @@ -66,50 +33,5 @@ kotlin { implementation(libs.ktor.darwin) } } - val androidUnitTest by getting { - dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) - implementation(libs.turbine) - implementation(projects.core.testutils) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.core.utils" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/domain/identity/build.gradle.kts b/domain/identity/build.gradle.kts index e70108d10..8386f2423 100644 --- a/domain/identity/build.gradle.kts +++ b/domain/identity/build.gradle.kts @@ -1,43 +1,15 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.kover) - alias(libs.plugins.ksp) } -@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.identity" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.foundation) - implementation(compose.runtime) - - implementation(libs.koin.core) - api(libs.koin.annotations) - implementation(projects.core.preferences) implementation(projects.core.api) implementation(projects.core.utils) @@ -49,49 +21,5 @@ kotlin { implementation(projects.domain.lemmy.data) } } - val androidUnitTest by getting { - dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) - implementation(projects.core.testutils) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.domain.identity" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/domain/inbox/build.gradle.kts b/domain/inbox/build.gradle.kts index 3da1ba1e3..77d67e799 100644 --- a/domain/inbox/build.gradle.kts +++ b/domain/inbox/build.gradle.kts @@ -1,49 +1,18 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask 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) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.kover) - alias(libs.plugins.ksp) } -@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 - } - } - - compilerOptions { - freeCompilerArgs.add("-Xexpect-actual-classes") - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.foundation) - implementation(compose.runtime) - - implementation(libs.koin.core) - api(libs.koin.annotations) - implementation(projects.core.l10n) implementation(projects.core.resources) @@ -58,37 +27,6 @@ kotlin { 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) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.domain.inbox" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() } } @@ -105,17 +43,3 @@ kotlin { } } } - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") - } -} diff --git a/domain/inbox/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/domain/inbox/notification/CheckNotificationWorker.kt b/domain/inbox/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/domain/inbox/notification/CheckNotificationWorker.kt index e6232b485..7bfcf55c9 100644 --- a/domain/inbox/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/domain/inbox/notification/CheckNotificationWorker.kt +++ b/domain/inbox/src/androidMain/kotlin/com/livefast/eattrash/raccoonforlemmy/domain/inbox/notification/CheckNotificationWorker.kt @@ -7,13 +7,13 @@ import android.content.Context import android.content.Intent import androidx.work.CoroutineWorker import androidx.work.WorkerParameters +import com.livefaast.eattrash.raccoonforlemmy.domain.inbox.R import com.livefast.eattrash.raccoonforlemmy.core.l10n.L10nManager import com.livefast.eattrash.raccoonforlemmy.domain.inbox.coordinator.InboxCoordinator import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext import org.koin.java.KoinJavaComponent.inject import java.util.Collections.max -import com.livefast.eattrash.raccoonforlemmy.core.resources.R as resourcesR internal class CheckNotificationWorker( private val context: Context, @@ -40,7 +40,7 @@ internal class CheckNotificationWorker( .Builder(context, NotificationConstants.CHANNEL_ID) .setContentTitle(title) .setContentText(content) - .setSmallIcon(resourcesR.drawable.ic_monochrome) + .setSmallIcon(R.drawable.ic_monochrome) .setContentIntent(getPendingIntent()) .setNumber(count) .build() diff --git a/domain/inbox/src/androidMain/res/drawable/ic_monochrome.xml b/domain/inbox/src/androidMain/res/drawable/ic_monochrome.xml new file mode 100644 index 000000000..daffed29e --- /dev/null +++ b/domain/inbox/src/androidMain/res/drawable/ic_monochrome.xml @@ -0,0 +1,17 @@ + + + + + diff --git a/domain/lemmy/data/build.gradle.kts b/domain/lemmy/data/build.gradle.kts index ecbb7a542..e540ea3ee 100644 --- a/domain/lemmy/data/build.gradle.kts +++ b/domain/lemmy/data/build.gradle.kts @@ -1,60 +1,15 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.composeMultiplatform") } -@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.lemmy.data" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.materialIconsExtended) - implementation(projects.core.l10n) implementation(projects.core.utils) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.domain.lemmy.data" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() } } diff --git a/domain/lemmy/pagination/build.gradle.kts b/domain/lemmy/pagination/build.gradle.kts index d951b2a5f..d57c4c53f 100644 --- a/domain/lemmy/pagination/build.gradle.kts +++ b/domain/lemmy/pagination/build.gradle.kts @@ -1,46 +1,15 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.kover) - alias(libs.plugins.ksp) } -@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.lemmy.pagination" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) - implementation(projects.core.notifications) implementation(projects.core.utils) implementation(projects.core.persistence) @@ -50,49 +19,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val androidUnitTest by getting { - dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) - implementation(projects.core.testutils) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.domain.lemmy.pagination" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/domain/lemmy/repository/build.gradle.kts b/domain/lemmy/repository/build.gradle.kts index c6e89bcd6..ec68b4d1f 100644 --- a/domain/lemmy/repository/build.gradle.kts +++ b/domain/lemmy/repository/build.gradle.kts @@ -1,37 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.kover) - alias(libs.plugins.ksp) } -@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.lemmy.repository" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.ktorfit.lib) implementation(projects.core.api) @@ -40,50 +17,5 @@ kotlin { implementation(projects.domain.lemmy.data) } } - val androidUnitTest by getting { - dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) - implementation(libs.turbine) - implementation(projects.core.testutils) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.domain.lemmy.repository" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/feature/home/build.gradle.kts b/feature/home/build.gradle.kts index 01cc337e9..eb70df7ab 100644 --- a/feature/home/build.gradle.kts +++ b/feature/home/build.gradle.kts @@ -1,41 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "feature.home" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.material) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -45,7 +18,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -67,24 +40,5 @@ kotlin { implementation(projects.unit.zoomableimage) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.feature.home" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() } } diff --git a/feature/inbox/build.gradle.kts b/feature/inbox/build.gradle.kts index edc8e46b7..e098f319b 100644 --- a/feature/inbox/build.gradle.kts +++ b/feature/inbox/build.gradle.kts @@ -1,45 +1,15 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.kover) - alias(libs.plugins.ksp) } -@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 = "feature.inbox" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -49,7 +19,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -72,49 +42,8 @@ kotlin { } val androidUnitTest by getting { dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) - implementation(libs.turbine) - implementation(projects.core.testutils) implementation(projects.core.architecture.testutils) } } } } - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.feature.inbox" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") - } -} diff --git a/feature/profile/build.gradle.kts b/feature/profile/build.gradle.kts index 9ca7604f0..a900a24e9 100644 --- a/feature/profile/build.gradle.kts +++ b/feature/profile/build.gradle.kts @@ -1,45 +1,15 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.kover) - alias(libs.plugins.ksp) } -@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 = "feature.profile" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - implementation(compose.material) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -50,7 +20,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -81,49 +51,8 @@ kotlin { } val androidUnitTest by getting { dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) - implementation(libs.turbine) - implementation(projects.core.testutils) implementation(projects.core.architecture.testutils) } } } } - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.feature.profile" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") - } -} diff --git a/feature/search/build.gradle.kts b/feature/search/build.gradle.kts index a0043b007..29ad4c5bf 100644 --- a/feature/search/build.gradle.kts +++ b/feature/search/build.gradle.kts @@ -1,41 +1,12 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.composeMultiplatform") } -@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 = "feature.search" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - implementation(compose.material) - - implementation(libs.koin.core) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -45,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -66,24 +37,5 @@ kotlin { implementation(projects.unit.zoomableimage) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.feature.search" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() } } diff --git a/feature/settings/build.gradle.kts b/feature/settings/build.gradle.kts index 743522eaf..010cebc4f 100644 --- a/feature/settings/build.gradle.kts +++ b/feature/settings/build.gradle.kts @@ -1,43 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "feature.settings" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.lyricist) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) @@ -48,7 +19,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -75,46 +46,5 @@ kotlin { implementation(projects.unit.medialist) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.feature.settings" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/gradle.properties b/gradle.properties index 7e9039e6d..36b1f1834 100644 --- a/gradle.properties +++ b/gradle.properties @@ -12,5 +12,3 @@ kotlin.mpp.androidSourceSetLayoutVersion=2 org.jetbrains.compose.experimental.uikit.enabled=true #Native kotlin.native.ignoreDisabledTargets=true -#AGP -kotlin.mpp.androidGradlePluginCompatibility.nowarn=true \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bc067e9b2..a02d2030f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -12,6 +12,7 @@ coil = "3.0.4" colorpicker = "1.1.2" compose = "1.7.1" compose-multiplatform-media-player = "1.0.26" +gradle = "8.1.4" koin = "4.0.0" koin-annotations = "2.0.0-Beta2" kotlin = "2.1.0" @@ -57,9 +58,12 @@ coil-compose = { module = "io.coil-kt.coil3:coil-compose-core", version.ref = "c coil-gif = { module = "io.coil-kt.coil3:coil-gif", version.ref = "coil" } compose-multiplatform-media-player = { module = "network.chaintech:compose-multiplatform-media-player", version.ref = "compose-multiplatform-media-player" } - +compose-gradlePlugin = { module = "org.jetbrains.compose:org.jetbrains.compose.gradle.plugin", version.ref = "compose" } compose-colorpicker = { module = "com.github.skydoves:colorpicker-compose", version.ref = "colorpicker" } +gradle = { module = "com.android.tools.build:gradle", version.ref = "gradle" } +kotlin-gradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } + kotlincrypto-bom = { module = "org.kotlincrypto.hash:bom", version.ref = "kotlincrypto" } kotlincrypto-md5 = { module = "org.kotlincrypto.hash:md" } @@ -73,6 +77,8 @@ koin-android = { module = "io.insert-koin:koin-android", version.ref = "koin" } koin-annotations = { module = "io.insert-koin:koin-annotations", version.ref = "koin-annotations" } koin-ksp = { module = "io.insert-koin:koin-ksp-compiler", version.ref = "koin-annotations" } +ksp-gradlePlugin = { module = "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" } + ktor-serialization = { module = "io.ktor:ktor-client-serialization", version.ref = "ktor" } ktor-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" } ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } diff --git a/settings.gradle.kts b/settings.gradle.kts index 919311d63..1fe43708b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -5,6 +5,7 @@ pluginManagement { mavenCentral() maven("https://plugins.gradle.org/m2/") } + includeBuild("build-logic") } dependencyResolutionManagement { @@ -25,8 +26,8 @@ include(":core:appearance") include(":core:architecture") include(":core:architecture:testutils") include(":core:commonui:components") -include(":core:commonui:detailopener-api") -include(":core:commonui:detailopener-impl") +include(":core:commonui:detailopener:api") +include(":core:commonui:detailopener:impl") include(":core:commonui:lemmyui") include(":core:commonui:modals") include(":core:l10n") diff --git a/shared/build.gradle.kts b/shared/build.gradle.kts index ecd9a4084..4a93ad615 100644 --- a/shared/build.gradle.kts +++ b/shared/build.gradle.kts @@ -4,8 +4,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.composeMultiplatform") alias(libs.plugins.kotlinx.kover) alias(libs.plugins.ksp) } @@ -31,11 +30,6 @@ kotlin { sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) implementation(compose.components.resources) @@ -54,8 +48,8 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) - implementation(projects.core.commonui.detailopenerImpl) + implementation(projects.core.commonui.detailopener.api) + implementation(projects.core.commonui.detailopener.impl) implementation(projects.core.commonui.lemmyui) implementation(projects.core.l10n) implementation(projects.core.navigation) diff --git a/shared/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/App.kt b/shared/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/App.kt index ddf969aae..205cd1872 100644 --- a/shared/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/App.kt +++ b/shared/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/App.kt @@ -5,14 +5,11 @@ import androidx.compose.animation.core.FastOutSlowInEasing import androidx.compose.animation.core.tween import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.DrawerDefaults -import androidx.compose.material.ExperimentalMaterialApi -import androidx.compose.material.Surface +import androidx.compose.material3.DrawerDefaults import androidx.compose.material3.DrawerValue -import androidx.compose.material3.MaterialTheme import androidx.compose.material3.ModalDrawerSheet import androidx.compose.material3.ModalNavigationDrawer +import androidx.compose.material3.Surface import androidx.compose.material3.rememberDrawerState import androidx.compose.runtime.Composable import androidx.compose.runtime.CompositionLocalProvider @@ -34,7 +31,6 @@ import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.unit.Density import androidx.compose.ui.unit.toSize import cafe.adriel.voyager.navigator.Navigator -import cafe.adriel.voyager.navigator.bottomSheet.BottomSheetNavigator import cafe.adriel.voyager.navigator.tab.TabNavigator import cafe.adriel.voyager.transitions.SlideTransition import com.livefast.eattrash.raccoonforlemmy.core.appearance.data.UiBarTheme @@ -46,7 +42,6 @@ import com.livefast.eattrash.raccoonforlemmy.core.appearance.data.toUiTheme import com.livefast.eattrash.raccoonforlemmy.core.appearance.di.getAppColorRepository import com.livefast.eattrash.raccoonforlemmy.core.appearance.di.getThemeRepository import com.livefast.eattrash.raccoonforlemmy.core.appearance.theme.AppTheme -import com.livefast.eattrash.raccoonforlemmy.core.appearance.theme.CornerSize import com.livefast.eattrash.raccoonforlemmy.core.commonui.components.DraggableSideMenu import com.livefast.eattrash.raccoonforlemmy.core.commonui.detailopener.api.getDetailOpener import com.livefast.eattrash.raccoonforlemmy.core.commonui.lemmyui.ProvideCustomUriHandler @@ -80,7 +75,7 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.launch -@OptIn(ExperimentalMaterialApi::class, FlowPreview::class) +@OptIn(FlowPreview::class) @Composable fun App(onLoadingFinished: () -> Unit = {}) { val accountRepository = remember { getAccountRepository() } @@ -293,99 +288,88 @@ fun App(onLoadingFinished: () -> Unit = {}) { ), LocalLayoutDirection provides l10nState.languageTag.toLanguageDirection(), ) { - BottomSheetNavigator( - sheetShape = - RoundedCornerShape( - topStart = CornerSize.xl, - topEnd = CornerSize.xl, - ), - sheetBackgroundColor = MaterialTheme.colorScheme.background, - ) { bottomNavigator -> - navigationCoordinator.setBottomNavigator(bottomNavigator) - - Navigator( - screen = MainScreen, - onBackPressed = { - // if the drawer is open, closes it - if (drawerCoordinator.drawerOpened.value) { - scope.launch { - drawerCoordinator.toggleDrawer() - } - return@Navigator false + Navigator( + screen = MainScreen, + onBackPressed = { + // if the drawer is open, closes it + if (drawerCoordinator.drawerOpened.value) { + scope.launch { + drawerCoordinator.toggleDrawer() } - // if the side menu is open, closes it - if (navigationCoordinator.sideMenuOpened.value) { - navigationCoordinator.closeSideMenu() - return@Navigator false - } - - // otherwise use the screen-provided callback - val callback = navigationCoordinator.getCanGoBackCallback() - callback?.let { it() } ?: true - }, - ) { navigator -> - LaunchedEffect(Unit) { - navigationCoordinator.setRootNavigator(navigator) + return@Navigator false + } + // if the side menu is open, closes it + if (navigationCoordinator.sideMenuOpened.value) { + navigationCoordinator.closeSideMenu() + return@Navigator false } - ModalNavigationDrawer( + // otherwise use the screen-provided callback + val callback = navigationCoordinator.getCanGoBackCallback() + callback?.let { it() } ?: true + }, + ) { navigator -> + LaunchedEffect(Unit) { + navigationCoordinator.setRootNavigator(navigator) + } + + ModalNavigationDrawer( + modifier = + Modifier + .fillMaxSize() + .onGloballyPositioned { + screenWidth = it.size.toSize().width + }, + drawerState = drawerState, + gesturesEnabled = drawerGesturesEnabled, + drawerContent = { + ModalDrawerSheet { + TabNavigator(ModalDrawerContent) + } + }, + ) { + if (hasBeenInitialized) { + SlideTransition( + animationSpec = + tween( + durationMillis = 250, + easing = FastOutSlowInEasing, + ), + navigator = navigator, + ) + } + } + + // scrim for draggable side menu + AnimatedVisibility( + modifier = Modifier.fillMaxSize(), + visible = sideMenuOpened, + ) { + Surface( modifier = Modifier - .fillMaxSize() - .onGloballyPositioned { - screenWidth = it.size.toSize().width - }, - drawerState = drawerState, - gesturesEnabled = drawerGesturesEnabled, - drawerContent = { - ModalDrawerSheet { - TabNavigator(ModalDrawerContent) - } - }, + .onClick( + onClick = { + navigationCoordinator.closeSideMenu() + }, + ), + color = DrawerDefaults.scrimColor, ) { - if (hasBeenInitialized) { - SlideTransition( - animationSpec = - tween( - durationMillis = 250, - easing = FastOutSlowInEasing, - ), - navigator = navigator, - ) - } + Box(modifier = Modifier.fillMaxSize()) } - - // scrim for draggable side menu - AnimatedVisibility( - modifier = Modifier.fillMaxSize(), - visible = sideMenuOpened, - ) { - Surface( - modifier = - Modifier - .onClick( - onClick = { - navigationCoordinator.closeSideMenu() - }, - ), - color = DrawerDefaults.scrimColor, - ) { - Box(modifier = Modifier.fillMaxSize()) - } - } - - // draggable side menu - DraggableSideMenu( - availableWidth = screenWidth.toLocalDp(), - opened = sideMenuOpened, - onDismiss = { - navigationCoordinator.closeSideMenu() - }, - content = { - sideMenuContent?.invoke() - }, - ) } + + // draggable side menu + DraggableSideMenu( + availableWidth = screenWidth.toLocalDp(), + opened = sideMenuOpened, + onDismiss = { + navigationCoordinator.closeSideMenu() + }, + content = { + sideMenuContent?.invoke() + }, + ) } } } diff --git a/shared/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/navigation/TabNavigationItem.kt b/shared/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/navigation/TabNavigationItem.kt index df3069ef6..3e56a6fe4 100644 --- a/shared/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/navigation/TabNavigationItem.kt +++ b/shared/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/navigation/TabNavigationItem.kt @@ -7,10 +7,10 @@ import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material.BadgedBox import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Home import androidx.compose.material3.Badge +import androidx.compose.material3.BadgedBox import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.NavigationBarItem diff --git a/unit/about/build.gradle.kts b/unit/about/build.gradle.kts index 0fb674280..a60c2b2d9 100644 --- a/unit/about/build.gradle.kts +++ b/unit/about/build.gradle.kts @@ -1,43 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.about" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -45,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.l10n) implementation(projects.core.navigation) @@ -64,46 +35,5 @@ kotlin { implementation(projects.unit.web) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.about" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/accountsettings/build.gradle.kts b/unit/accountsettings/build.gradle.kts index fd551593c..1135138c0 100644 --- a/unit/accountsettings/build.gradle.kts +++ b/unit/accountsettings/build.gradle.kts @@ -1,43 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.accountsettings" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -58,46 +29,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.accountsettings" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/acknowledgements/build.gradle.kts b/unit/acknowledgements/build.gradle.kts index ca5794650..3c0b0883b 100644 --- a/unit/acknowledgements/build.gradle.kts +++ b/unit/acknowledgements/build.gradle.kts @@ -1,45 +1,15 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") alias(libs.plugins.kotlinx.serialization) - alias(libs.plugins.ksp) } -@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 = "unit.acknowledgements" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.kotlinx.serialization.json) implementation(libs.ktor.client.core) implementation(libs.voyager.navigator) @@ -58,46 +28,5 @@ kotlin { implementation(projects.unit.web) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.acknowledgements" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/ban/build.gradle.kts b/unit/ban/build.gradle.kts index d69fe531b..c1aff5912 100644 --- a/unit/ban/build.gradle.kts +++ b/unit/ban/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.ban" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.screenmodel) implementation(libs.voyager.navigator) implementation(libs.voyager.koin) @@ -58,46 +28,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.ban" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/chat/build.gradle.kts b/unit/chat/build.gradle.kts index 429536e03..e90d76523 100644 --- a/unit/chat/build.gradle.kts +++ b/unit/chat/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.chat" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -64,46 +34,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.chat" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/choosecolor/build.gradle.kts b/unit/choosecolor/build.gradle.kts index 140ea4165..f01fde2b8 100644 --- a/unit/choosecolor/build.gradle.kts +++ b/unit/choosecolor/build.gradle.kts @@ -1,40 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.choosecolor" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - implementation(libs.compose.colorpicker) implementation(libs.voyager.navigator) @@ -47,24 +21,5 @@ kotlin { implementation(projects.core.notifications) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.choosecolor" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() } } diff --git a/unit/communitydetail/build.gradle.kts b/unit/communitydetail/build.gradle.kts index 32b2773e3..59fab580d 100644 --- a/unit/communitydetail/build.gradle.kts +++ b/unit/communitydetail/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.communitydetail" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -75,46 +45,5 @@ kotlin { implementation(projects.unit.zoomableimage) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.communitydetail" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/communityinfo/build.gradle.kts b/unit/communityinfo/build.gradle.kts index 88257e2f8..17c173257 100644 --- a/unit/communityinfo/build.gradle.kts +++ b/unit/communityinfo/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.communityinfo" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.l10n) implementation(projects.core.navigation) @@ -61,46 +31,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.communityinfo" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/configurecontentview/build.gradle.kts b/unit/configurecontentview/build.gradle.kts index f8d381346..1135138c0 100644 --- a/unit/configurecontentview/build.gradle.kts +++ b/unit/configurecontentview/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.configurecontentview" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -59,46 +29,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.configurecontentview" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/configurenavbar/build.gradle.kts b/unit/configurenavbar/build.gradle.kts index 9f86a89ab..0b2e2bf5f 100644 --- a/unit/configurenavbar/build.gradle.kts +++ b/unit/configurenavbar/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.configurenavbar" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.reorderable) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) @@ -57,46 +27,5 @@ kotlin { implementation(projects.domain.identity) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.configurenavbar" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/configureswipeactions/build.gradle.kts b/unit/configureswipeactions/build.gradle.kts index ce3fbf726..b6ecde2af 100644 --- a/unit/configureswipeactions/build.gradle.kts +++ b/unit/configureswipeactions/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.configureswipeactions" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -58,46 +28,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.configureswipeactions" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/createcomment/build.gradle.kts b/unit/createcomment/build.gradle.kts index ee87d731c..22276fbdd 100644 --- a/unit/createcomment/build.gradle.kts +++ b/unit/createcomment/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.createcomment" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -64,46 +34,5 @@ kotlin { implementation(projects.unit.rawcontent) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.createcomment" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/createpost/build.gradle.kts b/unit/createpost/build.gradle.kts index a4f2edeb7..b79404a2b 100644 --- a/unit/createpost/build.gradle.kts +++ b/unit/createpost/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.createpost" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -64,46 +34,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.createpost" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/drafts/build.gradle.kts b/unit/drafts/build.gradle.kts index 3967c65fd..246dc2657 100644 --- a/unit/drafts/build.gradle.kts +++ b/unit/drafts/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.drafts" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.l10n) implementation(projects.core.navigation) @@ -58,46 +28,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.drafts" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/drawer/build.gradle.kts b/unit/drawer/build.gradle.kts index 875ff379a..ba393b747 100644 --- a/unit/drawer/build.gradle.kts +++ b/unit/drawer/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.drawer" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.tab) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) @@ -64,50 +34,5 @@ kotlin { implementation(projects.unit.manageaccounts) } } - val androidUnitTest by getting { - dependencies { - implementation(libs.kotlinx.coroutines.test) - implementation(kotlin("test-junit")) - implementation(libs.mockk) - implementation(libs.turbine) - implementation(projects.core.testutils) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.drawer" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/editcommunity/build.gradle.kts b/unit/editcommunity/build.gradle.kts index c447f9552..1135138c0 100644 --- a/unit/editcommunity/build.gradle.kts +++ b/unit/editcommunity/build.gradle.kts @@ -1,43 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.editcommunity" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -58,46 +29,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.editcommunity" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/explore/build.gradle.kts b/unit/explore/build.gradle.kts index 76dffc230..3b7f299c3 100644 --- a/unit/explore/build.gradle.kts +++ b/unit/explore/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.explore" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - implementation(compose.material) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -48,7 +18,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -69,46 +39,5 @@ kotlin { implementation(projects.unit.zoomableimage) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.explore" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/filteredcontents/build.gradle.kts b/unit/filteredcontents/build.gradle.kts index 0a37b7942..a043fd5a9 100644 --- a/unit/filteredcontents/build.gradle.kts +++ b/unit/filteredcontents/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.filteredcontents" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -67,46 +37,5 @@ kotlin { implementation(projects.unit.zoomableimage) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.filteredcontents" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/instanceinfo/build.gradle.kts b/unit/instanceinfo/build.gradle.kts index 3b6286ead..8b7e50fd7 100644 --- a/unit/instanceinfo/build.gradle.kts +++ b/unit/instanceinfo/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.instanceinfo" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -64,46 +34,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.instanceinfo" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/licences/build.gradle.kts b/unit/licences/build.gradle.kts index fa99ab8f2..14a841cf4 100644 --- a/unit/licences/build.gradle.kts +++ b/unit/licences/build.gradle.kts @@ -1,43 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.licences" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -54,46 +25,5 @@ kotlin { implementation(projects.unit.web) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.licences" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/login/build.gradle.kts b/unit/login/build.gradle.kts index 170a5217a..453d70e85 100644 --- a/unit/login/build.gradle.kts +++ b/unit/login/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.login" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - implementation(compose.material) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.bottomsheet) implementation(libs.voyager.screenmodel) @@ -62,46 +32,5 @@ kotlin { implementation(projects.unit.web) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.login" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/manageaccounts/build.gradle.kts b/unit/manageaccounts/build.gradle.kts index 9b735ab2c..bb76d3518 100644 --- a/unit/manageaccounts/build.gradle.kts +++ b/unit/manageaccounts/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.manageaccounts" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - implementation(compose.material) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.bottomsheet) implementation(libs.voyager.screenmodel) @@ -63,46 +33,5 @@ kotlin { implementation(projects.unit.web) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.manageaccounts" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/manageban/build.gradle.kts b/unit/manageban/build.gradle.kts index 1782eac37..1135138c0 100644 --- a/unit/manageban/build.gradle.kts +++ b/unit/manageban/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.manageban" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -59,46 +29,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.manageban" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/managesubscriptions/build.gradle.kts b/unit/managesubscriptions/build.gradle.kts index 6a143d2c1..4755d9740 100644 --- a/unit/managesubscriptions/build.gradle.kts +++ b/unit/managesubscriptions/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.managesubscriptions" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -63,46 +33,5 @@ kotlin { implementation(projects.unit.multicommunity) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.managesubscriptions" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/medialist/build.gradle.kts b/unit/medialist/build.gradle.kts index b8249c43f..8008eca86 100644 --- a/unit/medialist/build.gradle.kts +++ b/unit/medialist/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.medialist" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -60,46 +30,5 @@ kotlin { implementation(projects.unit.zoomableimage) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.medialist" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/mentions/build.gradle.kts b/unit/mentions/build.gradle.kts index c70db5c7d..265904676 100644 --- a/unit/mentions/build.gradle.kts +++ b/unit/mentions/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.mentions" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.tab) implementation(libs.voyager.screenmodel) @@ -47,7 +17,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.l10n) implementation(projects.core.navigation) @@ -63,46 +33,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.mentions" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/messages/build.gradle.kts b/unit/messages/build.gradle.kts index 98762f1e6..018721b75 100644 --- a/unit/messages/build.gradle.kts +++ b/unit/messages/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.messages" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.tab) implementation(libs.voyager.screenmodel) @@ -47,7 +17,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.l10n) implementation(projects.core.navigation) @@ -64,46 +34,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.messages" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/moderatewithreason/build.gradle.kts b/unit/moderatewithreason/build.gradle.kts index bb02987bd..2cc735a85 100644 --- a/unit/moderatewithreason/build.gradle.kts +++ b/unit/moderatewithreason/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.moderatewithreason" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.l10n) implementation(projects.core.navigation) @@ -61,46 +31,5 @@ kotlin { implementation(projects.unit.web) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.moderatewithreason" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/modlog/build.gradle.kts b/unit/modlog/build.gradle.kts index 5e9f2ebab..4c2854b61 100644 --- a/unit/modlog/build.gradle.kts +++ b/unit/modlog/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.modlog" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.l10n) implementation(projects.core.navigation) @@ -59,46 +29,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.modlog" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/modlog/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/unit/modlog/ModlogScreen.kt b/unit/modlog/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/unit/modlog/ModlogScreen.kt index 576dfe409..b1c4b3622 100644 --- a/unit/modlog/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/unit/modlog/ModlogScreen.kt +++ b/unit/modlog/src/commonMain/kotlin/com/livefast/eattrash/raccoonforlemmy/unit/modlog/ModlogScreen.kt @@ -11,12 +11,12 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items import androidx.compose.foundation.lazy.rememberLazyListState -import androidx.compose.material.IconButton import androidx.compose.material.icons.Icons import androidx.compose.material.icons.automirrored.filled.ArrowBack import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon +import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text diff --git a/unit/multicommunity/build.gradle.kts b/unit/multicommunity/build.gradle.kts index 2c1032b3c..64c18a3b3 100644 --- a/unit/multicommunity/build.gradle.kts +++ b/unit/multicommunity/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.multicommunity" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -71,46 +41,5 @@ kotlin { implementation(projects.unit.zoomableimage) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.multicommunity" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/myaccount/build.gradle.kts b/unit/myaccount/build.gradle.kts index 3cd30bb25..221c27a98 100644 --- a/unit/myaccount/build.gradle.kts +++ b/unit/myaccount/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.myaccount" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.tab) implementation(libs.voyager.screenmodel) @@ -47,7 +17,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -71,46 +41,5 @@ kotlin { implementation(projects.unit.zoomableimage) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.myaccount" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/postdetail/build.gradle.kts b/unit/postdetail/build.gradle.kts index 71d1d97eb..2833a8247 100644 --- a/unit/postdetail/build.gradle.kts +++ b/unit/postdetail/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.postdetail" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -69,46 +39,5 @@ kotlin { implementation(projects.unit.zoomableimage) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.postdetail" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/postlist/build.gradle.kts b/unit/postlist/build.gradle.kts index 32330946f..ff6a5fa5c 100644 --- a/unit/postlist/build.gradle.kts +++ b/unit/postlist/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.postlist" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -73,46 +43,5 @@ kotlin { implementation(projects.unit.zoomableimage) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.postlist" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/rawcontent/build.gradle.kts b/unit/rawcontent/build.gradle.kts index a659a9e7f..6db0a4e69 100644 --- a/unit/rawcontent/build.gradle.kts +++ b/unit/rawcontent/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.rawcontent" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - implementation(compose.material) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.bottomsheet) @@ -47,46 +17,5 @@ kotlin { implementation(projects.core.utils) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.rawcontent" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/replies/build.gradle.kts b/unit/replies/build.gradle.kts index 87ccaad31..265904676 100644 --- a/unit/replies/build.gradle.kts +++ b/unit/replies/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.replies" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.tab) implementation(libs.voyager.screenmodel) @@ -47,7 +17,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.l10n) implementation(projects.core.navigation) @@ -63,46 +33,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.replies" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/reportlist/build.gradle.kts b/unit/reportlist/build.gradle.kts index cb3b54918..22276fbdd 100644 --- a/unit/reportlist/build.gradle.kts +++ b/unit/reportlist/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.reportlist" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -64,46 +34,5 @@ kotlin { implementation(projects.unit.rawcontent) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.reportlist" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/selectcommunity/build.gradle.kts b/unit/selectcommunity/build.gradle.kts index 164085318..ae3e004ae 100644 --- a/unit/selectcommunity/build.gradle.kts +++ b/unit/selectcommunity/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.selectcommunity" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -59,46 +29,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.selectcommunity" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/selectinstance/build.gradle.kts b/unit/selectinstance/build.gradle.kts index bbc171bdf..f1f164bb5 100644 --- a/unit/selectinstance/build.gradle.kts +++ b/unit/selectinstance/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.selectinstance" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.reorderable) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) @@ -59,46 +29,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.selectinstance" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/userdetail/build.gradle.kts b/unit/userdetail/build.gradle.kts index 6d38568b3..509561e86 100644 --- a/unit/userdetail/build.gradle.kts +++ b/unit/userdetail/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.userdetail" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.commonui.modals) implementation(projects.core.l10n) @@ -72,46 +42,5 @@ kotlin { implementation(projects.unit.zoomableimage) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.userdetail" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/userinfo/build.gradle.kts b/unit/userinfo/build.gradle.kts index 54f7fbc1c..d20a66765 100644 --- a/unit/userinfo/build.gradle.kts +++ b/unit/userinfo/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.userinfo" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -46,7 +16,7 @@ kotlin { implementation(projects.core.appearance) implementation(projects.core.architecture) implementation(projects.core.commonui.components) - implementation(projects.core.commonui.detailopenerApi) + implementation(projects.core.commonui.detailopener.api) implementation(projects.core.commonui.lemmyui) implementation(projects.core.l10n) implementation(projects.core.navigation) @@ -61,46 +31,5 @@ kotlin { implementation(projects.domain.lemmy.repository) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.userinfo" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } } diff --git a/unit/web/build.gradle.kts b/unit/web/build.gradle.kts index 49d3cbc11..bb5f948dd 100644 --- a/unit/web/build.gradle.kts +++ b/unit/web/build.gradle.kts @@ -1,40 +1,13 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.web" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - implementation(libs.calf) implementation(libs.koin.core) implementation(libs.voyager.navigator) @@ -48,24 +21,5 @@ kotlin { implementation(projects.core.navigation) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.web" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() } } diff --git a/unit/zoomableimage/build.gradle.kts b/unit/zoomableimage/build.gradle.kts index 95249aa0a..6e872d178 100644 --- a/unit/zoomableimage/build.gradle.kts +++ b/unit/zoomableimage/build.gradle.kts @@ -1,44 +1,14 @@ -import org.jetbrains.kotlin.gradle.dsl.JvmTarget -import org.jetbrains.kotlin.gradle.tasks.KotlinCompilationTask - plugins { - alias(libs.plugins.kotlin.multiplatform) - alias(libs.plugins.android.library) - alias(libs.plugins.jetbrains.compose) - alias(libs.plugins.compose.compiler) - alias(libs.plugins.ksp) + id("com.livefast.eattrash.kotlinMultiplatform") + id("com.livefast.eattrash.koinWithKsp") + id("com.livefast.eattrash.composeMultiplatform") + id("com.livefast.eattrash.androidTest") } -@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 = "unit.zoomableimage" - isStatic = true - } - } - sourceSets { val commonMain by getting { dependencies { - implementation(compose.runtime) - implementation(compose.foundation) - implementation(compose.material) - implementation(compose.material3) - implementation(compose.materialIconsExtended) - - implementation(libs.koin.core) - api(libs.koin.annotations) implementation(libs.voyager.navigator) implementation(libs.voyager.screenmodel) implementation(libs.voyager.koin) @@ -55,46 +25,5 @@ kotlin { implementation(projects.core.utils) } } - val commonTest by getting { - dependencies { - implementation(kotlin("test")) - } - } - } -} - -dependencies { - add("kspCommonMainMetadata", libs.koin.ksp) - add("kspAndroid", libs.koin.ksp) - add("kspIosX64", libs.koin.ksp) - add("kspIosArm64", libs.koin.ksp) - add("kspIosSimulatorArm64", libs.koin.ksp) -} - -android { - namespace = "com.livefast.eattrash.raccoonforlemmy.unit.zoomableimage" - compileSdk = - libs.versions.android.compileSdk - .get() - .toInt() - defaultConfig { - minSdk = - libs.versions.android.minSdk - .get() - .toInt() - } -} - -ksp { - arg("KOIN_DEFAULT_MODULE", "false") -} - -kotlin.sourceSets.commonMain { - kotlin.srcDir("build/generated/ksp/metadata/commonMain/kotlin") -} - -tasks.withType(KotlinCompilationTask::class.java).configureEach { - if (name != "kspCommonMainKotlinMetadata") { - dependsOn("kspCommonMainKotlinMetadata") } }