Skip to content

Commit 18611d8

Browse files
authored
Merge pull request #914 from simple-robot/apply-buildConfig-for-lib-version
在 simbot-api 中生成携带部分常量信息的 builtin
2 parents d57f4c6 + f58c080 commit 18611d8

File tree

4 files changed

+34
-4
lines changed

4 files changed

+34
-4
lines changed

buildSrc/src/main/kotlin/JsConfig.kt

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ inline fun KotlinJsTargetDsl.configJs(
3535
nodejs {
3636
testTask {
3737
useMocha {
38-
timeout = "10000"
38+
timeout = "50000"
3939
}
4040
}
4141
}
@@ -46,7 +46,6 @@ inline fun KotlinJsTargetDsl.configJs(
4646
testTask {
4747
useKarma {
4848
useChromeHeadless()
49-
// useConfigDirectory(File(project.rootProject.projectDir, "karma"))
5049
}
5150
}
5251
}
@@ -75,6 +74,11 @@ inline fun KotlinWasmJsTargetDsl.configWasmJs(
7574
) {
7675
if (nodeJs) {
7776
nodejs {
77+
testTask {
78+
useMocha {
79+
timeout = "50000"
80+
}
81+
}
7882
}
7983
}
8084
// if (nodeJs && isLinux) {
@@ -87,7 +91,6 @@ inline fun KotlinWasmJsTargetDsl.configWasmJs(
8791
testTask {
8892
useKarma {
8993
useChromeHeadless()
90-
// useConfigDirectory(File(project.rootProject.projectDir, "karma"))
9194
}
9295
}
9396
}

simbot-api/api/simbot-api.api

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
public final class love/forte/simbot/SimbotBuiltin {
2+
public static final field BUILD_AT Ljava/lang/String;
3+
public static final field BUILD_KOTLIN_VERSION Ljava/lang/String;
4+
public static final field INSTANCE Llove/forte/simbot/SimbotBuiltin;
5+
public static final field IS_SNAPSHOT Z
6+
public static final field VERSION Ljava/lang/String;
7+
}
8+
19
public abstract interface class love/forte/simbot/ability/AcceptOption {
210
}
311

simbot-api/build.gradle.kts

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import love.forte.gradle.common.kotlin.multiplatform.applyTier2
2626
import love.forte.gradle.common.kotlin.multiplatform.applyTier3
2727
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
2828
import org.jetbrains.kotlin.gradle.targets.js.dsl.ExperimentalWasmDsl
29+
import java.time.Instant
2930

3031
plugins {
3132
kotlin("multiplatform")
@@ -34,8 +35,8 @@ plugins {
3435
id("simbot.suspend-transform-configure")
3536
alias(libs.plugins.ksp)
3637
id("simbot.dokka-module-configuration")
38+
id("com.github.gmazzo.buildconfig")
3739
}
38-
// apply(plugin = "simbot.dokka-module-configuration")
3940

4041
configJavaCompileWithModule("simbot.api")
4142
apply(plugin = "simbot-multiplatform-maven-publish")
@@ -145,3 +146,20 @@ ksp {
145146
arg("simbot.internal.processor.uml.output", rootDir.resolve("generated-docs/event-uml.md").absolutePath)
146147
// arg("simbot.internal.processor.uml.output", rootDir.resolve("generated-docs/actor-uml.md").absolutePath)
147148
}
149+
150+
// BuildConfig for the current version
151+
// love.forte.simbot.annotations.InternalSimbotAPI
152+
buildConfig {
153+
useKotlinOutput {
154+
topLevelConstants = false
155+
internalVisibility = false
156+
}
157+
158+
className.set("SimbotBuiltin")
159+
packageName.set("love.forte.simbot")
160+
buildConfigField<String>("VERSION", P.Simbot.version)
161+
buildConfigField<String>("BUILD_KOTLIN_VERSION", libs.versions.kotlin)
162+
buildConfigField<Boolean>("IS_SNAPSHOT", isSnapshot())
163+
buildConfigField<String>("BUILD_AT", Instant.now().toString())
164+
documentation.set("Auto-generated simbot built-in constants.")
165+
}

simbot-api/src/jvmMain/java/module-info.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
requires static org.reactivestreams;
4949

5050
// libs.suspend.reversal.annotations?
51+
exports love.forte.simbot;
5152
exports love.forte.simbot.ability;
5253
exports love.forte.simbot.application;
5354
exports love.forte.simbot.bot;

0 commit comments

Comments
 (0)