From ea1b538f269638d3d765264ec58ce449b82af255 Mon Sep 17 00:00:00 2001 From: Lachlan McKee Date: Fri, 1 Sep 2023 10:36:48 +0100 Subject: [PATCH] Added missing js(IR) module names --- .../puzzle15/web/build.gradle.kts | 1 + demos/appyx-interactions/web/build.gradle.kts | 1 + demos/appyx-navigation/web/build.gradle.kts | 1 + .../backstack/fader/web/build.gradle.kts | 1 + .../backstack/parallax/web/build.gradle.kts | 1 + .../backstack/slider/web/build.gradle.kts | 1 + .../backstack/stack3d/web/build.gradle.kts | 1 + .../datingcards/web/build.gradle.kts | 1 + .../puzzle15/web/build.gradle.kts | 1 + .../spotlight/fader/web/build.gradle.kts | 1 + .../spotlight/slider/web/build.gradle.kts | 1 + .../sliderrotation/web/build.gradle.kts | 1 + .../sliderscale/web/build.gradle.kts | 1 + .../spotlight/stack3d/web/build.gradle.kts | 1 + .../dragprediction/web/build.gradle.kts | 1 + .../incompletedrag/web/build.gradle.kts | 1 + .../observemp/web/build.gradle.kts | 1 + .../interactions/sample1/web/build.gradle.kts | 1 + .../interactions/sample2/web/build.gradle.kts | 1 + .../interactions/sample3/web/build.gradle.kts | 1 + .../MultiplatformConventionPlugin.kt | 23 ++++++++++++++++++- 21 files changed, 42 insertions(+), 1 deletion(-) diff --git a/appyx-components/experimental/puzzle15/web/build.gradle.kts b/appyx-components/experimental/puzzle15/web/build.gradle.kts index ab2e15341..332d30812 100644 --- a/appyx-components/experimental/puzzle15/web/build.gradle.kts +++ b/appyx-components/experimental/puzzle15/web/build.gradle.kts @@ -5,6 +5,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-components-experimental-puzzle15-web" browser() binaries.executable() } diff --git a/demos/appyx-interactions/web/build.gradle.kts b/demos/appyx-interactions/web/build.gradle.kts index 8bbd3eeda..ba3d15648 100644 --- a/demos/appyx-interactions/web/build.gradle.kts +++ b/demos/appyx-interactions/web/build.gradle.kts @@ -5,6 +5,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-demos-interactions-web" browser() binaries.executable() } diff --git a/demos/appyx-navigation/web/build.gradle.kts b/demos/appyx-navigation/web/build.gradle.kts index 5d04482c7..3b6dc6b3b 100644 --- a/demos/appyx-navigation/web/build.gradle.kts +++ b/demos/appyx-navigation/web/build.gradle.kts @@ -5,6 +5,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-demos-navigation-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-components/backstack/fader/web/build.gradle.kts b/demos/mkdocs/appyx-components/backstack/fader/web/build.gradle.kts index 50017604a..6d423b293 100644 --- a/demos/mkdocs/appyx-components/backstack/fader/web/build.gradle.kts +++ b/demos/mkdocs/appyx-components/backstack/fader/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-demos-backstack-fader-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-components/backstack/parallax/web/build.gradle.kts b/demos/mkdocs/appyx-components/backstack/parallax/web/build.gradle.kts index 50017604a..51621e8eb 100644 --- a/demos/mkdocs/appyx-components/backstack/parallax/web/build.gradle.kts +++ b/demos/mkdocs/appyx-components/backstack/parallax/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-demos-backstack-parallax-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-components/backstack/slider/web/build.gradle.kts b/demos/mkdocs/appyx-components/backstack/slider/web/build.gradle.kts index 50017604a..66503a951 100644 --- a/demos/mkdocs/appyx-components/backstack/slider/web/build.gradle.kts +++ b/demos/mkdocs/appyx-components/backstack/slider/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-demos-backstack-slider-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-components/backstack/stack3d/web/build.gradle.kts b/demos/mkdocs/appyx-components/backstack/stack3d/web/build.gradle.kts index 50017604a..9491471f3 100644 --- a/demos/mkdocs/appyx-components/backstack/stack3d/web/build.gradle.kts +++ b/demos/mkdocs/appyx-components/backstack/stack3d/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-demos-backstack-stack3d-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-components/experimental/datingcards/web/build.gradle.kts b/demos/mkdocs/appyx-components/experimental/datingcards/web/build.gradle.kts index bfcbd1525..e9bd926d1 100644 --- a/demos/mkdocs/appyx-components/experimental/datingcards/web/build.gradle.kts +++ b/demos/mkdocs/appyx-components/experimental/datingcards/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-demos-experimental-datingcards-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-components/experimental/puzzle15/web/build.gradle.kts b/demos/mkdocs/appyx-components/experimental/puzzle15/web/build.gradle.kts index 6557bca41..f385b4fce 100644 --- a/demos/mkdocs/appyx-components/experimental/puzzle15/web/build.gradle.kts +++ b/demos/mkdocs/appyx-components/experimental/puzzle15/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-demos-experimental-puzzle15-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-components/spotlight/fader/web/build.gradle.kts b/demos/mkdocs/appyx-components/spotlight/fader/web/build.gradle.kts index bd4c8de1d..e85c4f448 100644 --- a/demos/mkdocs/appyx-components/spotlight/fader/web/build.gradle.kts +++ b/demos/mkdocs/appyx-components/spotlight/fader/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-components-spotlight-fader-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-components/spotlight/slider/web/build.gradle.kts b/demos/mkdocs/appyx-components/spotlight/slider/web/build.gradle.kts index bd4c8de1d..4f27ae49d 100644 --- a/demos/mkdocs/appyx-components/spotlight/slider/web/build.gradle.kts +++ b/demos/mkdocs/appyx-components/spotlight/slider/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-components-spotlight-slider-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-components/spotlight/sliderrotation/web/build.gradle.kts b/demos/mkdocs/appyx-components/spotlight/sliderrotation/web/build.gradle.kts index bd4c8de1d..8c5a007e5 100644 --- a/demos/mkdocs/appyx-components/spotlight/sliderrotation/web/build.gradle.kts +++ b/demos/mkdocs/appyx-components/spotlight/sliderrotation/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-components-spotlight-slider-rotation-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-components/spotlight/sliderscale/web/build.gradle.kts b/demos/mkdocs/appyx-components/spotlight/sliderscale/web/build.gradle.kts index bd4c8de1d..78cb50a34 100644 --- a/demos/mkdocs/appyx-components/spotlight/sliderscale/web/build.gradle.kts +++ b/demos/mkdocs/appyx-components/spotlight/sliderscale/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-components-spotlight-slider-scale-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-components/spotlight/stack3d/web/build.gradle.kts b/demos/mkdocs/appyx-components/spotlight/stack3d/web/build.gradle.kts index bd4c8de1d..74862d2dc 100644 --- a/demos/mkdocs/appyx-components/spotlight/stack3d/web/build.gradle.kts +++ b/demos/mkdocs/appyx-components/spotlight/stack3d/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-components-spotlight-stack3d-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-interactions/gestures/dragprediction/web/build.gradle.kts b/demos/mkdocs/appyx-interactions/gestures/dragprediction/web/build.gradle.kts index 29083aa1c..52d4dafae 100644 --- a/demos/mkdocs/appyx-interactions/gestures/dragprediction/web/build.gradle.kts +++ b/demos/mkdocs/appyx-interactions/gestures/dragprediction/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-interactions-gestures-dragpredication-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-interactions/gestures/incompletedrag/web/build.gradle.kts b/demos/mkdocs/appyx-interactions/gestures/incompletedrag/web/build.gradle.kts index b0f68c986..1c076867d 100644 --- a/demos/mkdocs/appyx-interactions/gestures/incompletedrag/web/build.gradle.kts +++ b/demos/mkdocs/appyx-interactions/gestures/incompletedrag/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-interactions-gestures-incompletedrag-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-interactions/interactions/observemp/web/build.gradle.kts b/demos/mkdocs/appyx-interactions/interactions/observemp/web/build.gradle.kts index 0066044e1..9efd24af5 100644 --- a/demos/mkdocs/appyx-interactions/interactions/observemp/web/build.gradle.kts +++ b/demos/mkdocs/appyx-interactions/interactions/observemp/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-interactions-observemp-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-interactions/interactions/sample1/web/build.gradle.kts b/demos/mkdocs/appyx-interactions/interactions/sample1/web/build.gradle.kts index 093a7853c..ac43853b6 100644 --- a/demos/mkdocs/appyx-interactions/interactions/sample1/web/build.gradle.kts +++ b/demos/mkdocs/appyx-interactions/interactions/sample1/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-interactions-sample1-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-interactions/interactions/sample2/web/build.gradle.kts b/demos/mkdocs/appyx-interactions/interactions/sample2/web/build.gradle.kts index 093a7853c..ccbb77f0a 100644 --- a/demos/mkdocs/appyx-interactions/interactions/sample2/web/build.gradle.kts +++ b/demos/mkdocs/appyx-interactions/interactions/sample2/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-interactions-sample2-web" browser() binaries.executable() } diff --git a/demos/mkdocs/appyx-interactions/interactions/sample3/web/build.gradle.kts b/demos/mkdocs/appyx-interactions/interactions/sample3/web/build.gradle.kts index 093a7853c..54b77faed 100644 --- a/demos/mkdocs/appyx-interactions/interactions/sample3/web/build.gradle.kts +++ b/demos/mkdocs/appyx-interactions/interactions/sample3/web/build.gradle.kts @@ -6,6 +6,7 @@ plugins { kotlin { js(IR) { + moduleName = "appyx-interactions-sample3-web" browser() binaries.executable() } diff --git a/plugins/convention/src/main/kotlin/com/bumble/appyx/multiplatform/MultiplatformConventionPlugin.kt b/plugins/convention/src/main/kotlin/com/bumble/appyx/multiplatform/MultiplatformConventionPlugin.kt index 13e183812..a4d65ad64 100644 --- a/plugins/convention/src/main/kotlin/com/bumble/appyx/multiplatform/MultiplatformConventionPlugin.kt +++ b/plugins/convention/src/main/kotlin/com/bumble/appyx/multiplatform/MultiplatformConventionPlugin.kt @@ -3,13 +3,15 @@ package com.bumble.appyx.multiplatform import com.android.build.api.variant.LibraryAndroidComponentsExtension import com.bumble.appyx.versionCatalog import io.gitlab.arturbosch.detekt.extensions.DetektExtension +import org.gradle.api.GradleException import org.gradle.api.JavaVersion import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.api.artifacts.VersionCatalogsExtension import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.get import org.gradle.kotlin.dsl.getByType +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import org.jetbrains.kotlin.gradle.targets.js.dsl.KotlinJsTargetDsl class MultiplatformConventionPlugin : Plugin { override fun apply(project: Project) { @@ -32,6 +34,14 @@ class MultiplatformConventionPlugin : Plugin { ) } + project.afterEvaluate { + project.plugins.withId("kotlin-multiplatform") { + project.extensions + .getByType() + .configure(project) + } + } + project.plugins.withId("com.android.library") { project.extensions .getByType() @@ -56,4 +66,15 @@ class MultiplatformConventionPlugin : Plugin { } } } + + private fun KotlinMultiplatformExtension.configure(project: Project) { + targets { + val jsTarget = findByName("js") as? KotlinJsTargetDsl + if (jsTarget != null) { + if (jsTarget.moduleName == null) { + throw GradleException("${project.path}: 'js' module name was not set") + } + } + } + } }