blob: d8342bcc50ad57972c627ae313004b7fe587de29 [file] [edit]
/*
* Copyright 2020 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
/**
* This file was created using the `createProject` gradle task (./gradlew createProject)
*
* Please use the task when creating a new project, rather than copying an existing project and
* modifying its settings.
*/
import androidx.build.SoftwareType
import androidx.build.PlatformIdentifier
plugins {
id("AndroidXPlugin")
id("AndroidXComposePlugin")
alias(libs.plugins.kotlinSerialization)
}
androidXMultiplatform {
androidLibrary {
compileSdk { version = release(35) }
namespace = "androidx.lifecycle.viewmodel.compose"
}
desktop()
mac()
linux()
ios()
watchos()
tvos()
mingwX64()
js()
wasmJs()
defaultPlatform(PlatformIdentifier.ANDROID)
sourceSets {
commonMain.dependencies {
api(project(":lifecycle:lifecycle-common"))
api(project(":lifecycle:lifecycle-viewmodel"))
api(project(":lifecycle:lifecycle-viewmodel-savedstate"))
api("androidx.annotation:annotation:1.9.1")
api(project(":compose:runtime:runtime"))
api(project(":compose:runtime:runtime-saveable"))
api(libs.kotlinSerializationCore)
}
commonTest.dependencies {
implementation(project(":lifecycle:lifecycle-viewmodel-testing"))
implementation(project(":lifecycle:lifecycle-runtime-testing"))
}
androidMain.dependencies {
// TODO(mgalhardo): Change this to constraint once Compose 1.11 prebuilds are released.
implementation(project(":compose:ui:ui")) {
because("Ensure we are using the Compose-UI 1.11 or above")
}
// Converting `lifecycle-viewmodel-compose` to KMP and including a transitive
// dependency on `lifecycle-livedata-core` triggered a Gradle bug. Adding the
// `livedata` dependency directly works around the issue.
// See https://github.com/gradle/gradle/issues/14220 for details.
compileOnly(project(":lifecycle:lifecycle-livedata-core"))
}
androidDeviceTest.dependencies {
implementation(project(":compose:ui:ui-test-junit4"))
implementation(project(":compose:test-utils"))
implementation(libs.testRules)
implementation(libs.testRunner)
implementation(libs.junit)
implementation(libs.truth)
implementation("androidx.fragment:fragment:1.3.0")
implementation("androidx.appcompat:appcompat:1.3.0")
// old version of common-java8 conflicts with newer version, because both have
// DefaultLifecycleEventObserver.
// Outside of androidx this is resolved via constraint added to lifecycle-common,
// but it doesn't work in androidx.
// See aosp/1804059
implementation(project(":lifecycle:lifecycle-common-java8"))
implementation("androidx.activity:activity-compose:1.10.1")
}
}
}
dependencies.constraints {
// TODO(mgalhardo): Add constraints to properly migrate from the JetBrains fork.
// We need to prevent symbol duplication with old versions of the fork.
// Once the fork publishes a version that redirects to this artifact.
}
dependencies {
lintPublish(project(":lifecycle:lifecycle-viewmodel-compose-lint"))
}
androidx {
name = "Lifecycle ViewModel Compose"
type = SoftwareType.PUBLISHED_LIBRARY_ONLY_USED_BY_KOTLIN_CONSUMERS
inceptionYear = "2021"
description = "Compose integration with Lifecycle ViewModel"
samples(project(":lifecycle:lifecycle-viewmodel-compose:lifecycle-viewmodel-compose-samples"))
}