/* * Copyright 2021 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 * * https://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. */ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { ext.buildConfig = [ 'compileSdk': 31, 'minSdk' : 21, 'targetSdk' : 31, ] repositories { google() mavenCentral() } dependencies { classpath(libs.android.gradlePlugin) classpath(libs.kotlin.gradlePlugin) classpath(libs.kotlin.serializationPlugin) } } plugins { alias(libs.plugins.spotless) } subprojects { apply plugin: 'com.diffplug.spotless' spotless { kotlin { target '**/*.kt' targetExclude("$buildDir/**/*.kt") targetExclude('bin/**/*.kt') targetExclude("$rootDir/app/src/main/java/com/google/samples/apps/nowinandroid/data/news/fake/FakeData.kt") ktlint(libs.versions.ktlint.get()).userData([android: "true"]) licenseHeaderFile rootProject.file('spotless/copyright.kt') } } tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { kotlinOptions { // Treat all Kotlin warnings as errors (disabled by default) allWarningsAsErrors = project.hasProperty("warningsAsErrors") ? project.warningsAsErrors : false freeCompilerArgs += '-Xopt-in=kotlin.RequiresOptIn' // Enable experimental coroutines APIs, including Flow freeCompilerArgs += '-Xopt-in=kotlinx.coroutines.ExperimentalCoroutinesApi' freeCompilerArgs += '-Xopt-in=kotlinx.coroutines.FlowPreview' freeCompilerArgs += '-Xopt-in=kotlin.Experimental' // Set JVM target to 1.8 jvmTarget = "1.8" } } }