blob: baee4f4346b4628a45c30863a073bb07b2a676af [file] [log] [blame]
/*
* Copyright (C) 2016 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.
*/
def root = ext.lifecyclesRootFolder
ext.prebuiltsRoot = "file://${root}/../../../prebuilts"
ext.repoNames = ["$prebuiltsRoot/maven_repo",
"$prebuiltsRoot/gradle-plugin",
"$prebuiltsRoot/tools/common/m2/repository",
"$prebuiltsRoot/tools/common/m2/internal",
"$prebuiltsRoot/tools/common/offline-m2",
"$prebuiltsRoot/maven_repo/android",
"$prebuiltsRoot/../out/host/gradle/frameworks/support/build/support_repo/"]
ext.kotlin_version = "1.0.5"
ext.android_gradle_plugin_version = "2.2.1"
ext.auto_common_version = "0.6"
ext.javapoet_version = "1.7.0"
ext.compile_testing_version = "0.9"
ext.localize_maven_version = "1.1"
ext.support_lib_version = "25.1.0-SNAPSHOT"
ext.junit_version = "4.12"
ext.mockito_version = "1.9.5"
ext.min_sdk_version = 14
ext.target_sdk_version = 24
ext.compile_sdk_version = 24
ext.build_tools_version = "24.0.0"
ext.intellij_annotation = "12.0"
ext.release_version = "1.0-SNAPSHOT"
ext.enablePublicRepos = System.getenv("ALLOW_PUBLIC_REPOS")
def addRepos(RepositoryHandler handler) {
repoNames.each { repo ->
handler.maven {
url repo
}
if (ext.enablePublicRepos) {
handler.mavenCentral()
handler.jcenter()
}
}
}
def createKotlinCheckstyle(Project project) {
def kotlinCheckstyle = project.tasks.create(name : 'checkstyleKotlin', type: Checkstyle) {
configFile file("$lifecyclesRootFolder/../flatfoot-common/kotlin-checkstyle.xml")
source project.sourceSets.main.allJava
source project.sourceSets.test.allJava
ignoreFailures false
showViolations true
include '**/*.kt'
classpath = project.files()
checkstyleClasspath = files(file("$lifecyclesRootFolder../../../development/tools/checkstyle/checkstyle.jar").path)
}
project.tasks.findByName("check").dependsOn(kotlinCheckstyle)
// poor man's line length check
def lineCheck = project.tasks.create(name : "lineLengthCheck") {
(project.sourceSets.main.allJava.getSourceDirectories() +
project.sourceSets.test.allJava.getSourceDirectories()).each { sourceDir ->
fileTree(dir : sourceDir, include : "**/*.kt").each{ file ->
file.readLines().eachWithIndex { line, index ->
if (line.size() > 100) {
throw new Exception("line too long: file: $file line:$index line: $line")
}
}
}
}
}
kotlinCheckstyle.dependsOn(lineCheck)
}
def createAndroidCheckstyle(Project project) {
def androidCheckstyle = project.tasks.create(name : 'checkstyleAndroid', type: Checkstyle) {
configFile file("$lifecyclesRootFolder/../../../development/tools/checkstyle/android-style.xml")
if (project.hasProperty('android')) {
source project.android.sourceSets.main.java.getSrcDirs()
}
if (project.sourceSets.hasProperty('main')) {
source project.sourceSets.main.allJava
}
ignoreFailures false
showViolations true
include '**/*.java'
classpath = project.files()
checkstyleClasspath = files(file("$lifecyclesRootFolder/../../../development/tools/checkstyle/checkstyle.jar").path)
}
project.tasks.findByName("check").dependsOn(androidCheckstyle)
}
ext.localMavenRepo = "file://${new File(root, "maven-repo").absolutePath}"
ext.addRepos = this.&addRepos
ext.createKotlinCheckstyle = this.&createKotlinCheckstyle
ext.createAndroidCheckstyle = this.&createAndroidCheckstyle