/*
 * 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.LibraryType
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
    id("AndroidXPlugin")
    id("com.android.library")
    id("kotlin-android")
    id("androidx.inspection")
}

dependencies {
    api("androidx.annotation:annotation:1.1.0")
    compileOnly(project(":inspection:inspection"))

    androidTestImplementation(project(":inspection:inspection-testing"))
    androidTestImplementation(libs.kotlinStdlib)
    androidTestImplementation(libs.testRunner)
    androidTestImplementation(libs.testExtJunit)
    androidTestImplementation(libs.truth)
    androidTestImplementation(libs.kotlinCoroutinesAndroid)
    androidTestImplementation(libs.kotlinCoroutinesTest)
}

androidx {
    name = "Android SQLite Inspector"
    type = LibraryType.IDE_PLUGIN
    // Decouple SQLITE_INSPECTOR because it depends on
    // the inspection protocol, which is alpha
    mavenGroup = LibraryGroups.INSPECTION_EXTENSIONS
    inceptionYear = "2019"
    description = "The implementation of SQLite Inspector."
}

android {
    defaultConfig {
        // studio pipeline works only starting with Android O
        minSdkVersion 26
    }
    sourceSets {
        main.resources.srcDirs += "src/main/proto"
    }
    namespace "androidx.sqlite.inspection"
}

// Allow usage of Kotlin's @OptIn.
tasks.withType(KotlinCompile).configureEach {
    kotlinOptions {
        freeCompilerArgs += ["-opt-in=kotlin.RequiresOptIn"]
    }
}
