106 lines
3.2 KiB
Groovy
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")) |