Twidere-App-Android-Twitter.../twidere/build.gradle

329 lines
14 KiB
Groovy
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import fr.avianey.androidsvgdrawable.gradle.SvgDrawableTask
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'androidsvgdrawable'
buildscript {
repositories {
jcenter()
}
dependencies {
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}"
classpath "org.jetbrains.kotlin:kotlin-android-extensions:${kotlinVersion}"
classpath("fr.avianey.androidsvgdrawable:gradle-plugin:${pluginVersions['AndroidSvgDrawable']}") {
// should be excluded to avoid conflict
exclude group: 'xerces'
}
// START Non-FOSS component
classpath "com.google.gms:google-services:${pluginVersions['PlayServices']}"
// END Non-FOSS component
}
}
android {
compileSdkVersion globalCompileSdkVersion
buildToolsVersion globalBuildToolsVersion
defaultConfig {
applicationId 'org.mariotaku.twidere'
minSdkVersion 14
targetSdkVersion 27
versionCode projectVersionCode
versionName projectVersionName
multiDexEnabled true
buildConfigField 'boolean', 'SHOW_CUSTOM_TOKEN_DIALOG', 'Boolean.parseBoolean("false")'
testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
dexOptions {
// This may break application!
keepRuntimeAnnotatedClasses false
}
aaptOptions {
additionalParameters '--no-version-vectors'
}
kapt {
arguments {
arg("room.schemaLocation", "$projectDir/schemas")
}
}
dataBinding {
enabled = true
}
flavorDimensions 'channel'
productFlavors {
// START Non-FOSS component
google {
dimension 'channel'
}
// END Non-FOSS component
fdroid {
dimension 'channel'
}
}
def file = rootProject.file('private/signing.properties')
def hasSigningProps = file.exists()
signingConfigs {
if (hasSigningProps) {
twidere {
Properties signingProp = new Properties()
signingProp.load(file.newInputStream())
storeFile = rootProject.file(signingProp.get('storeFile'))
storePassword = (String) signingProp.get('storePassword')
keyAlias = (String) signingProp.get('keyAlias')
keyPassword = (String) signingProp.get('keyPassword')
}
}
}
buildTypes {
debug {
if (hasSigningProps) {
signingConfig signingConfigs.twidere
}
multiDexEnabled true
minifyEnabled false
shrinkResources false
resValue("bool", "debug", "true")
}
release {
if (hasSigningProps) {
signingConfig signingConfigs.twidere
}
multiDexEnabled true
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
resValue("bool", "debug", "false")
}
}
sourceSets.each {
it.res.srcDirs += project.files("src/${it.name}/res-localized")
it.res.srcDirs += project.files("src/${it.name}/res-svg2png")
it.res.srcDirs += project.files("src/${it.name}/res-preview")
it.java.srcDirs += "src/${it.name}/kotlin"
}
testOptions {
unitTests.returnDefaultValues = true
}
lintOptions {
abortOnError false
lintConfig rootProject.file('lint.xml')
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/DEPENDENCIES'
exclude 'META-INF/README'
exclude 'META-INF/INDEX.LIST'
exclude 'META-INF/maven/**'
exclude 'META-INF/*.kotlin_module'
exclude 'kotlin/**.kotlin_builtins'
exclude 'org/osmdroid/**.png'
exclude 'javax/annotation/**.java'
exclude 'generated-sources/**'
exclude 'jsr305_annotations/**'
exclude 'error_prone/**'
exclude 'third_party/java_src/**'
exclude 'sdk-version.txt'
exclude 'build-data.properties'
}
}
androidExtensions {
experimental = true
}
repositories {
mavenLocal()
maven { url 'https://s3.amazonaws.com/repo.commonsware.com' }
flatDir { dirs "$projectDir/lib" }
}
dependencies {
// wearApp project(':twidere.wear')
kapt "com.bluelinelabs:logansquare-compiler:${libVersions['LoganSquare']}"
kapt "com.hannesdorfmann.parcelableplease:processor:${libVersions['ParcelablePlease']}"
kapt "com.google.dagger:dagger-compiler:${libVersions['Dagger']}"
kapt "com.github.mariotaku.ObjectCursor:processor:${libVersions['ObjectCursor']}"
kapt "com.github.bumptech.glide:compiler:${libVersions['Glide']}"
kapt "android.arch.persistence.room:compiler:${libVersions['Room']}"
implementation project(':twidere.component.common')
implementation project(':twidere.component.nyan')
// START Non-FOSS component
googleImplementation "com.google.android.gms:play-services-maps:${libVersions['PlayServices']}"
googleImplementation "com.google.android.gms:play-services-auth:${libVersions['PlayServices']}"
googleImplementation "com.google.android.gms:play-services-ads:${libVersions['PlayServices']}"
googleImplementation "com.google.maps.android:android-maps-utils:${libVersions['MapsUtils']}"
googleImplementation "com.android.billingclient:billing:${libVersions['PlayBilling']}"
googleImplementation "com.dropbox.core:dropbox-core-sdk:${libVersions['DropboxCoreSdk']}"
googleImplementation("com.google.apis:google-api-services-drive:${libVersions['GoogleDriveApi']}") {
exclude group: 'org.apache.httpcomponents'
}
// END Non-FOSS component
fdroidImplementation "org.osmdroid:osmdroid-android:${libVersions['OSMDroid']}"
fdroidImplementation "ch.acra:acra:${libVersions['ACRA']}"
debugImplementation "com.facebook.stetho:stetho:${libVersions['Stetho']}"
debugImplementation "com.facebook.stetho:stetho-okhttp3:${libVersions['Stetho']}"
debugImplementation "com.github.mariotaku:StethoBeanShellREPL:${libVersions['StethoBeanShellREPL']}"
debugImplementation('com.jayway.jsonpath:json-path:2.2.0') {
exclude group: 'net.minidev', module: 'json-smart'
}
// Stetho dependency, see https://g.co/androidstudio/app-test-app-conflict
debugImplementation "com.google.code.findbugs:jsr305:3.0.2"
compileOnly 'javax.annotation:jsr250-api:1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation "com.android.support:support-annotations:${libVersions['SupportLib']}"
androidTestImplementation "com.android.support.test:runner:${libVersions['SupportTest']}"
androidTestImplementation "com.android.support.test:rules:${libVersions['SupportTest']}"
// https://g.co/androidstudio/app-test-app-conflict
androidTestImplementation "com.google.code.findbugs:jsr305:3.0.2"
implementation "android.arch.lifecycle:extensions:${libVersions['ArchLifecycleExtensions']}"
implementation "android.arch.paging:runtime:${libVersions['ArchPaging']}"
implementation "android.arch.persistence.room:runtime:${libVersions['Room']}"
implementation "android.arch.work:work-runtime-ktx:${libVersions['WorkManager']}"
implementation "com.android.support:multidex:${libVersions['MultiDex']}"
implementation "com.android.support:support-annotations:${libVersions['SupportLib']}"
implementation "com.android.support:support-compat:${libVersions['SupportLib']}"
implementation "com.android.support:support-core-utils:${libVersions['SupportLib']}"
implementation "com.android.support:support-core-ui:${libVersions['SupportLib']}"
implementation "com.android.support:support-v13:${libVersions['SupportLib']}"
implementation "com.android.support:appcompat-v7:${libVersions['SupportLib']}"
implementation "com.android.support:cardview-v7:${libVersions['SupportLib']}"
implementation "com.android.support:recyclerview-v7:${libVersions['SupportLib']}"
implementation "com.android.support:palette-v7:${libVersions['SupportLib']}"
implementation "com.android.support:preference-v14:${libVersions['SupportLib']}"
implementation "com.android.support:customtabs:${libVersions['SupportLib']}"
implementation "com.android.support:design:${libVersions['SupportLib']}"
implementation "com.android.support:exifinterface:${libVersions['SupportLib']}"
implementation "com.android.support.constraint:constraint-layout:${libVersions['ConstraintLayout']}"
implementation "com.twitter:twitter-text:${libVersions['TwitterText']}"
implementation 'com.davemorrissey.labs:subsampling-scale-image-view:3.9.0'
implementation 'com.squareup:otto:1.3.8'
implementation 'dnsjava:dnsjava:2.1.8'
implementation 'com.commonsware.cwac:layouts:0.4.3'
implementation 'com.rengwuxian.materialedittext:library:2.1.4'
implementation 'com.pnikosis:materialish-progress:1.7'
implementation "com.github.mariotaku:MessageBubbleView:${libVersions['MessageBubbleView']}"
implementation 'com.github.mariotaku:DragSortListView:0.6.1'
implementation 'com.github.uucky:ColorPicker-Android:0.9.7@aar'
implementation "pl.droidsonroids.gif:android-gif-drawable:${libVersions['AndroidGIFDrawable']}"
implementation 'com.sprylab.android.texturevideoview:texturevideoview:1.2.1'
implementation 'com.squareup:pollexor:2.0.4'
implementation "org.apache.james:apache-mime4j-core:${libVersions['Mime4J']}"
implementation "org.apache.james:apache-mime4j-storage:${libVersions['Mime4J']}"
implementation "com.bluelinelabs:logansquare:${libVersions['LoganSquare']}"
implementation "com.hannesdorfmann.parcelableplease:annotation:${libVersions['ParcelablePlease']}"
implementation "com.github.mariotaku:PickNCrop:${libVersions['PickNCrop']}"
implementation "com.github.mariotaku.RestFu:library:${libVersions['RestFu']}"
implementation "com.github.mariotaku.RestFu:oauth:${libVersions['RestFu']}"
implementation "com.github.mariotaku.RestFu:oauth2:${libVersions['RestFu']}"
implementation "com.github.mariotaku.RestFu:okhttp3:${libVersions['RestFu']}"
implementation "com.github.mariotaku.RestFu:logansquare:${libVersions['RestFu']}"
implementation "com.squareup.okhttp3:okhttp:${libVersions['OkHttp']}"
implementation 'com.lnikkila:extendedtouchview:0.1.1'
implementation "com.google.dagger:dagger:${libVersions['Dagger']}"
implementation 'org.attoparser:attoparser:2.0.4.RELEASE'
implementation 'com.getkeepsafe.taptargetview:taptargetview:1.9.1'
implementation 'net.ypresto.androidtranscoder:android-transcoder:0.2.0'
implementation "com.google.android.exoplayer:exoplayer-core:${libVersions['Exoplayer']}"
implementation "com.google.android.exoplayer:exoplayer-ui:${libVersions['Exoplayer']}"
implementation "com.google.android.exoplayer:extension-okhttp:${libVersions['Exoplayer']}"
implementation "com.github.bumptech.glide:glide:${libVersions['Glide']}"
implementation "com.github.bumptech.glide:okhttp3-integration:${libVersions['GlideOkHttp3']}@aar"
implementation "com.theartofdev.edmodo:android-image-cropper:${libVersions['AndroidImageCropper']}"
implementation "com.github.mariotaku.MediaViewerLibrary:base:${libVersions['MediaViewerLibrary']}"
implementation "com.github.mariotaku.MediaViewerLibrary:subsample-image-view:${libVersions['MediaViewerLibrary']}"
implementation "com.github.mariotaku:SQLiteQB:${libVersions['SQLiteQB']}"
implementation "com.github.mariotaku.ObjectCursor:core:${libVersions['ObjectCursor']}"
implementation "com.github.mariotaku.ExportablePreferences:core:${libVersions['ExportablePreferences']}"
implementation "com.github.mariotaku:AbstractTask:${libVersions['AbstractTask']}"
implementation "com.github.mariotaku.CommonsLibrary:collection:${libVersions['MariotakuCommons']}"
implementation "com.github.mariotaku.CommonsLibrary:io:${libVersions['MariotakuCommons']}"
implementation "com.github.mariotaku.CommonsLibrary:logansquare:${libVersions['MariotakuCommons']}"
implementation "com.github.mariotaku.CommonsLibrary:objectcursor:${libVersions['MariotakuCommons']}"
implementation "com.github.mariotaku.CommonsLibrary:parcel:${libVersions['MariotakuCommons']}"
implementation "com.github.mariotaku.CommonsLibrary:text:${libVersions['MariotakuCommons']}"
implementation "com.github.mariotaku.CommonsLibrary:text-kotlin:${libVersions['MariotakuCommons']}"
implementation "com.github.mariotaku:KPreferences:${libVersions['KPreferences']}"
implementation "com.github.mariotaku:Chameleon:${libVersions['Chameleon']}"
implementation "com.github.mariotaku.UniqR:android:${libVersions['UniqR']}"
implementation "org.jetbrains.kotlin:kotlin-stdlib:${libVersions['Kotlin']}"
implementation "nl.komponents.kovenant:kovenant:${libVersions['Kovenant']}"
implementation "nl.komponents.kovenant:kovenant-android:${libVersions['Kovenant']}"
implementation "nl.komponents.kovenant:kovenant-functional:${libVersions['Kovenant']}"
implementation "nl.komponents.kovenant:kovenant-combine:${libVersions['Kovenant']}"
}
task svgToDrawable(type: SvgDrawableTask) {
// specify where to pick SVG from
from = files(android.sourceSets.collect { "src/${it.name}/svg/drawable" })
// specify the android res folder
to = file('src/main/res-svg2png')
// override files only if necessary
overwriteMode = 'ifModified'
// let generate PNG for the following densities only
targetedDensities = ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi']
// relative path of the file specifying nine patch specs
ninePatchConfig = file('src/main/svg/drawable/9patch.json')
// output format of the generated resources
outputFormat = 'PNG'
outputType = 'drawable'
}
task svgToMipmap(type: SvgDrawableTask) {
// specify where to pick SVG from
from = files(android.sourceSets.collect { "src/${it.name}/svg/mipmap" })
// specify the android res folder
to = file('src/main/res-svg2png')
// override files only if necessary
overwriteMode = 'ifModified'
// let generate PNG for the following densities only
targetedDensities = ['hdpi', 'mdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi']
// output format of the generated resources
outputFormat = 'PNG'
outputType = 'mipmap'
}
// START Non-FOSS component
apply plugin: 'com.google.gms.google-services'
// END Non-FOSS component