101 lines
3.1 KiB
Groovy
101 lines
3.1 KiB
Groovy
buildscript {
|
|
repositories {
|
|
mavenCentral()
|
|
maven {
|
|
url 'https://plugins.gradle.org/m2/'
|
|
}
|
|
google()
|
|
jcenter()
|
|
maven { url "https://kotlin.bintray.com/kotlinx" }
|
|
}
|
|
|
|
ext.versions = [
|
|
androidGradlePlugin : '4.0.0-alpha09',
|
|
kotlin : '1.3.61',
|
|
dokkaGradlePlugin : '0.10.0',
|
|
ktlintGradle : '9.1.1',
|
|
spotlessGradlePlugin : '3.26.1',
|
|
jacocoGradlePlugin : '0.8.5',
|
|
binaryCompatibilityValidator: '0.1.1',
|
|
]
|
|
|
|
dependencies {
|
|
classpath "com.android.tools.build:gradle:${versions.androidGradlePlugin}"
|
|
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}"
|
|
classpath "org.jetbrains.kotlinx:binary-compatibility-validator:${versions.binaryCompatibilityValidator}"
|
|
classpath "org.jetbrains.dokka:dokka-gradle-plugin:${versions.dokkaGradlePlugin}"
|
|
classpath "org.jlleitschuh.gradle:ktlint-gradle:${versions.ktlintGradle}"
|
|
classpath "com.diffplug.spotless:spotless-plugin-gradle:${versions.spotlessGradlePlugin}"
|
|
classpath "org.jacoco:org.jacoco.core:${versions.jacocoGradlePlugin}"
|
|
}
|
|
}
|
|
|
|
apply from: 'buildsystem/dependencies.gradle'
|
|
|
|
apply plugin: 'binary-compatibility-validator'
|
|
|
|
apiValidation {
|
|
ignoredProjects += ["app"]
|
|
}
|
|
|
|
allprojects {
|
|
repositories {
|
|
mavenCentral()
|
|
google()
|
|
jcenter()
|
|
}
|
|
|
|
apply plugin: 'org.jlleitschuh.gradle.ktlint'
|
|
ktlint {
|
|
version = versions.ktlint
|
|
disabledRules = ["import-ordering"]
|
|
}
|
|
|
|
|
|
// Workaround to prevent Gradle from stealing focus from other apps during tests run/etc.
|
|
// https://gist.github.com/artem-zinnatullin/4c250e04636e25797165
|
|
tasks.withType(JavaForkOptions) {
|
|
jvmArgs '-Djava.awt.headless=true'
|
|
}
|
|
}
|
|
|
|
ext {
|
|
// POM file
|
|
GROUP = "com.dropbox.mobile.store"
|
|
VERSION_NAME = "4.0.0-SNAPSHOT"
|
|
POM_PACKAGING = "pom"
|
|
POM_DESCRIPTION = "Store4 is built with Kotlin Coroutines"
|
|
|
|
POM_URL = "https://github.com/dropbox/Store/"
|
|
POM_SCM_URL = "https://github.com/dropbox/Store/"
|
|
POM_SCM_CONNECTION = "scm:git:https://github.com/dropbox/Store.git"
|
|
POM_SCM_DEV_CONNECTION = "scm:git:git@github.com:dropbox/Store.git"
|
|
|
|
POM_LICENCE_NAME = "Apache License"
|
|
POM_LICENCE_URL = "http://www.apache.org/licenses/LICENSE-2.0"
|
|
POM_LICENCE_DIST = "repo"
|
|
|
|
POM_DEVELOPER_ID = "dropbox"
|
|
POM_DEVELOPER_NAME = "Dropbox"
|
|
}
|
|
|
|
|
|
// From command line use: -PdisablePreDex to disable it: primarily for jenkins
|
|
project.ext.preDexLibs = !project.hasProperty('disablePreDex')
|
|
|
|
subprojects {
|
|
apply plugin: 'com.diffplug.gradle.spotless'
|
|
spotless {
|
|
kotlin {
|
|
target 'src/**/*.kt'
|
|
}
|
|
}
|
|
|
|
def preDexClosure = {
|
|
project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs
|
|
}
|
|
|
|
project.plugins.withType(com.android.build.gradle.AppPlugin).whenPluginAdded(preDexClosure)
|
|
project.plugins.withType(com.android.build.gradle.LibraryPlugin).whenPluginAdded(preDexClosure)
|
|
}
|
|
|