Skip to content

Commit b7174f7

Browse files
committed
Change :common and :cirno-serializable modules to work as Kotlin Multiplatform instead only JVM
1 parent ce95623 commit b7174f7

File tree

22 files changed

+2131
-69
lines changed

22 files changed

+2131
-69
lines changed

build.gradle.kts

+6-24
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
1+
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
2+
13
plugins {
4+
java
25
kotlin("jvm") version Versions.KOTLIN
3-
kotlin("plugin.serialization") version Versions.KOTLIN_SERIALIZATION
6+
kotlin("plugin.serialization") version Versions.KOTLIN
47
id("com.github.johnrengelman.shadow") version Versions.SHADOW_JAR
58
base
69
}
@@ -17,28 +20,7 @@ allprojects {
1720
}
1821

1922
subprojects {
20-
apply(plugin = "org.jetbrains.kotlin.jvm")
21-
}
22-
23-
tasks.test {
24-
useJUnitPlatform()
25-
}
26-
27-
tasks {
28-
shadowJar {
29-
archiveBaseName.set("Foxy")
30-
archiveVersion.set(version.toString())
31-
archiveClassifier.set("")
32-
33-
configurations = listOf(project.configurations.runtimeClasspath.get())
23+
tasks.withType<KotlinCompile> {
24+
kotlinOptions.javaParameters = true
3425
}
35-
36-
test {
37-
useJUnitPlatform()
38-
}
39-
}
40-
41-
42-
kotlin {
43-
jvmToolchain(Versions.JVM_TARGET)
4426
}

cirno-serializable/build.gradle.kts

+34-18
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
plugins {
2-
kotlin("jvm")
3-
kotlin("plugin.serialization") version Versions.KOTLIN_SERIALIZATION
2+
kotlin("multiplatform")
3+
kotlin("plugin.serialization") version Versions.KOTLIN
44
}
55

66
group = "net.cakeyfox"
@@ -10,24 +10,40 @@ repositories {
1010
mavenCentral()
1111
}
1212

13-
dependencies {
14-
testImplementation(kotlin("test"))
13+
kotlin {
14+
jvm {
15+
compilations.all {
16+
kotlinOptions.jvmTarget = Versions.JVM_TARGET.toString()
17+
}
1518

16-
// DateTime
17-
implementation("org.jetbrains.kotlinx:kotlinx-datetime:${Versions.KOTLINX_DATE_TIME}")
19+
withJava()
20+
}
1821

19-
// MongoDB ObjectId
20-
implementation("org.mongodb:bson:4.11.0")
22+
js(IR) {
23+
browser()
24+
nodejs()
25+
}
2126

22-
// Serialization
23-
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:${Versions.KOTLIN_SERIALIZATION}")
24-
implementation("org.jetbrains.kotlinx:kotlinx-serialization-hocon:${Versions.KOTLIN_SERIALIZATION}")
25-
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:${Versions.JACKSON}")
26-
}
27+
sourceSets {
28+
val commonMain by getting {
29+
dependencies {
30+
implementation(kotlin("stdlib-common"))
31+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-core:1.6.0")
32+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.6.0")
33+
implementation("org.jetbrains.kotlinx:kotlinx-datetime:${Versions.KOTLINX_DATE_TIME}")
34+
}
35+
}
2736

28-
tasks.test {
29-
useJUnitPlatform()
30-
}
31-
kotlin {
32-
jvmToolchain(Versions.JVM_TARGET)
37+
val jvmMain by getting {
38+
dependencies {
39+
implementation(kotlin("stdlib-jdk8"))
40+
}
41+
}
42+
43+
val jsMain by getting {
44+
dependencies {
45+
implementation(kotlin("stdlib-js"))
46+
}
47+
}
48+
}
3349
}

cirno-serializable/src/main/kotlin/net/cakeyfox/serializable/database/utils/FoxyConfig.kt cirno-serializable/src/commonMain/kotlin/net/cakeyfox/serializable/database/utils/FoxyConfig.kt

-7
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ data class FoxyConfig(
77
val environment: String,
88
val discord: DiscordSettings,
99
val database: DatabaseSettings,
10-
val loritta: LorittaAPI,
1110
val others: OtherSettings
1211
) {
1312
@Serializable
@@ -39,12 +38,6 @@ data class FoxyConfig(
3938
val requestTimeout: Int
4039
)
4140

42-
@Serializable
43-
data class LorittaAPI(
44-
val url: String,
45-
val key: String
46-
)
47-
4841
@Serializable
4942
data class OtherSettings(
5043
val foxyApi: FoxyAPISettings,

common/build.gradle.kts

+11-18
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
plugins {
2-
id("java")
2+
kotlin("multiplatform")
33
id("com.github.johnrengelman.shadow")
4-
`java-library`
54
}
65

76
group = "net.cakeyfox"
@@ -11,22 +10,16 @@ repositories {
1110
mavenCentral()
1211
}
1312

14-
dependencies {
15-
implementation("org.jetbrains.kotlinx:kotlinx-serialization-hocon:${Versions.KOTLIN_SERIALIZATION}")
16-
}
17-
18-
tasks.test {
19-
useJUnitPlatform()
20-
}
21-
22-
tasks {
23-
shadowJar {
24-
archiveBaseName.set("common")
25-
archiveVersion.set("1.0.0")
26-
archiveClassifier.set("")
13+
kotlin {
14+
jvm {
15+
compilations.all {
16+
kotlinOptions.jvmTarget = Versions.JVM_TARGET.toString()
17+
}
2718
}
28-
}
2919

30-
kotlin {
31-
jvmToolchain(Versions.JVM_TARGET)
20+
jvm().compilations["main"].defaultSourceSet {
21+
dependencies {
22+
implementation("org.jetbrains.kotlinx:kotlinx-serialization-hocon:${Versions.KOTLIN_SERIALIZATION}")
23+
}
24+
}
3225
}

common/src/main/kotlin/net/cakeyfox/common/Constants.kt common/src/commonMain/kotlin/net/cakeyfox/common/Constants.kt

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ object Constants {
1212
const val PREMIUM = "https://foxybot.win/br/premium"
1313
const val DAILY = "https://foxybot.win/br/daily"
1414
const val DAILY_EMOJI = "https://cdn.discordapp.com/emojis/915736630495686696.png?size=2048"
15-
const val LORITTA_INVITE = "https://discord.com/oauth2/authorize?client_id=297153970613387264&scope=bot+identify+guilds+email+applications.commands&permissions=2080374975"
1615
@OptIn(ExperimentalSerializationApi::class)
1716
val HOCON = Hocon { useArrayPolymorphism = true }
1817
const val SUPPORT_SERVER_ID = "768267522670723094"

foxy/src/main/kotlin/net/cakeyfox/foxy/utils/database/MongoDBClient.kt

-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ import net.cakeyfox.foxy.FoxyInstance
1010
import net.cakeyfox.serializable.database.data.FoxyUser
1111
import net.cakeyfox.serializable.database.data.Guild
1212
import java.util.concurrent.TimeUnit
13-
import kotlin.reflect.jvm.jvmName
1413

1514
class MongoDBClient(
1615
foxy: FoxyInstance

0 commit comments

Comments
 (0)