blob: 072278fb4afe6a9ab9b0637a4f58f2f3f73e81ec [file] [log] [blame]
/*
* Copyright 2018 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.
*/
import androidx.build.SupportConfig
import static androidx.build.dependencies.DependenciesKt.GUAVA
buildscript {
// TODO: Remove this when this test app no longer depends on 1.0.0 of vectordrawable-animated.
// vectordrawable and vectordrawable-animated were accidentally using the same package name
// which is no longer valid in namespaced resource world.
project.ext['android.uniquePackageNames'] = false
}
plugins {
id("AndroidXPlugin")
id("com.android.application")
}
// replace all tests etc with empty task, so we don't run anything
// it is more effective then task.enabled = false, because we avoid executing deps as well
def reentrance = false
project.tasks.whenTaskAdded { task ->
if (task instanceof org.gradle.api.tasks.testing.Test
|| task.name.startsWith("assemble")
|| task.name == "lint"
|| task.name == "transformDexArchiveWithExternalLibsDexMergerForPublicDebug"
|| task.name == "transformResourcesWithMergeJavaResForPublicDebug"
|| task.name == "checkPublicDebugDuplicateClasses") {
if (!reentrance) {
reentrance = true
project.tasks.named(task.name) {
actions = []
dependsOn = []
}
reentrance = false
}
}
}
// Also replace some tasks that will have already been created (and not trigger `whenTaskAdded`)
project.tasks.named("lint") {
actions = []
dependsOn = []
}
android {
defaultConfig {
minSdkVersion SupportConfig.TARGET_SDK_VERSION
javaCompileOptions.annotationProcessorOptions.includeCompileClasspath = false
}
sourceSets {
main {
manifest.srcFile "AndroidManifest.xml"
}
}
flavorDimensions "library-group"
}
configurations.all {
/*
* Room uses auto-common which depends on a version of Guava which strictly depends on a
* version of checkerframework that is different from the one we specify. This forces the same
* resolution strategy for Guava that is used by room and media already so that the compatible
* version of checkerframeworks is also used
*/
resolutionStrategy {
force GUAVA
}
}