| buildscript { |
| ext.gradle_version = '3.2.1' |
| ext.studio_version = '26.2.1' |
| ext.kotlin_version = '1.3.11' |
| repositories { |
| google() |
| jcenter() |
| } |
| dependencies { |
| classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" |
| classpath "com.android.tools.build:gradle:$gradle_version" |
| } |
| } |
| |
| repositories { |
| google() |
| jcenter() |
| } |
| |
| apply plugin: 'application' |
| apply plugin: 'java' |
| apply plugin: 'kotlin' |
| apply plugin: 'maven' |
| |
| group = 'com.android' |
| def versionPropertyFile = file('src/main/resources/version.properties') |
| if (versionPropertyFile.canRead()) { |
| Properties versionProps = new Properties() |
| versionProps.load(new FileInputStream(versionPropertyFile)) |
| version = versionProps['metalavaVersion'] |
| } else { |
| throw new FileNotFoundException("Could not read $versionPropertyFile") |
| } |
| |
| mainClassName = "com.android.tools.metalava.Driver" |
| applicationDefaultJvmArgs = ["-ea", "-Xms2g", "-Xmx4g"] |
| sourceCompatibility = 1.8 |
| |
| compileKotlin { |
| sourceCompatibility = JavaVersion.VERSION_1_8 |
| targetCompatibility = JavaVersion.VERSION_1_8 |
| |
| kotlinOptions { |
| jvmTarget = "1.8" |
| apiVersion = "1.3" |
| languageVersion = "1.3" |
| } |
| } |
| |
| dependencies { |
| implementation "com.android.tools.external.org-jetbrains:uast:$studio_version" |
| implementation "com.android.tools.external.com-intellij:intellij-core:$studio_version" |
| implementation "com.android.tools.lint:lint-api:$studio_version" |
| implementation "com.android.tools.lint:lint-checks:$studio_version" |
| implementation "com.android.tools.lint:lint-gradle:$studio_version" |
| implementation "com.android.tools.lint:lint:$studio_version" |
| implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version" |
| implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlin_version" |
| testImplementation "com.android.tools.lint:lint-tests:$studio_version" |
| testImplementation 'junit:junit:4.11' |
| } |
| |
| // shadow jar: Includes all dependencies |
| buildscript { |
| repositories { |
| jcenter() |
| } |
| dependencies { |
| classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.2' |
| } |
| } |
| apply plugin: 'com.github.johnrengelman.shadow' |
| shadowJar { |
| baseName = "metalava-$version-full-SNAPSHOT" |
| classifier = null |
| version = null |
| zip64 = true |
| } |
| |
| defaultTasks 'clean', 'installDist' |
| |
| /* |
| * With the build server you are given two env variables: |
| * 1. The OUT_DIR is a temporary directory you can use to put things during the build. |
| * 2. The DIST_DIR is where you want to save things from the build. |
| * |
| * The build server will copy the contents of DIST_DIR to somewhere and make it available. |
| */ |
| if (System.env.DIST_DIR != null && System.env.OUT_DIR != null) { |
| buildDir = file("${System.env.OUT_DIR}/host/common/metalava").getCanonicalFile() |
| ext.distDir = file(System.env.DIST_DIR).getCanonicalFile() |
| ext.distsDir = ext.distDir |
| |
| // The distDir is conveniently named after the build ID. |
| version = "${version}.${ext.distDir.name}" |
| } else { |
| buildDir = file('../../out/host/common') |
| ext.distDir = file('../../out/dist') |
| ext.distsDir = ext.distDir |
| |
| // Local builds are not public release candidates. |
| version = "${version}-SNAPSHOT" |
| } |
| |
| // KtLint: https://github.com/shyiko/ktlint |
| |
| configurations { |
| ktlint |
| } |
| |
| dependencies { |
| ktlint "com.github.shyiko:ktlint:0.29.0" |
| } |
| |
| task ktlint(type: JavaExec, group: "verification") { |
| description = "Check Kotlin code style." |
| main = "com.github.shyiko.ktlint.Main" |
| classpath = configurations.ktlint |
| args "src/**/*.kt" |
| } |
| check.dependsOn ktlint |
| |
| task format(type: JavaExec, group: "formatting") { |
| description = "Fix Kotlin code style deviations." |
| main = "com.github.shyiko.ktlint.Main" |
| classpath = configurations.ktlint |
| args "-F", "src/**/*.kt" |
| } |