1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-09 17:44:57 +09:00
anytype-kotlin/app/build.gradle
2022-01-11 14:07:39 +03:00

201 lines
No EOL
6.8 KiB
Groovy

apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
apply plugin: "androidx.navigation.safeargs.kotlin"
apply plugin: 'com.google.firebase.crashlytics'
apply from: "$rootDir/versioning.gradle"
def apikeyPropertiesFile = rootProject.file("apikeys.properties")
def apikeyProperties = new Properties()
apikeyProperties.load(new FileInputStream(apikeyPropertiesFile))
android {
def config = rootProject.extensions.getByName("ext")
compileSdkVersion config["compile_sdk"]
buildToolsVersion config["build_tools"]
defaultConfig {
applicationId config["application_id"]
minSdkVersion config["min_sdk"]
targetSdkVersion config["target_sdk"]
versionCode getBuildVersionCode()
versionName getBuildVersionName()
testInstrumentationRunner config["test_runner"]
}
packagingOptions {
exclude 'LICENSE.txt'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/ASL2.0'
exclude 'META-INF/NOTICE'
exclude 'META-INF/LICENSE'
}
lintOptions {
quiet true
abortOnError false
ignoreWarnings true
disable 'InvalidPackage' //Some libraries have issues with this.
disable 'OldTargetApi' //Lint gives this warning but SDK 20 would be Android L Beta.
disable 'IconDensities' //For testing purpose. This is safe to remove.
disable 'IconMissingDensityFolder' //For testing purpose. This is safe to remove.
}
buildTypes {
release {
minifyEnabled false
useProguard false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
buildConfigField("String", "AMPLITUDE_KEY", apikeyProperties['amplitude.release'])
}
debug {
applicationIdSuffix ".debug"
debuggable true
buildConfigField("String", "AMPLITUDE_KEY", apikeyProperties['amplitude.debug'])
}
}
flavorDimensions 'default'
productFlavors {
stable {
dimension 'default'
}
experimental{
dimension 'default'
}
}
sourceSets {
stable {
java {
srcDirs 'src/stable/java'
}
res {
srcDirs 'src/stable/res'
}
}
experimental {
java {
srcDirs 'src/experimental/java'
}
res {
srcDirs 'src/experimental/res'
}
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
androidExtensions {
experimental = true
}
}
dependencies {
implementation project(':domain')
implementation project(':core-models')
implementation project(':data')
implementation project(':device')
implementation project(':persistence')
implementation project(':middleware')
implementation project(':presentation')
implementation project(':clipboard')
implementation project(':core-utils')
implementation project(':core-ui')
implementation project(':library-page-icon-picker-widget')
implementation project(':library-emojifier')
implementation project(':library-syntax-highlighter')
implementation project(':analytics')
def applicationDependencies = rootProject.ext.mainApplication
def unitTestDependencies = rootProject.ext.unitTesting
def acceptanceTesting = rootProject.ext.acceptanceTesting
def databaseDependencies = rootProject.ext.db
def analyticsDependencies = rootProject.ext.analytics
def protobufDependencies = rootProject.ext.protobuf
//Compile time dependencies
kapt applicationDependencies.daggerCompiler
kapt applicationDependencies.glideCompiler
kapt applicationDependencies.permissionDispCompiler
compileOnly applicationDependencies.javaxAnnotation
compileOnly applicationDependencies.javaxInject
//Application dependencies
implementation applicationDependencies.kotlin
implementation applicationDependencies.coroutinesAndroid
implementation applicationDependencies.fragment
implementation applicationDependencies.navigation
implementation applicationDependencies.navigationUi
implementation applicationDependencies.appcompat
implementation applicationDependencies.design
implementation applicationDependencies.recyclerView
implementation applicationDependencies.constraintLayout
implementation applicationDependencies.glide
implementation applicationDependencies.dagger
implementation applicationDependencies.timber
implementation applicationDependencies.gson
implementation applicationDependencies.permissionDisp
implementation applicationDependencies.pickT
implementation applicationDependencies.emojiCompat
implementation applicationDependencies.lifecycleViewModel
implementation applicationDependencies.lifecycleLiveData
implementation databaseDependencies.room
implementation applicationDependencies.crashlytics
implementation applicationDependencies.exoPlayer
implementation analyticsDependencies.amplitude
implementation analyticsDependencies.okhttp
implementation applicationDependencies.shimmerLayout
implementation applicationDependencies.photoView
implementation applicationDependencies.zxing
implementation applicationDependencies.androidxSecurityCrypto
//Unit/Integration tests dependencies
testImplementation unitTestDependencies.androidXTestCore
testImplementation unitTestDependencies.junit
testImplementation unitTestDependencies.robolectric
testImplementation unitTestDependencies.kotlinTest
testImplementation unitTestDependencies.mockitoKotlin
//Acceptance tests dependencies
androidTestImplementation acceptanceTesting.mockitoAndroid
androidTestImplementation unitTestDependencies.mockitoKotlin
androidTestImplementation acceptanceTesting.espressoCore
androidTestImplementation acceptanceTesting.espressoContrib
androidTestImplementation acceptanceTesting.androidJUnit
androidTestImplementation unitTestDependencies.kotlinTest
androidTestImplementation acceptanceTesting.testRules
androidTestImplementation acceptanceTesting.disableAnimation
androidTestImplementation acceptanceTesting.navigationTesting
androidTestImplementation(unitTestDependencies.coroutineTesting) {
exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug"
}
debugImplementation acceptanceTesting.fragmentTesting
implementation protobufDependencies.wireRuntime
}
apply plugin: 'com.google.gms.google-services'