diff --git a/build.gradle b/build.gradle index 710b3de..fb766e6 100644 --- a/build.gradle +++ b/build.gradle @@ -23,7 +23,7 @@ plugins { alias(libs.plugins.nmcp.aggregation) } -apply plugin: "com.android.library" +apply plugin: "com.android.kotlin.multiplatform.library" apply from: "defaultAndroidSettings.gradle" apply from: "github_release.gradle" @@ -65,16 +65,10 @@ kotlin { browser() nodejs() } - androidTarget { - publishLibraryVariants( - "release", - "debug", - ) - compilations.all { - kotlinOptions { - jvmTarget = "17" - } - } + android { + project.ext.configureAndroidTarget(delegate) + withHostTest {} + withDeviceTest {} } linuxArm64() linuxArm32Hfp() diff --git a/defaultAndroidSettings.gradle b/defaultAndroidSettings.gradle index a26bfe9..cc0ab3f 100644 --- a/defaultAndroidSettings.gradle +++ b/defaultAndroidSettings.gradle @@ -1,63 +1,18 @@ apply plugin: 'com.getkeepsafe.dexcount' -android { - ext { - jvmKotlinFolderFile = { - String sep = File.separator - return new File("${project.projectDir}${sep}src${sep}jvmMain${sep}kotlin") - } - - enableIncludingJvmCodeInAndroidPart = { - File jvmKotlinFolder = jvmKotlinFolderFile() - if (jvmKotlinFolder.exists()) { - android.sourceSets.main.java.srcDirs += jvmKotlinFolder.path - } - } - - disableIncludingJvmCodeInAndroidPart = { - File jvmKotlinFolder = jvmKotlinFolderFile() - String[] oldDirs = android.sourceSets.main.java.srcDirs - android.sourceSets.main.java.srcDirs = [] - for (oldDir in oldDirs) { - if (oldDir != jvmKotlinFolder.path) { - android.sourceSets.main.java.srcDirs += oldDir - } - } +ext.configureAndroidTarget = { target -> + target.compileSdk = libs.versions.android.compileSdk.get().toInteger() + target.buildToolsVersion = libs.versions.android.buildTools.get() + target.minSdk = libs.versions.android.minSdk.get().toInteger() + target.namespace = "${group}.${project.name}" + target.packaging { + resources { + excludes.add 'META-INF/kotlinx-serialization-runtime.kotlin_module' + excludes.add 'META-INF/kotlinx-serialization-cbor.kotlin_module' + excludes.add 'META-INF/kotlinx-serialization-properties.kotlin_module' } } - - compileSdk libs.versions.android.compileSdk.get().toInteger() - buildToolsVersion = libs.versions.android.buildTools.get() - namespace "${group}.${project.name}" - - defaultConfig { - minSdkVersion libs.versions.android.minSdk.get().toInteger() - targetSdkVersion libs.versions.android.compileSdk.get().toInteger() - versionCode "${android_code_version}".toInteger() - versionName "$version" - } - buildTypes { - release { - minifyEnabled false - } - debug { - debuggable true - } - } - - packagingOptions { - exclude 'META-INF/kotlinx-serialization-runtime.kotlin_module' - exclude 'META-INF/kotlinx-serialization-cbor.kotlin_module' - exclude 'META-INF/kotlinx-serialization-properties.kotlin_module' - } - - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } - - sourceSets { - String sep = File.separator - main.java.srcDirs += "src${sep}main${sep}kotlin" - } + target.compilerOptions.jvmTarget.set( + target.compilerOptions.jvmTarget.get().class.fromTarget("17") + ) } diff --git a/gradle.properties b/gradle.properties index bc12872..4638a2a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,10 +1,8 @@ kotlin.code.style=official org.gradle.parallel=true -kotlin.js.generate.externals=true kotlin.incremental=true kotlin.incremental.js=true android.useAndroidX=true -android.enableJetifier=true org.gradle.jvmargs=-Xmx512m # Project data diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4b05a34..06ef4e8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] -kotlin = "2.3.21" -kotlin-gradle-plugin = "8.13.2" +kotlin = "2.4.10" +android-gradle-plugin = "9.1.1" nmcp = "1.6.1" versions = "0.61.0" @@ -14,8 +14,8 @@ test_ext_junit_version = "1.3.0" espresso_core = "3.7.0" android-minSdk = "21" -android-compileSdk = "36" -android-buildTools = "36.1.0" +android-compileSdk = "37" +android-buildTools = "37.0.0" github-release = "2.5.2" @@ -31,7 +31,7 @@ android-test-espresso-core = { module = "androidx.test.espresso:espresso-core", # buildscript classpaths -android-tools-build = { module = "com.android.tools.build:gradle", version.ref = "kotlin-gradle-plugin" } +android-tools-build = { module = "com.android.tools.build:gradle", version.ref = "android-gradle-plugin" } android-dexcount = { module = "com.getkeepsafe.dexcount:dexcount-gradle-plugin", version.ref = "dexcount" } kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" } kotlin-dokka-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "dokka" } @@ -42,6 +42,6 @@ github-release = { module = "com.github.breadmoirai:github-release", version.ref kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } kotlin-dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } -versions = { id = "com.github.ben-manes.versions", version.ref = "versions" } +versions = { id = "io.github.ben-manes.versions", version.ref = "versions" } nmcp-aggregation = { id = "com.gradleup.nmcp.aggregation", version.ref = "nmcp" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 5dc98db..2f2958b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists