/* * Copyright (c) 2025-2026 Meshtastic LLC * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ plugins { alias(libs.plugins.meshtastic.kmp.library) alias(libs.plugins.meshtastic.kmp.library.compose) alias(libs.plugins.meshtastic.kotlinx.serialization) alias(libs.plugins.meshtastic.koin) } kotlin { @Suppress("UnstableApiUsage") android { namespace = "org.meshtastic.feature.node" androidResources.enable = false withHostTest { isIncludeAndroidResources = true } } sourceSets { commonMain.dependencies { implementation(projects.core.common) implementation(projects.core.data) implementation(projects.core.database) implementation(projects.core.datastore) implementation(projects.core.domain) implementation(projects.core.model) implementation(projects.core.navigation) implementation(projects.core.proto) implementation(projects.core.repository) implementation(projects.core.resources) implementation(projects.core.service) implementation(projects.core.ui) implementation(projects.core.di) implementation(projects.feature.map) implementation(libs.androidx.lifecycle.viewmodel.compose) implementation(libs.androidx.navigation3.runtime) implementation(libs.koin.compose.viewmodel) implementation(libs.kermit) implementation(libs.kotlinx.collections.immutable) } androidMain.dependencies { implementation(project.dependencies.platform(libs.androidx.compose.bom)) implementation(libs.accompanist.permissions) implementation(libs.androidx.activity.compose) implementation(libs.androidx.appcompat) implementation(libs.androidx.compose.material.iconsExtended) implementation(libs.androidx.compose.material3) implementation(libs.androidx.compose.ui.text) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.coil) implementation(libs.markdown.renderer.android) implementation(libs.markdown.renderer.m3) implementation(libs.markdown.renderer) implementation(libs.vico.compose) implementation(libs.vico.compose.m2) implementation(libs.vico.compose.m3) implementation(libs.nordic.common.core) implementation(libs.nordic.common.permissions.ble) // These were in googleImplementation, but KMP with android-kotlin-multiplatform-library // handles flavors differently. For now, we put them in androidMain if they are needed. // In a real KMP flavored module, we'd use different source sets. // But Priority 4b suggests Option A: extract flavored stuff to app module. // So InlineMap will move to app module soon. implementation(libs.location.services) implementation(libs.maps.compose) } androidUnitTest.dependencies { implementation(libs.junit) implementation(libs.mockk) implementation(libs.robolectric) implementation(libs.turbine) implementation(libs.kotlinx.coroutines.test) implementation(libs.androidx.compose.ui.test.junit4) implementation(libs.androidx.test.ext.junit) } } }