- 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
55 lines
1.8 KiB
Plaintext
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 }
|
|
// }
|