// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { mavenCentral() maven { url 'https://plugins.gradle.org/m2/' } google() jcenter() } ext.versions = [ androidGradlePlugin : '3.6.0-beta04', dexcountGradlePlugin: '0.5.6', kotlin : '1.3.50', dokkaGradlePlugin : '0.10.0', ktlintGradle : '9.1.1', spotlessGradlePlugin: '3.25.0' ] dependencies { classpath "com.android.tools.build:gradle:${versions.androidGradlePlugin}" classpath "com.getkeepsafe.dexcount:dexcount-gradle-plugin:${versions.dexcountGradlePlugin}" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${versions.kotlin}" 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}" } } apply from: 'buildsystem/dependencies.gradle' 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' } } project.plugins.whenPluginAdded { plugin -> if ("com.android.build.gradle.AppPlugin".equals(plugin.class.name)) { project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs } else if ("com.android.build.gradle.LibraryPlugin".equals(plugin.class.name)) { project.android.dexOptions.preDexLibraries = rootProject.ext.preDexLibs } } } task gitHooksInit(type: Exec) { workingDir "$projectDir" commandLine './init-git-hooks' }