From e9c12eb4a8eb93b0ae77a69967b61e4a953318de Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 25 Nov 2022 18:46:47 +0000 Subject: [PATCH] [build+docs] Use `mirai.native.binaries` to enable binaries, update relevant docs. --- buildSrc/src/main/kotlin/HmppConfigure.kt | 2 +- docs/contributing/BuildingCore.md | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/kotlin/HmppConfigure.kt b/buildSrc/src/main/kotlin/HmppConfigure.kt index e92a254a8..9bcca7831 100644 --- a/buildSrc/src/main/kotlin/HmppConfigure.kt +++ b/buildSrc/src/main/kotlin/HmppConfigure.kt @@ -372,7 +372,7 @@ fun KotlinMultiplatformExtension.configureNativeTargetsHierarchical( } fun KotlinMultiplatformExtension.configureNativeTargetBinaries(project: Project) { - if (!System.getProperty("mirai.native.link", "false").toBoolean()) { + if (!System.getProperty("mirai.native.binaries", "false").toBoolean()) { // Must enable KotlinNativeLink by argument "mirai.native.link". // :mirai-core:linkReleaseSharedMacosX64 diff --git a/docs/contributing/BuildingCore.md b/docs/contributing/BuildingCore.md index 392d1e99e..4c6bcf05f 100644 --- a/docs/contributing/BuildingCore.md +++ b/docs/contributing/BuildingCore.md @@ -46,7 +46,7 @@ Windows x86_64 目标;在 macOS aarch64 主机上只能编译 macOS aarch64 若使用 Apple M1 Max 或同等级 CPU (AMD R7 5800X / Intel i7-12700K / Intel i9-12950HX),单独执行 `./gradlew assemble` 编译并连接全部项目 (含动态链接库和静态链接库) 需时约 9 分钟。单独执行 `./gradlew check` 需约 4 分钟。 -但在 GitHub 的 2 核心 CPU Actions 机器上执行 `assemble` 通常需要约 40 分钟。 +但在 GitHub 的 2 核心 CPU Actions 机器上执行 `assemble` 通常需要约 40 分钟,。 ### 安装 OpenSSL @@ -173,12 +173,20 @@ cURL,在其他平台使用 [Ktor CIO](https://ktor.io/docs/http-client-engines ### 链接并构建动态链接库 -注意,只有 mirai-core 可以构建可用的动态链接库。 +注意,只有 mirai-core 可以构建可用的动态链接库。所有动态链接库和静态链接库的构建都是默认关闭的,需要使用 `-Dmirai.native.binaries=true` 才能启用。 -执行 `:mirai-core:linkDebugSharedHost` +在提供 `-Dmirai.native.binaries=true` 参数的情况下,执行 `:mirai-core:linkDebugSharedHost` 或 `:mirai-core:linkReleaseSharedHost`。Debug 版本会保留调试符号,能显示完整错误堆栈;而 Release 拥有更小体积(比 Debug 减小 50%)。 +示例: + +```shell +./gradlew :mirai-core:linkDebugSharedHost "-Dmirai.native.binaries=true" + +./gradlew :mirai-core:linkReleaseSharedMacoxX64 "-Dmirai.native.binaries=true" +``` + 这也会同时生成一个头文件(`.h` )供交互使用。详情查看 [Kotlin 官方文档](https://kotlinlang.org/docs/native-c-interop.html) 。 @@ -189,7 +197,7 @@ Release 拥有更小体积(比 Debug 减小 50%)。 注意,只有 mirai-core 可以构建可用的静态链接库。 -执行 `:mirai-core:linkDebugStaticHost` +与构建动态链接库类似,在提供 `-Dmirai.native.binaries=true` 参数的情况下,执行 `:mirai-core:linkDebugStaticHost` 或 `:mirai-core:linkReleaseStaticHost`。Debug 版本会保留调试符号,能显示完整错误堆栈;而 Release 拥有更小体积(比 Debug 减小 50%)。