blob: 73c109994025c145e71f6137122fa90fdd8afbc2 [file] [log] [blame]
/*
* Copyright 2022 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.
*/
plugins {
id 'com.android.library'
id 'kotlin-android'
}
android {
namespace 'com.android.settingslib.spa'
compileSdk TARGET_SDK
buildToolsVersion = BUILD_TOOLS_VERSION
defaultConfig {
minSdk MIN_SDK
targetSdk TARGET_SDK
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
sourceSets {
main {
kotlin {
srcDir "src"
}
res.srcDirs = ["res"]
manifest.srcFile "AndroidManifest.xml"
}
androidTest {
kotlin {
srcDir "../tests/src"
}
res.srcDirs = ["../tests/res"]
manifest.srcFile "../tests/AndroidManifest.xml"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = '1.8'
freeCompilerArgs = ["-Xjvm-default=all"]
}
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion jetpack_compose_compiler_version
}
buildTypes {
debug {
testCoverageEnabled = true
}
}
}
dependencies {
String jetpack_lifecycle_version = "2.6.0-alpha03"
api "androidx.appcompat:appcompat:1.7.0-alpha01"
api "androidx.slice:slice-builders:1.1.0-alpha02"
api "androidx.slice:slice-core:1.1.0-alpha02"
api "androidx.slice:slice-view:1.1.0-alpha02"
api "androidx.compose.material3:material3:1.1.0-alpha03"
api "androidx.compose.material:material-icons-extended:$jetpack_compose_version"
api "androidx.compose.runtime:runtime-livedata:$jetpack_compose_version"
api "androidx.compose.ui:ui-tooling-preview:$jetpack_compose_version"
api "androidx.lifecycle:lifecycle-livedata-ktx:$jetpack_lifecycle_version"
api "androidx.lifecycle:lifecycle-runtime-compose:$jetpack_lifecycle_version"
api "androidx.navigation:navigation-compose:2.6.0-alpha04"
api "com.github.PhilJay:MPAndroidChart:v3.1.0-alpha"
api "com.google.android.material:material:1.7.0-alpha03"
debugApi "androidx.compose.ui:ui-tooling:$jetpack_compose_version"
implementation "com.airbnb.android:lottie-compose:5.2.0"
androidTestImplementation project(":testutils")
androidTestImplementation "com.linkedin.dexmaker:dexmaker-mockito:2.28.1"
}
task coverageReport(type: JacocoReport, dependsOn: "connectedDebugAndroidTest") {
group = "Reporting"
description = "Generate Jacoco coverage reports after running tests."
sourceDirectories.from = files("src")
classDirectories.from = fileTree(
dir: "$buildDir/tmp/kotlin-classes/debug",
excludes: [
"com/android/settingslib/spa/debug/**",
// Excludes files forked from AndroidX.
"com/android/settingslib/spa/widget/scaffold/CustomizedAppBar*",
"com/android/settingslib/spa/widget/scaffold/TopAppBarColors*",
// Excludes files forked from Accompanist.
"com/android/settingslib/spa/framework/compose/DrawablePainter*",
"com/android/settingslib/spa/framework/compose/Pager*",
// Excludes inline functions, which is not covered in Jacoco reports.
"com/android/settingslib/spa/framework/util/Collections*",
"com/android/settingslib/spa/framework/util/Flows*",
// Excludes debug functions
"com/android/settingslib/spa/framework/compose/TimeMeasurer*",
// Excludes slice demo presenter & provider
"com/android/settingslib/spa/slice/presenter/Demo*",
"com/android/settingslib/spa/slice/provider/Demo*",
],
)
executionData.from = fileTree(dir: "$buildDir/outputs/code_coverage/debugAndroidTest/connected")
}