/*
 * Copyright 2019 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.LibraryGroups
import androidx.build.LibraryVersions
import androidx.build.Publish

plugins {
    id("AndroidXPlugin")
    id("com.android.library")
    id("org.jetbrains.kotlin.android")
}

dependencies {
    compileOnly(libs.kotlinStdlib)

    lintPublish(project(":annotation:annotation-experimental-lint"))
}

android {
    buildTypes.all {
        consumerProguardFiles("proguard-rules.pro")
    }
}

androidx {
    name = "Experimental annotation"
    publish = Publish.SNAPSHOT_AND_RELEASE
    mavenVersion = LibraryVersions.ANNOTATION_EXPERIMENTAL
    mavenGroup = LibraryGroups.ANNOTATION
    inceptionYear = "2019"
    description = "Java annotation for use on unstable Android API surfaces. When used in " +
            "conjunction with the Experimental annotation lint checks, this annotation provides " +
            "functional parity with Kotlin's Experimental annotation."
}
