buildscript {
    addRepos(repositories)
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'kotlin'
apply plugin: 'maven'
apply plugin: 'checkstyle'

sourceSets {
    test.java.srcDirs += 'src/tests/kotlin'
}

dependencies {
    compile project(":lifecycle:common")
    compile "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
    compile "com.google.auto:auto-common:$auto_common_version"
    compile "com.squareup:javapoet:$javapoet_version"
    testCompile "com.google.testing.compile:compile-testing:$compile_testing_version"
    testCompile files(org.gradle.internal.jvm.Jvm.current().getToolsJar())
}

uploadArchives {
    repositories {
        mavenDeployer {
            repository(url: rootProject.ext.localMavenRepo)
            pom.artifactId = 'compiler'
        }
    }
}

createKotlinCheckstyle(project)