Skip to content
Snippets Groups Projects
build.gradle 4.05 KiB
Newer Older
Taras's avatar
Taras committed
//file:noinspection GrDeprecatedAPIUsage
Taras's avatar
Taras committed
apply plugin: 'com.android.application'
apply plugin: 'org.jetbrains.kotlin.android'
apply plugin: 'androidx.navigation.safeargs.kotlin'
Taras's avatar
Taras committed
apply plugin: 'kotlin-kapt'
apply plugin: 'dagger.hilt.android.plugin'
Taras's avatar
Taras committed
android {
Taras's avatar
Taras committed
    compileSdk rootProject.ext.sdk_version
Taras's avatar
Taras committed

    defaultConfig {
Taras's avatar
Taras committed
        applicationId "org.futo.circles"
Taras's avatar
Taras committed
        minSdk rootProject.ext.min_sdk_version
        targetSdk rootProject.ext.sdk_version
Taras's avatar
Taras committed
        versionCode 34
        versionName "1.0.24"
        archivesBaseName = "circles-v${versionName}"
Taras's avatar
Taras committed

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

Taras's avatar
Taras committed
    splits {
        abi {
            enable true
            reset()
            include "x86", "x86_64", "arm64-v8a", "armeabi-v7a"
            universalApk false
        }
    }

Taras's avatar
Taras committed
    buildFeatures {
        viewBinding true
        buildConfig true
Taras's avatar
Taras committed
    }

Taras's avatar
Taras committed
    signingConfigs {
        release {
            Properties properties = new Properties()
            if (rootProject.file("signing.properties").exists()) {
                properties.load(rootProject.file("signing.properties").newDataInputStream())
            storeFile file(properties.getProperty("KEY_PATH"))
            storePassword properties.getProperty("KEY_PASSWORD")
            keyAlias properties.getProperty("ALIAS_NAME")
            keyPassword properties.getProperty("KEY_PASSWORD")
        }
    }

Taras's avatar
Taras committed
    buildTypes {
        debug {
            minifyEnabled false
        }
        release {
            signingConfig signingConfigs.release
Taras's avatar
Taras committed
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
Taras's avatar
Taras committed

    def flavor_dimension_name = "store"
Taras's avatar
Taras committed
    flavorDimensions.add(flavor_dimension_name)
Taras's avatar
Taras committed
    productFlavors {
        gplay {
            dimension flavor_dimension_name
        }
        fdroid {
            dimension flavor_dimension_name
        }
    }

Taras's avatar
Taras committed
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_17
        targetCompatibility JavaVersion.VERSION_17
Taras's avatar
Taras committed
    }
    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_17.toString()
Taras's avatar
Taras committed
        freeCompilerArgs += [
Taras's avatar
Taras committed
                "-opt-in=kotlinx.coroutines.FlowPreview",
                "-opt-in=kotlinx.coroutines.ExperimentalCoroutinesApi",
Taras's avatar
Taras committed
        ]
Taras's avatar
Taras committed
    }
Taras's avatar
Taras committed
    namespace 'org.futo.circles'
Taras's avatar
Taras committed
}

Taras's avatar
Taras committed
ext.abiCodes = ['armeabi-v7a': 1, 'x86': 2, 'x86_64': 3, 'arm64-v8a': 4]

import com.android.build.OutputFile

android.applicationVariants.configureEach { variant ->
    variant.outputs.each { output ->
        def baseAbiVersionCode = project.ext.abiCodes.get(output.getFilter(OutputFile.ABI))
        if (baseAbiVersionCode != null) {
            output.versionCodeOverride =
Taras's avatar
Taras committed
                    variant.versionCode * 100 + baseAbiVersionCode
Taras's avatar
Taras committed
dependencies {
    implementation project(path: ':core')
    implementation project(path: ':auth')
Taras's avatar
Taras committed
    implementation project(path: ':gallery')
Taras's avatar
Taras committed

Taras's avatar
Taras committed
    //Firebase
    gplayImplementation platform('com.google.firebase:firebase-bom:32.7.0')
Taras's avatar
Taras committed
    gplayImplementation 'com.google.firebase:firebase-crashlytics-ktx'
Taras's avatar
Taras committed
    gplayImplementation 'com.google.firebase:firebase-analytics-ktx'
    gplayImplementation 'com.google.firebase:firebase-messaging-ktx'
Taras's avatar
Taras committed
    // UnifiedPush
Taras's avatar
Taras committed
    implementation 'com.github.UnifiedPush:android-connector:2.1.1'
    implementation 'com.vanniktech:emoji-google:0.18.0'
    //Log
    implementation 'com.jakewharton.timber:timber:5.0.1'

Taras's avatar
Taras committed
    //Hilt
Taras's avatar
Taras committed
    implementation "com.google.dagger:hilt-android:$rootProject.ext.hilt_version"
    kapt "com.google.dagger:hilt-compiler:$rootProject.ext.hilt_version"
Taras's avatar
Taras committed

Taras's avatar
Taras committed
    //test
    testImplementation 'junit:junit:4.13.2'
Taras's avatar
Taras committed
    androidTestImplementation 'androidx.test.ext:junit:1.1.5'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
Taras's avatar
Taras committed
kapt {
    correctErrorTypes = true
}

Taras's avatar
Taras committed
if (getGradle().getStartParameter().getTaskRequests().toString().toLowerCase().contains("gplay")) {
Taras's avatar
Taras committed
    apply plugin: 'com.google.gms.google-services'
    apply plugin: 'com.google.firebase.crashlytics'
Taras's avatar
Taras committed
}