From 02d0d32e4b73bbabfbd8879d7e34acb2b171e37d Mon Sep 17 00:00:00 2001 From: Matthew Nelson Date: Mon, 18 Mar 2024 10:50:31 -0400 Subject: [PATCH] Add support for JPMS via Multi-Release jar --- build-logic/src/main/kotlin/-KmpConfigurationExtension.kt | 7 +++++-- library/keccak/build.gradle.kts | 2 +- library/keccak/src/jvmMain/java9/module-info.java | 5 +++++ 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 library/keccak/src/jvmMain/java9/module-info.java diff --git a/build-logic/src/main/kotlin/-KmpConfigurationExtension.kt b/build-logic/src/main/kotlin/-KmpConfigurationExtension.kt index 5c63108..dd0ed50 100644 --- a/build-logic/src/main/kotlin/-KmpConfigurationExtension.kt +++ b/build-logic/src/main/kotlin/-KmpConfigurationExtension.kt @@ -13,23 +13,26 @@ * See the License for the specific language governing permissions and * limitations under the License. **/ +import io.matthewnelson.kmp.configuration.ExperimentalKmpConfigurationApi import io.matthewnelson.kmp.configuration.extension.KmpConfigurationExtension import io.matthewnelson.kmp.configuration.extension.container.target.KmpConfigurationContainerDsl import org.gradle.api.Action import org.gradle.api.JavaVersion fun KmpConfigurationExtension.configureShared( + java9ModuleName: String? = null, publish: Boolean = false, explicitApi: Boolean = true, action: Action ) { configure { jvm { - target { withJava() } - kotlinJvmTarget = JavaVersion.VERSION_1_8 compileSourceCompatibility = JavaVersion.VERSION_1_8 compileTargetCompatibility = JavaVersion.VERSION_1_8 + + @OptIn(ExperimentalKmpConfigurationApi::class) + java9MultiReleaseModuleInfo(java9ModuleName) } js() diff --git a/library/keccak/build.gradle.kts b/library/keccak/build.gradle.kts index b16aaea..8e0a5c4 100644 --- a/library/keccak/build.gradle.kts +++ b/library/keccak/build.gradle.kts @@ -18,7 +18,7 @@ plugins { } kmpConfiguration { - configureShared(publish = true) { + configureShared(java9ModuleName = "org.kotlincrypto.sponges.keccak", publish = true) { common { sourceSetTest { dependencies { diff --git a/library/keccak/src/jvmMain/java9/module-info.java b/library/keccak/src/jvmMain/java9/module-info.java new file mode 100644 index 0000000..ecd9622 --- /dev/null +++ b/library/keccak/src/jvmMain/java9/module-info.java @@ -0,0 +1,5 @@ +module org.kotlincrypto.sponges.keccak { + requires kotlin.stdlib; + + exports org.kotlincrypto.sponges.keccak; +}