Skip to content

Commit 418a72b

Browse files
committed
new hosts and jvm plugins
1 parent 8bc1d5e commit 418a72b

File tree

4 files changed

+94
-1
lines changed

4 files changed

+94
-1
lines changed

build.gradle.kts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,11 @@ gradlePlugin {
7878
implementationClass = "dev.icerock.moko.gradle.NexusPublicationPlugin"
7979
}
8080

81+
create("publication-hosts") {
82+
id = "dev.icerock.moko.gradle.publication.hosts"
83+
implementationClass = "dev.icerock.moko.gradle.HostsPublicationPlugin"
84+
}
85+
8186
create("stubjavadoc") {
8287
id = "dev.icerock.moko.gradle.stub.javadoc"
8388
implementationClass = "dev.icerock.moko.gradle.StubJavaDocPlugin"
@@ -87,6 +92,11 @@ gradlePlugin {
8792
id = "dev.icerock.moko.gradle.tests"
8893
implementationClass = "dev.icerock.moko.gradle.TestsReportPlugin"
8994
}
95+
96+
create("jvm") {
97+
id = "dev.icerock.moko.gradle.jvm"
98+
implementationClass = "dev.icerock.moko.gradle.JvmPlugin"
99+
}
90100
}
91101
}
92102

gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[versions]
2-
mokoGradlePluginVersion = "0.1.1"
2+
mokoGradlePluginVersion = "0.2.0"
33

44
kotlinVersion = "1.6.10"
55
androidGradlePluginVerison = "7.0.4"
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
/*
2+
* Copyright 2022 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
5+
package dev.icerock.moko.gradle
6+
7+
import org.gradle.api.Plugin
8+
import org.gradle.api.Project
9+
import org.gradle.api.publish.PublishingExtension
10+
import org.gradle.api.publish.maven.tasks.AbstractPublishToMaven
11+
import org.gradle.kotlin.dsl.configure
12+
import org.gradle.kotlin.dsl.withType
13+
14+
class HostsPublicationPlugin : Plugin<Project> {
15+
16+
override fun apply(target: Project) {
17+
target.plugins.withId("org.gradle.maven-publish") {
18+
target.configure<PublishingExtension> {
19+
val publicationsFromMainHost = listOf(
20+
"wasm32",
21+
"jvm",
22+
"js",
23+
"kotlinMultiplatform",
24+
"androidRelease",
25+
"androidDebug",
26+
"linuxArm64",
27+
"linuxArm32Hfp",
28+
"linuxX64"
29+
)
30+
31+
target.tasks.withType<AbstractPublishToMaven>()
32+
.matching { it.publication?.name in publicationsFromMainHost }
33+
.configureEach { onlyIf { System.getProperty("IS_MAIN_HOST") == "true" } }
34+
}
35+
}
36+
}
37+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
* Copyright 2022 IceRock MAG Inc. Use of this source code is governed by the Apache 2.0 license.
3+
*/
4+
5+
package dev.icerock.moko.gradle
6+
7+
import org.gradle.api.JavaVersion
8+
import org.gradle.api.Plugin
9+
import org.gradle.api.Project
10+
import org.gradle.api.plugins.JavaPluginExtension
11+
import org.gradle.api.publish.PublishingExtension
12+
import org.gradle.api.publish.maven.MavenPublication
13+
import org.gradle.kotlin.dsl.configure
14+
import org.gradle.kotlin.dsl.get
15+
import org.gradle.kotlin.dsl.register
16+
import org.gradle.kotlin.dsl.withType
17+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
18+
19+
class JvmPlugin : Plugin<Project> {
20+
override fun apply(target: Project) {
21+
with(target.plugins) {
22+
apply("org.jetbrains.kotlin.jvm")
23+
}
24+
25+
target.configure<JavaPluginExtension> {
26+
sourceCompatibility = JavaVersion.VERSION_1_8
27+
targetCompatibility = JavaVersion.VERSION_1_8
28+
withJavadocJar()
29+
withSourcesJar()
30+
}
31+
32+
target.tasks
33+
.withType<KotlinCompile>()
34+
.configureEach {
35+
kotlinOptions.jvmTarget = "1.8"
36+
}
37+
38+
target.plugins.withId("org.gradle.maven-publish") {
39+
target.configure<PublishingExtension> {
40+
publications.register("mavenJava", MavenPublication::class) {
41+
from(target.components["java"])
42+
}
43+
}
44+
}
45+
}
46+
}

0 commit comments

Comments
 (0)