107 lines
3.8 KiB
Groovy
107 lines
3.8 KiB
Groovy
/*
|
|
* Copyright (C) 2023 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 'org.jetbrains.kotlin.android'
|
|
id 'jacoco'
|
|
}
|
|
|
|
ext.jetpackComposeVersion = '1.3.0-alpha01' // 请根据实际版本号进行调整
|
|
|
|
android {
|
|
namespace = "com.android.settingslib.spa"
|
|
compileSdkVersion = 34
|
|
defaultConfig {
|
|
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
|
}
|
|
|
|
sourceSets {
|
|
main {
|
|
kotlin.srcDirs = ['src']
|
|
res.srcDirs = ['res']
|
|
manifest.srcFile 'AndroidManifest.xml'
|
|
}
|
|
androidTest {
|
|
kotlin.srcDirs = ['../tests/src']
|
|
res.srcDirs = ['../tests/res']
|
|
manifest.srcFile '../tests/AndroidManifest.xml'
|
|
}
|
|
}
|
|
buildFeatures {
|
|
compose = true
|
|
}
|
|
buildTypes {
|
|
debug {
|
|
enableAndroidTestCoverage = true
|
|
}
|
|
}
|
|
|
|
compileOptions {
|
|
sourceCompatibility JavaVersion.VERSION_17
|
|
targetCompatibility JavaVersion.VERSION_17
|
|
}
|
|
|
|
kotlinOptions {
|
|
jvmTarget = '17'
|
|
}
|
|
|
|
composeOptions {
|
|
kotlinCompilerExtensionVersion = '1.5.0' // 假设1.4.0支持Kotlin 1.9.0
|
|
}
|
|
}
|
|
|
|
dependencies {
|
|
api project(':SettingsLib:Color')
|
|
api 'androidx.appcompat:appcompat:1.7.0-alpha03'
|
|
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.3.0"
|
|
api "androidx.compose.material:material-icons-extended:1.5.0"
|
|
api "androidx.compose.runtime:runtime-livedata:1.5.0"
|
|
api "androidx.compose.ui:ui-tooling-preview:1.5.0"
|
|
api 'androidx.lifecycle:lifecycle-livedata-ktx'
|
|
api 'androidx.lifecycle:lifecycle-runtime-compose'
|
|
api 'androidx.navigation:navigation-compose:2.8.0-alpha02'
|
|
api 'com.github.PhilJay:MPAndroidChart:v3.1.0'
|
|
api 'com.google.android.material:material:1.7.0-alpha03'
|
|
debugApi "androidx.compose.ui:ui-tooling:1.5.0"
|
|
implementation 'com.airbnb.android:lottie-compose:5.2.0'
|
|
|
|
// androidTestImplementation project(':testutils')
|
|
// androidTestImplementation libs.dexmaker.mockito
|
|
}
|
|
|
|
tasks.register('coverageReport', JacocoReport) {
|
|
group = 'Reporting'
|
|
description = 'Generate Jacoco coverage reports after running tests.'
|
|
dependsOn 'connectedDebugAndroidTest'
|
|
sourceDirectories.setFrom files('src')
|
|
classDirectories.setFrom fileTree(dir: "${layout.buildDirectory.dir('tmp/kotlin-classes/debug')}", excludes: [
|
|
'com/android/settingslib/spa/debug/**',
|
|
'com/android/settingslib/spa/widget/scaffold/CustomizedAppBar*',
|
|
'com/android/settingslib/spa/widget/scaffold/TopAppBarColors*',
|
|
'com/android/settingslib/spa/framework/compose/DrawablePainter*',
|
|
'com/android/settingslib/spa/framework/util/Collections*',
|
|
'com/android/settingslib/spa/framework/util/Flows*',
|
|
'com/android/settingslib/spa/framework/compose/TimeMeasurer*',
|
|
'com/android/settingslib/spa/slice/presenter/Demo*',
|
|
'com/android/settingslib/spa/slice/provider/Demo*',
|
|
])
|
|
executionData.setFrom fileTree(dir: "${layout.buildDirectory.dir('outputs/code_coverage/debugAndroidTest/connected')}")
|
|
}
|