From e90c3d27c1b6c467fa0f2a4b7edc4796a3384d9b Mon Sep 17 00:00:00 2001 From: Matt Ramotar Date: Fri, 3 May 2024 08:27:06 -0400 Subject: [PATCH] Add foundation modules Signed-off-by: Matt Ramotar --- .../xplat/foundation/di/build.gradle.kts | 23 +++++++ .../networking/api/build.gradle.kts | 35 ++++++++++ .../networking/impl/build.gradle.kts | 64 +++++++++++++++++++ settings.gradle | 6 +- 4 files changed, 127 insertions(+), 1 deletion(-) create mode 100644 experimental/sample/scoop/xplat/foundation/di/build.gradle.kts create mode 100644 experimental/sample/scoop/xplat/foundation/networking/api/build.gradle.kts create mode 100644 experimental/sample/scoop/xplat/foundation/networking/impl/build.gradle.kts diff --git a/experimental/sample/scoop/xplat/foundation/di/build.gradle.kts b/experimental/sample/scoop/xplat/foundation/di/build.gradle.kts new file mode 100644 index 000000000..12f2937e5 --- /dev/null +++ b/experimental/sample/scoop/xplat/foundation/di/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + id("plugin.octonaut.android.library") + id("plugin.octonaut.kotlin.multiplatform") + alias(libs.plugins.serialization) + alias(libs.plugins.compose) +} + +kotlin { + sourceSets { + commonMain { + dependencies { + api(compose.runtime) + api(compose.components.resources) + api(libs.circuit.foundation) + implementation(libs.kotlinInject.runtime) + } + } + } +} + +android { + namespace = "monster.scoop.xplat.foundation.di" +} \ No newline at end of file diff --git a/experimental/sample/scoop/xplat/foundation/networking/api/build.gradle.kts b/experimental/sample/scoop/xplat/foundation/networking/api/build.gradle.kts new file mode 100644 index 000000000..053c01e1f --- /dev/null +++ b/experimental/sample/scoop/xplat/foundation/networking/api/build.gradle.kts @@ -0,0 +1,35 @@ +plugins { + id("plugin.octonaut.android.library") + id("plugin.octonaut.kotlin.multiplatform") + alias(libs.plugins.serialization) + alias(libs.plugins.compose) + id("com.apollographql.apollo3") version "3.8.2" +} + +kotlin { + sourceSets { + commonMain { + dependencies { + api(compose.runtime) + api(compose.components.resources) + api(libs.circuit.foundation) + api(libs.apollo.runtime) + api(libs.kotlinx.serialization.core) + api(project(":experimental:sample:scoop:xplat:foundation:di:api")) + api("io.github.pdvrieze.xmlutil:serialization:0.86.3") + + } + } + } +} + +android { + namespace = "monster.scoop.xplat.foundation.networking.api" +} + +apollo { + service("service") { + packageName.set("monster.scoop.xplat.foundation.networking.api") + schemaFiles.from(file("src/commonMain/graphql/schema.graphqls")) + } +} \ No newline at end of file diff --git a/experimental/sample/scoop/xplat/foundation/networking/impl/build.gradle.kts b/experimental/sample/scoop/xplat/foundation/networking/impl/build.gradle.kts new file mode 100644 index 000000000..786cfecd2 --- /dev/null +++ b/experimental/sample/scoop/xplat/foundation/networking/impl/build.gradle.kts @@ -0,0 +1,64 @@ +plugins { + id("plugin.octonaut.android.library") + id("plugin.octonaut.kotlin.multiplatform") + alias(libs.plugins.serialization) + alias(libs.plugins.compose) + alias(libs.plugins.ksp) + alias(libs.plugins.kotlin.plugin.parcelize) +} + +kotlin { + androidTarget { + plugins.apply(libs.plugins.paparazzi.get().pluginId) + } + + sourceSets { + + commonMain { + dependencies { + implementation(compose.material3) + implementation(libs.kotlinx.coroutines.core) + implementation(libs.kotlinInject.runtime) + implementation(libs.ktor.core) + implementation(libs.ktor.negotiation) + implementation(libs.ktor.serialization.json) + implementation(libs.kotlinx.serialization.core) + api(project(":experimental:sample:octonaut:xplat:foundation:networking:api")) + api(project(":experimental:sample:octonaut:xplat:foundation:di:api")) + implementation("io.github.pdvrieze.xmlutil:serialization:0.86.3") + } + } + + androidUnitTest { + dependencies { + implementation(kotlin("test")) + } + } + + androidMain { + dependencies { + implementation("io.ktor:ktor-client-okhttp-jvm:2.3.7") + } + } + nativeMain { + dependencies { + implementation("io.ktor:ktor-client-darwin:2.3.7") + } + } + jvmMain { + dependencies { + implementation("io.ktor:ktor-client-apache5:2.3.7") + } + } + } +} + +dependencies { + add("kspAndroid", libs.kotlinInject.compiler) + add("kspIosX64", libs.kotlinInject.compiler) + add("kspIosArm64", libs.kotlinInject.compiler) +} + +android { + namespace = "monster.scoop.xplat.foundation.networking.impl" +} \ No newline at end of file diff --git a/settings.gradle b/settings.gradle index 02c7eff25..08ce19a7f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -40,4 +40,8 @@ include ':experimental:sample:octonaut:xplat:feat:notificationsTab:impl' include ':experimental:sample:octonaut:xplat:feat:exploreTab:api' include ':experimental:sample:octonaut:xplat:feat:exploreTab:impl' include ':experimental:sample:octonaut:xplat:feat:profileTab:api' -include ':experimental:sample:octonaut:xplat:feat:profileTab:impl' \ No newline at end of file +include ':experimental:sample:octonaut:xplat:feat:profileTab:impl' + +include ':experimental:sample:scoop:xplat:foundation:di' +include ':experimental:sample:scoop:xplat:foundation:networking:api' +include ':experimental:sample:scoop:xplat:foundation:networking:impl' \ No newline at end of file