1- import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
1+ import com.vanniktech.maven.publish.SonatypeHost
22
33plugins {
44 alias(libs.plugins.kotlinMultiplatform)
55 alias(libs.plugins.androidLibrary)
6- id(" maven-publish" )
6+ alias(libs.plugins.maven.publish)
7+ `maven- publish`
8+ signing
79}
810
9- group = " pl.lemanski.mikrosoundfont "
10- version = libs.versions.midi .get().toString()
11+ group = " io.github.lemcoder.mikroSoundFont "
12+ version = libs.versions.lib .get().toString()
1113
1214android {
13- namespace = " pl.lemanski .mikroSoundFont"
15+ namespace = " io.github.lemcoder .mikroSoundFont"
1416 defaultConfig {
1517 compileSdk = libs.versions.android.compileSdk.get().toInt()
1618 minSdk = libs.versions.android.minSdk.get().toInt()
@@ -31,18 +33,29 @@ kotlin {
3133 publishLibraryVariants(" release" )
3234 }
3335
34- mingwX64()
35- linuxX64()
36+ listOf (
37+ mingwX64(),
38+ linuxX64(),
39+ iosArm64(),
40+ iosSimulatorArm64(),
41+ iosX64(),
42+ macosArm64(),
43+ macosX64()
44+ )
45+ iosArm64()
46+ iosSimulatorArm64()
47+ iosX64()
48+ macosArm64()
49+ macosX64()
3650
37- @OptIn(ExperimentalKotlinGradlePluginApi ::class )
3851 compilerOptions {
3952 freeCompilerArgs.add(" -Xexpect-actual-classes" )
4053 }
4154
4255 sourceSets {
4356
4457 commonMain.dependencies {
45- implementation(projects.soundFont )
58+ implementation(projects.soundfont )
4659 implementation(libs.kotlinx.io)
4760 }
4861
@@ -57,8 +70,63 @@ kotlin {
5770 }
5871}
5972
73+ // Publishing
74+
6075publishing {
6176 repositories {
6277 mavenLocal()
6378 }
79+ }
80+
81+ mavenPublishing {
82+ publishToMavenCentral(SonatypeHost .CENTRAL_PORTAL )
83+
84+ coordinates(
85+ groupId = group.toString(),
86+ artifactId = " midi" ,
87+ version = version.toString()
88+ )
89+
90+ println (SonatypeHost .DEFAULT .toString())
91+
92+ pom {
93+ name.set(" MikroSoundFont" )
94+ description.set(" Kotlin Multiplatform library for sample-based synthesis to play MIDI files." )
95+ inceptionYear.set(" 2024" )
96+ url.set(" https://github.com/lemcoder/MikroSoundFont" )
97+
98+ licenses {
99+ license {
100+ name.set(" Apache-2.0 license" )
101+ url.set(" https://www.apache.org/licenses/LICENSE-2.0" )
102+ }
103+ }
104+
105+ developers {
106+ developer {
107+ id.set(" lemcoder" )
108+ name.set(" Mikołaj Lemański" )
109+ email.set(" lemanski.dev@gmail.com" )
110+ }
111+ }
112+
113+ scm {
114+ url.set(" https://github.com/lemcoder/MikroSoundFont" )
115+ }
116+ }
117+ }
118+
119+ // Sign with default plugin
120+ signing {
121+ useInMemoryPgpKeys(
122+ System .getenv(" SIGNING_KEY" ),
123+ System .getenv(" SIGNING_KEY_PASSWORD" )
124+ )
125+ sign(publishing.publications)
126+
127+ // Temporary workaround, see https://github.com/gradle/gradle/issues/26091#issuecomment-1722947958
128+ tasks.withType<AbstractPublishToMaven >().configureEach {
129+ val signingTasks = tasks.withType<Sign >()
130+ mustRunAfter(signingTasks)
131+ }
64132}
0 commit comments