mirror of
https://github.com/anyproto/anytype-kotlin.git
synced 2025-06-08 05:47:05 +09:00
258 lines
No EOL
9 KiB
Groovy
258 lines
No EOL
9 KiB
Groovy
plugins {
|
|
id "com.android.application"
|
|
id "kotlin-android"
|
|
id "kotlin-kapt"
|
|
alias(libs.plugins.compose.compiler)
|
|
id "com.google.firebase.appdistribution"
|
|
}
|
|
|
|
if (rootProject.ext.onCi) {
|
|
apply plugin: "com.github.hierynomus.license-report"
|
|
downloadLicenses {
|
|
dependencyConfiguration = 'all'
|
|
includeProjectDependencies = true
|
|
}
|
|
}
|
|
|
|
apply from: "$rootDir/versioning.gradle"
|
|
|
|
def apikeyPropertiesFile = rootProject.file("apikeys.properties")
|
|
def apikeyProperties = new Properties()
|
|
apikeyProperties.load(new FileInputStream(apikeyPropertiesFile))
|
|
|
|
def useReleaseKeystore = rootProject.file("scripts/release/app-release.jks").exists()
|
|
|
|
def localProperties = new Properties()
|
|
localProperties.with {
|
|
def lp = "local.properties"
|
|
if (new File(lp).exists()) it.load(new FileInputStream(lp))
|
|
}
|
|
|
|
android {
|
|
def config = rootProject.ext
|
|
|
|
compileSdkVersion config.compile_sdk
|
|
|
|
androidResources {
|
|
generateLocaleConfig true
|
|
}
|
|
|
|
defaultConfig {
|
|
applicationId config.application_id
|
|
minSdkVersion config.min_sdk
|
|
targetSdkVersion config.target_sdk
|
|
versionCode getBuildVersionCode()
|
|
versionName getBuildVersionName()
|
|
testInstrumentationRunner config.test_runner
|
|
buildConfigField "boolean", "USE_NEW_WINDOW_INSET_API", "true"
|
|
buildConfigField "boolean", "USE_EDGE_TO_EDGE", "true"
|
|
buildConfigField "boolean", "LOG_FROM_MW_LIBRARY", localProperties.getProperty("LOG_FROM_MW_LIBRARY", "false")
|
|
buildConfigField "boolean", "LOG_MW_INTERACTION", localProperties.getProperty("LOG_MW_INTERACTION", "false")
|
|
buildConfigField "boolean", "LOG_DASHBOARD_REDUCER", localProperties.getProperty("LOG_DASHBOARD_REDUCER", "false")
|
|
buildConfigField "boolean", "LOG_EDITOR_VIEWMODEL_EVENTS", localProperties.getProperty("LOG_EDITOR_VIEWMODEL_EVENTS", "false")
|
|
buildConfigField "boolean", "LOG_EDITOR_CONTROL_PANEL", localProperties.getProperty("LOG_EDITOR_CONTROL_PANEL", "false")
|
|
buildConfigField "boolean", "ENABLE_STRICT_MODE", "false"
|
|
resValue "string", "SENTRY_DSN", config.sentryApiKey
|
|
}
|
|
|
|
packagingOptions {
|
|
resources {
|
|
excludes += ['LICENSE.txt', 'META-INF/DEPENDENCIES', 'META-INF/ASL2.0', 'META-INF/NOTICE', 'META-INF/LICENSE']
|
|
}
|
|
}
|
|
|
|
signingConfigs {
|
|
release {
|
|
if (useReleaseKeystore) {
|
|
def keystorePropertiesFile = rootProject.file("signing.properties")
|
|
def keystoreProperties = new Properties()
|
|
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
|
|
|
storeFile rootProject.file("scripts/release/app-release.jks")
|
|
keyAlias keystoreProperties['RELEASE_KEY_ALIAS']
|
|
keyPassword keystoreProperties['RELEASE_KEY_PASSWORD']
|
|
storePassword keystoreProperties['RELEASE_STORE_PASSWORD']
|
|
v1SigningEnabled true
|
|
v2SigningEnabled true
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
shrinkResources true
|
|
debuggable false
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
buildConfigField("String", "AMPLITUDE_KEY", apikeyProperties['amplitude.release'])
|
|
if (useReleaseKeystore) {
|
|
signingConfig signingConfigs.release
|
|
} else {
|
|
signingConfig signingConfigs.debug
|
|
}
|
|
}
|
|
|
|
debug {
|
|
applicationIdSuffix ".debug"
|
|
debuggable true
|
|
buildConfigField("String", "AMPLITUDE_KEY", apikeyProperties['amplitude.debug'])
|
|
//signingConfig signingConfigs.debug
|
|
firebaseAppDistribution {
|
|
artifactType = "AAB"
|
|
groups = "anytype-q&a, product-review, nightly"
|
|
serviceCredentialsFile = "$rootDir/scripts/distribution/anytype-debug-service-account-key.json"
|
|
}
|
|
}
|
|
|
|
applicationVariants.all {
|
|
variant ->
|
|
if (variant.name == 'release') {
|
|
variant.outputs.each {
|
|
output ->
|
|
project.ext { appName = 'anytype' }
|
|
def newName = output.outputFile.name
|
|
newName = newName.replace("app-", "$project.ext.appName-$variant.versionName-")
|
|
newName = newName.replace("-release", "")
|
|
newName = newName.replace("-universal", "")
|
|
output.outputFileName = newName
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
buildFeatures {
|
|
viewBinding true
|
|
compose true
|
|
}
|
|
|
|
splits {
|
|
// Configures multiple APKs based on ABI.
|
|
abi {
|
|
// Enables building multiple APKs per ABI.
|
|
enable false
|
|
reset()
|
|
include "armeabi-v7a", "arm64-v8a"
|
|
universalApk false
|
|
}
|
|
}
|
|
|
|
ndkVersion "23.2.8568313"
|
|
namespace 'com.anytypeio.anytype'
|
|
}
|
|
|
|
dependencies {
|
|
|
|
implementation project(':domain')
|
|
implementation project(':core-models')
|
|
implementation project(':localization')
|
|
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')
|
|
implementation project(':ui-settings')
|
|
implementation project(':crash-reporting')
|
|
implementation project(':payments')
|
|
implementation project(':gallery-experience')
|
|
|
|
//Compile time dependencies
|
|
kapt libs.daggerCompiler
|
|
kapt libs.glideCompiler
|
|
compileOnly libs.javaxAnnotation
|
|
compileOnly libs.javaxInject
|
|
|
|
//Application dependencies
|
|
implementation libs.kotlin
|
|
implementation libs.coroutinesAndroid
|
|
implementation libs.fragment
|
|
implementation libs.navigation
|
|
implementation libs.navigationUi
|
|
implementation libs.appcompat
|
|
implementation libs.design
|
|
implementation libs.recyclerView
|
|
implementation libs.constraintLayout
|
|
implementation libs.composeConstraintLayout
|
|
implementation libs.glide
|
|
implementation libs.coilCompose
|
|
implementation libs.dagger
|
|
implementation libs.timber
|
|
implementation libs.gson
|
|
implementation libs.pickT
|
|
implementation libs.emojiCompat
|
|
implementation libs.navigationCompose
|
|
implementation libs.playBilling
|
|
|
|
implementation libs.lifecycleViewModel
|
|
implementation libs.lifecycleRuntime
|
|
implementation libs.lifecycleLiveData
|
|
implementation libs.lifecycleCompose
|
|
|
|
implementation libs.compose
|
|
implementation libs.composeFoundation
|
|
implementation libs.composeMaterial
|
|
implementation libs.composeMaterial3
|
|
implementation libs.composeToolingPreview
|
|
implementation libs.composeAccompanistPager
|
|
implementation libs.composeAccompanistThemeAdapter
|
|
implementation libs.composeAccompanistPagerIndicators
|
|
implementation libs.composeAccompanistPermissions
|
|
implementation libs.composeAccompanistNavigation
|
|
implementation libs.preference
|
|
implementation libs.activityCompose
|
|
implementation libs.composeReorderable
|
|
|
|
implementation libs.room
|
|
implementation libs.appUpdater
|
|
|
|
implementation libs.exoPlayerCore
|
|
implementation libs.exoPlayerUi
|
|
|
|
implementation libs.amplitude
|
|
|
|
implementation libs.shimmerLayout
|
|
implementation libs.photoView
|
|
implementation libs.composeQrCode
|
|
implementation libs.zxing
|
|
|
|
implementation libs.androidxSecurityCrypto
|
|
implementation libs.middleware
|
|
|
|
implementation libs.wireRuntime
|
|
|
|
//Unit/Integration tests dependencies
|
|
testImplementation libs.androidXTestCore
|
|
testImplementation libs.junit
|
|
testImplementation libs.robolectric
|
|
testImplementation libs.kotlinTest
|
|
testImplementation libs.mockitoKotlin
|
|
testImplementation project(':test:utils')
|
|
|
|
//Acceptance tests dependencies
|
|
androidTestImplementation project(':test:android-utils')
|
|
androidTestImplementation libs.mockitoAndroid
|
|
androidTestImplementation libs.mockitoKotlin
|
|
androidTestImplementation libs.espressoContrib
|
|
androidTestImplementation libs.androidJUnit
|
|
androidTestImplementation libs.kotlinTest
|
|
androidTestImplementation libs.testRules
|
|
androidTestImplementation libs.disableAnimation
|
|
androidTestImplementation libs.navigationTesting
|
|
androidTestImplementation project(":test:utils")
|
|
androidTestImplementation project(":test:core-models-stub")
|
|
|
|
androidTestImplementation(libs.coroutineTesting) {
|
|
exclude group: "org.jetbrains.kotlinx", module: "kotlinx-coroutines-debug"
|
|
}
|
|
|
|
debugImplementation libs.fragmentTesting
|
|
debugImplementation libs.composeTooling
|
|
}
|
|
|
|
apply plugin: 'com.google.gms.google-services' |