bricks-mp/shared/build.gradle.kts
yumoqing 43f416a6f0 feat: add DevMode with logging, HTTP interception, and debug panel
- DevLogStore: centralized log store with Flow-based observation (INFO/WARN/ERROR/EXCEPTION levels)
- DevHttpInterceptor: capture request/response pairs with timing and body details
- DevPanel: bottom panel with Logs/Network/Errors tabs, expandable entries, JSON formatting
- Integrated into BricksHttp (all HTTP methods), BricksParser, ActionDispatcher, Main
- Move Main.kt from shared/ to test/generic-client/ (library module should not have main)
- Add test/generic-client/ as generic bricks-mp desktop host with DevMode toggle
- Add kotlinx-datetime dependency for timestamp handling
- Add materialIconsExtended for DevPanel icons
2026-05-19 23:15:37 +08:00

55 lines
1.8 KiB
Plaintext

import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
plugins {
alias(libs.plugins.kotlin.multiplatform)
alias(libs.plugins.compose.compiler)
alias(libs.plugins.jetbrains.compose)
alias(libs.plugins.serialization)
}
kotlin {
// Only desktop (macOS) for now
jvm()
// TODO: add back when Android SDK / Xcode is available
// androidTarget()
// listOf(iosX64(), iosArm64(), iosSimulatorArm64()).forEach { iosTarget ->
// iosTarget.binaries.framework {
// baseName = "BricksShared"
// isStatic = true
// }
// }
@OptIn(ExperimentalKotlinGradlePluginApi::class)
compilerOptions { freeCompilerArgs.add("-Xexpect-actual-classes") }
sourceSets {
commonMain.dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material3)
implementation(compose.materialIconsExtended)
implementation(compose.ui)
implementation(libs.kotlinx.serialization.json)
implementation(libs.kotlinx.datetime)
implementation(libs.ktor.client.core)
implementation(libs.ktor.client.cio)
implementation(libs.ktor.client.content.negotiation)
implementation(libs.ktor.serialization.json)
implementation(libs.kotlinx.coroutines.core)
implementation(libs.coil.compose)
implementation(libs.coil.network)
}
jvmMain.dependencies {
implementation(compose.desktop.currentOs)
implementation(libs.ktor.client.okhttp)
}
}
}
// TODO: uncomment when androidTarget() is enabled
// android {
// namespace = "com.bricks.mp"
// compileSdk = 35
// defaultConfig { minSdk = 24 }
// }