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

import static androidx.build.dependencies.DependenciesKt.*
import androidx.build.CompilationTarget
import androidx.build.LibraryGroups
import androidx.build.LibraryVersions
import androidx.build.Publish

buildscript {
    dependencies {
        classpath 'org.anarres.jarjar:jarjar-gradle:1.0.1'
    }
}

plugins {
    id("AndroidXPlugin")
    id("kotlin")
}

dependencies {
    compileOnly(KOTLIN_STDLIB)
    compileOnly("org.jetbrains.kotlin:kotlin-compiler:$KOTLIN_VERSION")
    compileOnly("org.jetbrains.kotlin:kotlin-plugin:$KOTLIN_VERSION")
    compileOnly("org.jetbrains.kotlin:kotlin-intellij-core:$KOTLIN_VERSION")
    compileOnly("org.jetbrains.kotlin:kotlin-platform-api:$KOTLIN_VERSION")
}

tasks.withType(KotlinCompile).configureEach {
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

androidx {
    name = "AndroidX Compose Hosted Compiler Plugin"
    // Nobody should ever get this artifact from maven; just from studio or from source
    publish = Publish.NONE
    toolingProject = true
    mavenVersion = LibraryVersions.COMPOSE
    mavenGroup = LibraryGroups.COMPOSE
    inceptionYear = "2019"
    description = "Contains the Kotlin compiler plugin for Compose used in Android Studio and IDEA"
    compilationTarget = CompilationTarget.HOST
}
