From 76e7da5fbbb1e3f9cd19cccab5feb54ee4e306da Mon Sep 17 00:00:00 2001 From: "Vinay B. Nagaraj" Date: Tue, 2 Aug 2022 01:03:45 +0400 Subject: [PATCH] Add KMP target for iosSimulatorArm64 --- .../buildsrc/KotlinMultiplatformExtensions.kt | 18 ++++++++++ .../main/java/kotlin-multiplatform.gradle.kts | 10 ++++++ workflow-core/build.gradle.kts | 36 +++++++------------ workflow-runtime/build.gradle.kts | 28 +++++---------- 4 files changed, 49 insertions(+), 43 deletions(-) create mode 100644 buildSrc/src/main/java/com/squareup/workflow1/buildsrc/KotlinMultiplatformExtensions.kt diff --git a/buildSrc/src/main/java/com/squareup/workflow1/buildsrc/KotlinMultiplatformExtensions.kt b/buildSrc/src/main/java/com/squareup/workflow1/buildsrc/KotlinMultiplatformExtensions.kt new file mode 100644 index 0000000000..e919faef58 --- /dev/null +++ b/buildSrc/src/main/java/com/squareup/workflow1/buildsrc/KotlinMultiplatformExtensions.kt @@ -0,0 +1,18 @@ +package com.squareup.workflow1.buildsrc + +import org.gradle.kotlin.dsl.getValue +import org.gradle.kotlin.dsl.getting +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension + +fun KotlinMultiplatformExtension.iosWithSimulatorArm64() { + ios() + iosSimulatorArm64() + + val iosMain by sourceSets.getting + val iosSimulatorArm64Main by sourceSets.getting + iosSimulatorArm64Main.dependsOn(iosMain) + + val iosTest by sourceSets.getting + val iosSimulatorArm64Test by sourceSets.getting + iosSimulatorArm64Test.dependsOn(iosTest) +} diff --git a/buildSrc/src/main/java/kotlin-multiplatform.gradle.kts b/buildSrc/src/main/java/kotlin-multiplatform.gradle.kts index 6744e7df5d..7e6b929385 100644 --- a/buildSrc/src/main/java/kotlin-multiplatform.gradle.kts +++ b/buildSrc/src/main/java/kotlin-multiplatform.gradle.kts @@ -9,4 +9,14 @@ extensions.getByType(JavaPluginExtension::class).apply { targetCompatibility = JavaVersion.VERSION_1_8 } +kotlin { + sourceSets { + all { + languageSettings.apply { + optIn("kotlin.RequiresOptIn") + } + } + } +} + project.kotlinCommonSettings(bomConfigurationName = "commonMainImplementation") diff --git a/workflow-core/build.gradle.kts b/workflow-core/build.gradle.kts index 5e6ed193c7..d21f3e71c0 100644 --- a/workflow-core/build.gradle.kts +++ b/workflow-core/build.gradle.kts @@ -1,32 +1,22 @@ +import com.squareup.workflow1.buildsrc.iosWithSimulatorArm64 + plugins { `kotlin-multiplatform` published } kotlin { + iosWithSimulatorArm64() jvm { withJava() } - ios() +} + +dependencies { + commonMainApi(libs.kotlin.jdk6) + commonMainApi(libs.kotlinx.coroutines.core) + // For Snapshot. + commonMainApi(libs.squareup.okio) - sourceSets { - all { - languageSettings.apply { - optIn("kotlin.RequiresOptIn") - } - } - val commonMain by getting { - dependencies { - api(libs.kotlin.jdk6) - api(libs.kotlinx.coroutines.core) - // For Snapshot. - api(libs.squareup.okio) - } - } - val commonTest by getting { - dependencies { - implementation(libs.kotlin.test.jdk) - implementation(libs.kotlinx.atomicfu) - implementation(libs.kotlinx.coroutines.test.common) - } - } - } + commonTestImplementation(libs.kotlinx.atomicfu) + commonTestImplementation(libs.kotlinx.coroutines.test.common) + commonTestImplementation(libs.kotlin.test.jdk) } diff --git a/workflow-runtime/build.gradle.kts b/workflow-runtime/build.gradle.kts index 7b5b06a8ac..3882274054 100644 --- a/workflow-runtime/build.gradle.kts +++ b/workflow-runtime/build.gradle.kts @@ -1,3 +1,4 @@ +import com.squareup.workflow1.buildsrc.iosWithSimulatorArm64 import kotlinx.benchmark.gradle.JvmBenchmarkTarget import org.jetbrains.kotlin.gradle.tasks.KotlinCompile @@ -8,6 +9,7 @@ plugins { } kotlin { + iosWithSimulatorArm64() jvm { compilations { val main by getting @@ -26,28 +28,14 @@ kotlin { } } } - ios() +} - sourceSets { - all { - languageSettings.apply { - optIn("kotlin.RequiresOptIn") - } - } - val commonMain by getting { - dependencies { - api(libs.kotlinx.coroutines.core) +dependencies { + commonMainApi(project(":workflow-core")) + commonMainApi(libs.kotlinx.coroutines.core) - api(project(":workflow-core")) - } - } - val commonTest by getting { - dependencies { - implementation(libs.kotlin.test.jdk) - implementation(libs.kotlinx.coroutines.test.common) - } - } - } + commonTestImplementation(libs.kotlinx.coroutines.test.common) + commonTestImplementation(libs.kotlin.test.jdk) } benchmark {