blob: 39d5872d18d2cf18e3b232a5d1f95661d31b964b [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.
*/
/**
* This file was created using the `create_project.py` script located in the
* `<AndroidX root>/development/project-creator` directory.
*
* Please use that script when creating a new project, rather than copying an existing project and
* modifying its settings.
*/
import androidx.build.*
plugins {
id("AndroidXPlugin")
id("kotlin")
id("java-gradle-plugin")
}
// This custom configuration ensures that dependencies used in tests with gradle test kit with
// generated build.gradle are considered when determining which tests to run on CI due to a change.
// For reference: b/281515796
configurations {
neededForGradleTestKit {
canBeResolved = true
}
neededForGradleTestKitAgp80 {
canBeResolved = true
}
neededForGradleTestKitAgp81 {
canBeResolved = true
}
}
dependencies {
compileOnly(libs.androidGradlePluginz)
compileOnly(libs.kotlinGradlePluginz)
implementation(gradleApi())
implementation(libs.protobuf)
implementation(libs.agpTestingPlatformCoreProto)
testImplementation(gradleTestKit())
testImplementation(project(":internal-testutils-gradle-plugin"))
testImplementation(libs.junit)
testImplementation(libs.kotlinTest)
testImplementation(libs.truth)
neededForGradleTestKit(libs.androidGradlePluginz)
neededForGradleTestKit(libs.kotlinGradlePluginz)
neededForGradleTestKit(libs.kotlinStdlib)
neededForGradleTestKitAgp80("com.android.tools.build:gradle:8.0.0")
neededForGradleTestKitAgp80("com.android.tools.build:aapt2:8.0.0-9289358")
neededForGradleTestKitAgp80("com.android.tools.build:aapt2:8.0.0-9289358:linux")
neededForGradleTestKitAgp80("com.android.tools.build:aapt2:8.0.0-9289358:osx")
neededForGradleTestKitAgp81("com.android.tools.build:gradle:8.1.0")
neededForGradleTestKitAgp81("com.android.tools.build:aapt2:8.1.0-10154469")
neededForGradleTestKitAgp81("com.android.tools.build:aapt2:8.1.0-10154469:linux")
neededForGradleTestKitAgp81("com.android.tools.build:aapt2:8.1.0-10154469:osx")
}
tasks.withType(Test).configureEach {
it.dependsOn(configurations.neededForGradleTestKit)
it.dependsOn(configurations.neededForGradleTestKitAgp80)
it.dependsOn(configurations.neededForGradleTestKitAgp81)
}
SdkResourceGenerator.generateForHostTest(project)
gradlePlugin {
plugins {
baselineProfileProducer {
id = "androidx.baselineprofile.producer"
implementationClass = "androidx.baselineprofile.gradle.producer.BaselineProfileProducerPlugin"
}
baselineProfileConsumer {
id = "androidx.baselineprofile.consumer"
implementationClass = "androidx.baselineprofile.gradle.consumer.BaselineProfileConsumerPlugin"
}
baselineProfileAppTarget {
id = "androidx.baselineprofile.apptarget"
implementationClass = "androidx.baselineprofile.gradle.apptarget.BaselineProfileAppTargetPlugin"
}
baselineProfileWrapper {
id = "androidx.baselineprofile"
implementationClass = "androidx.baselineprofile.gradle.wrapper.BaselineProfileWrapperPlugin"
}
}
}
androidx {
name = "Baseline Profile Gradle Plugin"
publish = Publish.SNAPSHOT_AND_RELEASE
type = LibraryType.GRADLE_PLUGIN
inceptionYear = "2022"
description = "Android Baseline Profile Gradle Plugin"
}
tasks {
validatePlugins {
failOnWarning.set(true)
enableStricterValidation.set(true)
}
}
tasks.withType(Test).configureEach { test ->
test.maxParallelForks(2)
}
afterEvaluate { tasks.named("test") { it.dependsOn(tasks.named("publish")) } }