mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-09 17:44:57 +09:00
201 lines
No EOL
6.8 KiB
Groovy
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' |