// Top-level build file where you can add configuration options common to all sub-projects/modules. def props = new Properties() def configPath = project.hasProperty('configPath') ? new File(project.configPath) : rootProject.file('config.prop') if (configPath.exists()) configPath.withInputStream { is -> props.load(is) } buildscript { ext.vKotlin = '1.3.72' ext.vNav = '2.3.0' repositories { google() jcenter() maven { url 'http://storage.googleapis.com/r8-releases/raw' } maven { url 'https://kotlin.bintray.com/kotlinx' } } dependencies { classpath 'com.android.tools.build:gradle:4.0.0' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${vKotlin}" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:${vNav}" // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } task clean(type: Delete) { delete rootProject.buildDir } ext.props = props subprojects { repositories { google() jcenter() maven { url "https://jitpack.io" } maven { url "http://oss.sonatype.org/content/repositories/snapshots" } } afterEvaluate { module -> if (getPlugins().hasPlugin('com.android.library') || getPlugins().hasPlugin('com.android.application')) { android { compileSdkVersion 30 buildToolsVersion '30.0.0' defaultConfig { if (minSdkVersion == null) minSdkVersion 17 targetSdkVersion 28 } compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } } if (getPlugins().hasPlugin('java')) { tasks.withType(JavaCompile) { // If building with JDK 9+, we need additional flags to generate compatible bytecode if (JavaVersion.current() > JavaVersion.VERSION_1_8) { options.compilerArgs += ['--release', '8'] } } } if (module.name == 'app' || module.name == 'stub') { android { signingConfigs { config { storeFile new File(props['keyStore']) storePassword props['keyStorePass'] keyAlias props['keyAlias'] keyPassword props['keyPass'] } } buildTypes { debug { // If keystore exists, sign the APK with custom signature if (signingConfigs.config.storeFile.exists()) signingConfig signingConfigs.config } release { signingConfig signingConfigs.config } } lintOptions { disable 'MissingTranslation' } } } } }