anytype-kotlin-wild/build.gradle

106 lines
3.2 KiB
Groovy

import com.android.build.gradle.LibraryPlugin
buildscript {
ext.compile_sdk = 34
ext.target_sdk = 34
ext.min_sdk = 26
ext.application_id = 'io.anytype.app'
ext.version_name = '1.0'
ext.version_code = 1
ext.test_runner = 'androidx.test.runner.AndroidJUnitRunner'
ext.onCi = project.properties.getOrDefault("com.anytype.ci", "false").toBoolean()
def githubProperties = new Properties()
def githubPropertiesFile = file("$rootDir${File.separator}github.properties")
githubProperties.load(new FileInputStream(githubPropertiesFile))
def apiKeysProperties = new Properties()
def apiKeysPropertiesFile = file("$rootDir${File.separator}apikeys.properties")
apiKeysProperties.load(new FileInputStream(apiKeysPropertiesFile))
ext.sentryApiKey = apiKeysProperties["sentry_dsn"]
repositories {
mavenLocal()
google()
mavenCentral()
maven { url "https://jitpack.io" }
}
if (ext.onCi) {
dependencies {
classpath "com.github.openkin:license-gradle-plugin:0d9582e233"
}
}
}
plugins {
alias(libs.plugins.application) apply false
alias(libs.plugins.library) apply false
alias(libs.plugins.kotlinAndroid) apply false
alias(libs.plugins.kserialization) apply false
alias(libs.plugins.wire) apply false
alias(libs.plugins.dokka) apply false
alias(libs.plugins.firebaseDistribution) apply false
alias(libs.plugins.gms) apply false
}
def testDebugAll = tasks.create("testDebugAll")
//https://www.droidcon.com/2022/03/11/reducing-gradle-boilerplate-in-multi-module-android-projects/
subprojects {
project.plugins.whenPluginAdded { plugin ->
if (plugin instanceof LibraryPlugin) {
android {
def config = rootProject.extensions.getByName("ext")
compileSdkVersion config["compile_sdk"]
defaultConfig {
minSdkVersion config["min_sdk"]
targetSdkVersion config["target_sdk"]
testInstrumentationRunner config["test_runner"]
}
testOptions {
unitTests {
includeAndroidResources = true
}
}
}
}
}
plugins.withId("kotlin") {
testDebugAll.dependsOn(tasks.named("test"))
}
plugins.withId("com.android.library") {
project.apply from: "$rootDir/lint.gradle"
afterEvaluate {
testDebugAll.dependsOn(tasks.named("testDebugUnitTest"))
}
}
plugins.withId("com.android.application") {
project.apply from: "$rootDir/lint.gradle"
afterEvaluate {
testDebugAll.dependsOn(tasks.named("testDebugUnitTest"))
}
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
tasks.register("installGitHooks") {
setGroup("Build Setup")
setDescription("Install local repository git hooks")
exec {
commandLine 'sh', '-c', 'git config core.hooksPath .githooks'
}
}
var initialTaskNames = getProject().getGradle().getStartParameter().getTaskNames()
getProject().getGradle().getStartParameter().setTaskNames(
initialTaskNames + Collections.singletonList("installGitHooks"))