Romão
07/22/2023, 3:00 PMJeff Lockhart
07/22/2023, 3:36 PMRomão
07/22/2023, 4:08 PMplugins {
kotlin("multiplatform")
id("com.android.library")
id("org.jetbrains.compose")
id("com.squareup.sqldelight")
id("dev.icerock.mobile.multiplatform-resources")
}
//@OptIn(org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi::class)
kotlin {
//targetHierarchy.default()
android {
compilations.all {
kotlinOptions {
jvmTarget = "17"
}
}
}
targets.withType(org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget::class.java).all {
binaries.withType(org.jetbrains.kotlin.gradle.plugin.mpp.Framework::class.java).all {
export("dev.icerock.moko:mvvm-core:0.16.1")
}
}
listOf(
iosX64(),
iosArm64(),
iosSimulatorArm64()
).forEach {
it.binaries.framework {
baseName = "shared"
isStatic = true
export("dev.icerock.moko:resources:0.23.0")
export("dev.icerock.moko:graphics:0.9.0")
}
}
sourceSets {
val commonMain by getting {
dependencies {
//put your multiplatform dependencies here
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation("org.jetbrains.kotlinx:atomicfu:0.21.0")
implementation(compose.materialIconsExtended)
@OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class)
implementation(compose.components.resources)
api("dev.icerock.moko:resources:0.23.0")
implementation("com.squareup.sqldelight:runtime:1.5.5")
implementation("com.squareup.sqldelight:coroutines-extensions:1.5.5")
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
}
}
/* val commonTest by getting {
dependencies {
implementation(kotlin("test"))
}
}*/
val androidMain by getting {
dependencies {
implementation("com.squareup.sqldelight:android-driver:1.5.5")
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("androidx.activity:activity-compose:1.7.2")
}
}
val iosX64Main by getting
val iosArm64Main by getting
val iosSimulatorArm64Main by getting
val iosMain by creating{
dependencies {
implementation("com.squareup.sqldelight:native-driver:1.5.5")
}
dependsOn(commonMain) //make commonMain a dependency of iosMain
iosX64Main.dependsOn(this)
iosArm64Main.dependsOn(this)
iosSimulatorArm64Main.dependsOn(this)
}
/* val iosX64Test by getting
val iosArm64Test by getting
val iosSimulatorArm64Test by getting
val iosTest by creating {
dependsOn(commonTest) //make commonTest a dependency of iosTest
iosX64Test.dependsOn(this)
iosArm64Test.dependsOn(this)
iosSimulatorArm64Test.dependsOn(this)
}*/
}
}
android {
namespace = "com.example.kmmphillippcontactsproject"
compileSdk = 33
defaultConfig {
minSdk = 28
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}
}
sqldelight {
database("ContactsDatabase") {
packageName = "com.example.kmmphillippcontactsproject"
sourceFolders = listOf("sqldelight")
}
}
dependencies {
implementation("androidx.core:core:1.10.1")
commonMainApi("dev.icerock.moko:mvvm-core:0.16.1")
commonMainApi("dev.icerock.moko:mvvm-compose:0.16.1")
commonMainApi("dev.icerock.moko:mvvm-flow:0.16.1")
commonMainApi("dev.icerock.moko:mvvm-flow-compose:0.16.1")
}
multiplatformResources {
multiplatformResourcesPackage = "com.example.kmmphillippcontactsproject"
multiplatformResourcesClassName = "SharedRes"
}
Jeff Lockhart
07/22/2023, 4:30 PMdependencies
block as well as the kotlin.sourceSets
. You should move implementation("androidx.core:core:1.10.1")
to androidMain.dependencies
. The dependencies.commonMainApi(...)
dependencies can go under commonMain.dependencies
as api(...)
.Jeff Lockhart
07/22/2023, 4:33 PMtargetHierarchy.default()
, which you have commented out to avoid the need to manually define iosMain by creating
(can just be iosMain by getting
) and you can remove the dependsOn
calls.Romão
07/22/2023, 4:55 PMRomão
07/22/2023, 4:56 PMRomão
07/22/2023, 4:58 PMJeff Lockhart
07/22/2023, 5:06 PMMorgane Soula
07/22/2023, 5:14 PMRomão
07/22/2023, 5:15 PMRomão
07/22/2023, 5:18 PMQamar A. Safadi
07/22/2023, 5:41 PMRomão
07/22/2023, 5:42 PMJeff Lockhart
07/22/2023, 5:43 PMdependsOn
calls now using the targetHierarchy.default()
, as this sets up the source set hierarchy for you.
You can also move the export(...)
from
targets.withType(org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget::class.java).all {
binaries.withType(org.jetbrains.kotlin.gradle.plugin.mpp.Framework::class.java).all {
export("dev.icerock.moko:mvvm-core:0.16.1")
}
}
into
it.binaries.framework {
...
}
as this is the only native target framework block.Qamar A. Safadi
07/22/2023, 5:43 PMJeff Lockhart
07/22/2023, 5:44 PMJeff Lockhart
07/22/2023, 5:45 PMJeff Lockhart
07/22/2023, 5:45 PMQamar A. Safadi
07/22/2023, 5:50 PMQamar A. Safadi
07/22/2023, 5:51 PMRomão
07/22/2023, 5:55 PMRomão
07/22/2023, 5:56 PMRomão
07/22/2023, 5:57 PMRomão
07/22/2023, 5:57 PMQamar A. Safadi
07/22/2023, 5:58 PMQamar A. Safadi
07/22/2023, 5:58 PMQamar A. Safadi
07/22/2023, 5:58 PMRomão
07/22/2023, 5:59 PMRomão
07/22/2023, 5:59 PMQamar A. Safadi
07/22/2023, 6:00 PMQamar A. Safadi
07/22/2023, 6:00 PMRomão
07/22/2023, 6:01 PMRomão
07/22/2023, 6:01 PMRomão
07/22/2023, 6:02 PMQamar A. Safadi
07/22/2023, 6:04 PMRomão
07/22/2023, 6:06 PMQamar A. Safadi
07/22/2023, 6:06 PMQamar A. Safadi
07/22/2023, 6:06 PMQamar A. Safadi
07/22/2023, 6:11 PMQamar A. Safadi
07/22/2023, 6:11 PMRomão
07/22/2023, 6:12 PMRomão
07/22/2023, 6:13 PMQamar A. Safadi
07/22/2023, 6:13 PMJeff Lockhart
07/22/2023, 6:13 PMQamar A. Safadi
07/22/2023, 6:14 PMJeff Lockhart
07/22/2023, 6:14 PMRomão
07/22/2023, 6:14 PMJeff Lockhart
07/22/2023, 6:15 PMRomão
07/22/2023, 6:15 PMJeff Lockhart
07/22/2023, 6:18 PMexport("dev.icerock.moko:mvvm-core:0.16.1")
to where the others are defined in the framework
block.Romão
07/22/2023, 6:18 PMRomão
07/22/2023, 6:18 PMRomão
07/22/2023, 6:19 PMRomão
07/22/2023, 6:20 PMRomão
07/22/2023, 6:22 PMJeff Lockhart
07/22/2023, 6:22 PMgradle-wrapper.properties
. The latest version is 8.2.1Romão
07/22/2023, 6:23 PMJeff Lockhart
07/22/2023, 6:23 PMRomão
07/22/2023, 6:26 PMJeff Lockhart
07/22/2023, 6:26 PMRomão
07/22/2023, 6:26 PMJeff Lockhart
07/22/2023, 6:27 PMgradle-wrapper.properties
change distributionUrl=https\:<//services.gradle.org/distributions/gradle-8.0-bin.zip>
to distributionUrl=https\:<//services.gradle.org/distributions/gradle-8.2.1-bin.zip>
Jeff Lockhart
07/22/2023, 6:30 PMRomão
07/22/2023, 6:33 PMJeff Lockhart
07/22/2023, 6:35 PMRomão
07/22/2023, 6:35 PMRomão
07/22/2023, 6:36 PMRomão
07/22/2023, 6:42 PMRomão
07/22/2023, 6:43 PMRomão
07/22/2023, 6:44 PMRomão
07/22/2023, 6:46 PMJeff Lockhart
07/22/2023, 6:46 PMRomão
07/22/2023, 6:48 PMRomão
07/22/2023, 6:54 PMJeff Lockhart
07/22/2023, 7:02 PMJacob Ras
07/23/2023, 8:23 PM