Skip to content

Commit c6dc167

Browse files
committed
WIP: build: Add module-info.java
1 parent 5cbe050 commit c6dc167

File tree

4 files changed

+47
-1
lines changed

4 files changed

+47
-1
lines changed

build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import io.gitlab.arturbosch.detekt.Detekt
44
import org.jetbrains.kotlin.gradle.targets.jvm.tasks.KotlinJvmTest
55

66
plugins {
7-
alias(libs.plugins.kotlin.multiplatform)
7+
kotlin("multiplatform")
88
alias(libs.plugins.detekt)
99
jacoco
1010
}

buildSrc/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,5 @@ dependencies {
1111
implementation("org.ajoberstar.reckon:reckon-gradle:0.13.1")
1212
implementation("org.jetbrains.dokka:dokka-gradle-plugin:1.6.0")
1313
implementation("io.github.gradle-nexus:publish-plugin:1.1.0")
14+
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.10")
1415
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package io.github.petertrr
2+
3+
import org.gradle.api.Project
4+
import org.gradle.api.tasks.compile.JavaCompile
5+
import org.gradle.jvm.tasks.Jar
6+
import org.gradle.jvm.toolchain.JavaLanguageVersion
7+
import org.gradle.jvm.toolchain.JavaToolchainService
8+
import org.gradle.kotlin.dsl.attributes
9+
import org.gradle.kotlin.dsl.create
10+
import org.gradle.kotlin.dsl.getByType
11+
import org.gradle.kotlin.dsl.named
12+
13+
fun Project.createModuleInfoCompilation() = tasks.create<JavaCompile>("compileJavaModuleInfo") {
14+
// val compileKotlinJvm = tasks.getByName<KotlinCompile>("compileKotlinJvm")
15+
val sourceDir = file("src/jvm9Main")
16+
// val targetDir = compileKotlinJvm.destinationDir.resolve("../java9/")
17+
18+
// Use a Java 11 compiler for the module info.
19+
javaCompiler.set(project.extensions.getByType<JavaToolchainService>().compilerFor {
20+
languageVersion.set(JavaLanguageVersion.of(11))
21+
})
22+
23+
// dependsOn(compileKotlinJvm)
24+
source(sourceDir)
25+
26+
27+
28+
29+
30+
// Configure the JAR task so that it will include the compiled module-info class file.
31+
tasks.named<Jar>("jvmJar") {
32+
dependsOn(this@create)
33+
manifest {
34+
attributes("Multi-Release" to true)
35+
}
36+
// from(targetDir) {
37+
// into("META-INF/versions/9/")
38+
// }
39+
}
40+
}

core/src/jvmMain/module-info.java

+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
module io.github.petertrr.kotlin-multiplatform-diff {
2+
requires transitive kotlin.stdlib;
3+
4+
exports io.github.petertrr.diffutils;
5+
}

0 commit comments

Comments
 (0)