From e55d9c835a5ea725ddda12abe9687e888f47bcc1 Mon Sep 17 00:00:00 2001 From: sergeych Date: Sat, 28 Mar 2026 23:28:28 +0300 Subject: [PATCH] another snapshot release, configs for matrix operations --- gradle.properties | 7 ++---- lyng/build.gradle.kts | 20 ++++++++-------- lyngio/build.gradle.kts | 29 +++++++++++++++++++++--- lynglib/build.gradle.kts | 49 ++++++++++++++++++++++++++++++---------- 4 files changed, 75 insertions(+), 30 deletions(-) diff --git a/gradle.properties b/gradle.properties index 3245133..c4d6800 100644 --- a/gradle.properties +++ b/gradle.properties @@ -27,9 +27,6 @@ kotlin.mpp.enableCInteropCommonization=true android.useAndroidX=true android.nonTransitiveRClass=true -# other -kotlin.native.cacheKind.linuxX64=none - # Workaround: Ensure Gradle uses a JDK with `jlink` available for AGP's JDK image transform. # On this environment, the system JDK 21 installation lacks `jlink`, causing # :lynglib:androidJdkImage to fail. Point Gradle to a JDK that includes `jlink`. @@ -37,6 +34,6 @@ kotlin.native.cacheKind.linuxX64=none #org.gradle.java.home=/home/sergeych/.jdks/corretto-21.0.9 android.experimental.lint.migrateToK2=false android.lint.useK2Uast=false -kotlin.mpp.applyDefaultHierarchyTemplate=true +kotlin.mpp.applyDefaultHierarchyTemplate=false -org.gradle.parallel=true \ No newline at end of file +org.gradle.parallel=true diff --git a/lyng/build.gradle.kts b/lyng/build.gradle.kts index 299a59a..6afc78d 100644 --- a/lyng/build.gradle.kts +++ b/lyng/build.gradle.kts @@ -1,5 +1,5 @@ /* - * Copyright 2025 Sergey S. Chernov real.sergeych@gmail.com + * Copyright 2026 Sergey S. Chernov real.sergeych@gmail.com * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -34,8 +34,10 @@ kotlin { // Suppress Beta warning for expect/actual classes across all targets in this module targets.configureEach { compilations.configureEach { - compilerOptions.configure { - freeCompilerArgs.add("-Xexpect-actual-classes") + compileTaskProvider.configure { + compilerOptions { + freeCompilerArgs.add("-Xexpect-actual-classes") + } } } } @@ -75,19 +77,17 @@ kotlin { implementation(libs.okio.fakefilesystem) } } + val nativeMain by creating { + dependsOn(commonMain) + } val jvmTest by getting { dependencies { implementation(kotlin("test")) implementation(kotlin("test-junit")) } } -// val nativeMain by getting { -// dependencies { -// implementation(kotlin("stdlib-common")) -// } -// } val linuxX64Main by getting { - + dependsOn(nativeMain) } } -} \ No newline at end of file +} diff --git a/lyngio/build.gradle.kts b/lyngio/build.gradle.kts index 3eb5401..a35b45a 100644 --- a/lyngio/build.gradle.kts +++ b/lyngio/build.gradle.kts @@ -44,7 +44,6 @@ kotlin { iosX64() iosArm64() iosSimulatorArm64() - macosX64() macosArm64() mingwX64() linuxX64() @@ -62,8 +61,10 @@ kotlin { // Keep expect/actual warning suppressed consistently with other modules targets.configureEach { compilations.configureEach { - compilerOptions.configure { - freeCompilerArgs.add("-Xexpect-actual-classes") + compileTaskProvider.configure { + compilerOptions { + freeCompilerArgs.add("-Xexpect-actual-classes") + } } } } @@ -81,11 +82,33 @@ kotlin { api(libs.mordant.core) } } + val nativeMain by creating { + dependsOn(commonMain) + } + val iosMain by creating { + dependsOn(nativeMain) + } + val linuxMain by creating { + dependsOn(nativeMain) + } + val macosMain by creating { + dependsOn(nativeMain) + } + val mingwMain by creating { + dependsOn(nativeMain) + } val commonTest by getting { dependencies { implementation(libs.kotlin.test) } } + val iosX64Main by getting { dependsOn(iosMain) } + val iosArm64Main by getting { dependsOn(iosMain) } + val iosSimulatorArm64Main by getting { dependsOn(iosMain) } + val macosArm64Main by getting { dependsOn(macosMain) } + val mingwX64Main by getting { dependsOn(mingwMain) } + val linuxX64Main by getting { dependsOn(linuxMain) } + val linuxArm64Main by getting { dependsOn(linuxMain) } // JS: use runtime detection in jsMain to select Node vs Browser implementation val jsMain by getting { diff --git a/lynglib/build.gradle.kts b/lynglib/build.gradle.kts index d0367d2..4d6d44d 100644 --- a/lynglib/build.gradle.kts +++ b/lynglib/build.gradle.kts @@ -58,7 +58,6 @@ kotlin { iosX64() iosArm64() iosSimulatorArm64() - macosX64() macosArm64() mingwX64() linuxX64() @@ -76,8 +75,10 @@ kotlin { // Suppress Beta warning for expect/actual classes across all targets targets.configureEach { compilations.configureEach { - compilerOptions.configure { - freeCompilerArgs.add("-Xexpect-actual-classes") + compileTaskProvider.configure { + compilerOptions { + freeCompilerArgs.add("-Xexpect-actual-classes") + } } } } @@ -94,7 +95,7 @@ kotlin { } val commonMain by getting { - kotlin.srcDir("$buildDir/generated/buildConfig/commonMain/kotlin") + kotlin.srcDir(layout.buildDirectory.dir("generated/buildConfig/commonMain/kotlin")) dependencies { implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.9.0") implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.6.1") @@ -116,6 +117,9 @@ kotlin { implementation(libs.multik.default) } } + val nativeMain by creating { + dependsOn(commonMain) + } val matrixPureMain by creating { dependsOn(commonMain) } @@ -123,14 +127,35 @@ kotlin { val androidMain by getting { dependsOn(matrixPureMain) } val jsMain by getting { dependsOn(matrixMultikMain) } val wasmJsMain by getting { dependsOn(matrixMultikMain) } - val iosX64Main by getting { dependsOn(matrixMultikMain) } - val iosArm64Main by getting { dependsOn(matrixMultikMain) } - val iosSimulatorArm64Main by getting { dependsOn(matrixMultikMain) } - val macosX64Main by getting { dependsOn(matrixMultikMain) } - val macosArm64Main by getting { dependsOn(matrixMultikMain) } - val mingwX64Main by getting { dependsOn(matrixMultikMain) } - val linuxX64Main by getting { dependsOn(matrixMultikMain) } - val linuxArm64Main by getting { dependsOn(matrixPureMain) } + // Multik 0.3.0 does not publish ios native artifacts, so keep iOS on the pure backend. + val iosX64Main by getting { + dependsOn(nativeMain) + dependsOn(matrixPureMain) + } + val iosArm64Main by getting { + dependsOn(nativeMain) + dependsOn(matrixPureMain) + } + val iosSimulatorArm64Main by getting { + dependsOn(nativeMain) + dependsOn(matrixPureMain) + } + val macosArm64Main by getting { + dependsOn(nativeMain) + dependsOn(matrixPureMain) + } + val mingwX64Main by getting { + dependsOn(nativeMain) + dependsOn(matrixPureMain) + } + val linuxX64Main by getting { + dependsOn(nativeMain) + dependsOn(matrixPureMain) + } + val linuxArm64Main by getting { + dependsOn(nativeMain) + dependsOn(matrixPureMain) + } val jvmTest by getting { dependencies { // Allow tests to load external docs like lyng.io.fs via registrar