Skip to content

Commit c4a0bf6

Browse files
committed
Add simple gradle plugin
1 parent 4b1ee10 commit c4a0bf6

File tree

18 files changed

+106
-38
lines changed

18 files changed

+106
-38
lines changed

buildSrc/build.gradle.kts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
plugins {
2+
`kotlin-dsl`
3+
}
4+
5+
repositories {
6+
mavenCentral() // Add the Maven Central repository
7+
}
8+
9+
gradlePlugin {
10+
plugins {
11+
create("simplePlugin") {
12+
id = "pl.lemanski.kotlin.compile"
13+
implementationClass = "pl.lemanski.kotlin.compile.GreetingPlugin"
14+
version = "1.0.0"
15+
}
16+
}
17+
}

core/build.gradle.kts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
2+
import pl.lemanski.kotlin.compile.GreetingPluginExtension
23

34
plugins {
45
alias(libs.plugins.kotlinMultiplatform)
56
id("maven-publish")
7+
id("pl.lemanski.kotlin.compile")
68
}
79

810
group = "pl.lemanski.pandamidi"
@@ -34,6 +36,7 @@ kotlin {
3436

3537
commonMain.dependencies {
3638
implementation(libs.coroutines.core)
39+
implementation(projects.tinySoundFont)
3740
}
3841

3942
commonTest.dependencies {
@@ -46,4 +49,8 @@ publishing {
4649
repositories {
4750
mavenLocal()
4851
}
52+
}
53+
54+
configure<GreetingPluginExtension> {
55+
message = "Hello from GreetingPlugin!"
4956
}

core/src/commonMain/kotlin/pl/lemanski/pandamidi/soundFont/internal/ChannelDelegate.kt

Lines changed: 0 additions & 5 deletions
This file was deleted.

core/src/commonMain/kotlin/pl/lemanski/pandamidi/soundFont/internal/SoundFontDelegate.kt

Lines changed: 0 additions & 5 deletions
This file was deleted.

core/src/mingwX64Main/kotlin/pl/lemanski/pandamidi/generator/Generator.mingwX64.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package pl.lemanski.pandamidi.generator
22

3-
import pl.lemanski.pandamidi.soundFont.SoundFont
4-
import pl.lemanski.pandamidi.soundFont.soundFont
3+
import pl.lemanski.tinySoundFont.SoundFont
4+
import pl.lemanski.tinySoundFont.soundFont
55

66
internal object MinGWGenerator : Generator {
77
private const val SAMPLE_RATE = 44100

core/src/mingwX64Main/kotlin/pl/lemanski/pandamidi/soundFont/SoundFontExt.mingwX64.kt

Lines changed: 0 additions & 11 deletions
This file was deleted.

gradle/libs.versions.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ kotlinxIo = "0.5.1"
88
kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }
99
kotlinx-io = { module = "org.jetbrains.kotlinx:kotlinx-io-core", version.ref = "kotlinxIo" }
1010
coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" }
11-
pandamidi-core = { module = "pl.lemanski.pandamidi:core", version.ref = "pandaMidi" }
1211

1312
[plugins]
1413
kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }

settings.gradle.kts

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@ pluginManagement {
55
gradlePluginPortal()
66
mavenCentral()
77
}
8-
plugins {
9-
kotlin("jvm") version "1.9.23"
10-
}
11-
}
12-
plugins {
13-
id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0"
148
}
159

1610
dependencyResolutionManagement {
@@ -24,3 +18,4 @@ dependencyResolutionManagement {
2418
rootProject.name = "PandaMidi"
2519
include(":core")
2620
include(":app")
21+
include(":tinySoundFont")

tinySoundFont/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

tinySoundFont/build.gradle.kts

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
2+
3+
plugins {
4+
alias(libs.plugins.kotlinMultiplatform)
5+
id("maven-publish")
6+
}
7+
8+
group = "pl.lemanski.tinySoundFont"
9+
version = "0.0.1"
10+
11+
kotlin {
12+
mingwX64().apply {
13+
val main by compilations.getting
14+
15+
main.compileTaskProvider.configure {
16+
compilerOptions {
17+
freeCompilerArgs.add("-Xbinary=gc=noop")
18+
}
19+
}
20+
21+
main.cinterops.create("libtsf") {
22+
definitionFile = File(rootDir, "native/libtsf.def")
23+
includeDirs.headerFilterOnly("$rootDir\\native\\include")
24+
extraOpts("-libraryPath", "$rootDir\\native\\lib")
25+
}
26+
}
27+
28+
@OptIn(ExperimentalKotlinGradlePluginApi::class)
29+
compilerOptions {
30+
freeCompilerArgs.add("-Xexpect-actual-classes")
31+
}
32+
33+
sourceSets {
34+
35+
commonMain.dependencies {
36+
implementation(libs.coroutines.core)
37+
}
38+
39+
commonTest.dependencies {
40+
implementation(libs.kotlin.test)
41+
}
42+
}
43+
}
44+
45+
publishing {
46+
repositories {
47+
mavenLocal()
48+
}
49+
}

0 commit comments

Comments
 (0)