mirror of
https://github.com/libre-tube/LibreTube.git
synced 2024-12-15 14:50:30 +05:30
136 lines
3.7 KiB
Groovy
136 lines
3.7 KiB
Groovy
import java.time.Instant
|
|
|
|
plugins {
|
|
id 'com.android.application'
|
|
id 'kotlin-android'
|
|
id 'kotlin-kapt'
|
|
id 'kotlinx-serialization'
|
|
id 'kotlin-parcelize'
|
|
}
|
|
|
|
android {
|
|
compileSdk 33
|
|
|
|
defaultConfig {
|
|
applicationId 'com.github.libretube'
|
|
minSdk 21
|
|
targetSdk 33
|
|
versionCode 38
|
|
versionName '0.16.1'
|
|
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
|
resValue "string", "app_name", "LibreTube"
|
|
|
|
javaCompileOptions {
|
|
annotationProcessorOptions {
|
|
arguments += ["room.schemaLocation": "$projectDir/schemas".toString()]
|
|
}
|
|
}
|
|
}
|
|
|
|
buildFeatures {
|
|
viewBinding true
|
|
}
|
|
|
|
applicationVariants.all { variant ->
|
|
// use the date as version for debug builds
|
|
if (variant.name == 'debug') {
|
|
variant.outputs.each { output ->
|
|
output.versionCodeOverride = getUnixTime()
|
|
}
|
|
}
|
|
}
|
|
|
|
buildTypes {
|
|
release {
|
|
minifyEnabled true
|
|
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
|
|
}
|
|
|
|
debug {
|
|
debuggable true
|
|
applicationIdSuffix ".debug"
|
|
resValue "string", "app_name", "LibreTube Debug"
|
|
}
|
|
}
|
|
compileOptions {
|
|
coreLibraryDesugaringEnabled true
|
|
sourceCompatibility JavaVersion.VERSION_17
|
|
targetCompatibility JavaVersion.VERSION_17
|
|
}
|
|
kotlinOptions {
|
|
jvmTarget = JavaVersion.VERSION_17
|
|
}
|
|
splits {
|
|
abi {
|
|
enable true
|
|
reset()
|
|
include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
|
|
universalApk true
|
|
|
|
}
|
|
}
|
|
packagingOptions {
|
|
jniLibs {
|
|
excludes += ['lib/armeabi-v7a/*_neon.so']
|
|
}
|
|
}
|
|
namespace 'com.github.libretube'
|
|
}
|
|
|
|
dependencies {
|
|
//debugImplementation libs.square.leakcanary
|
|
|
|
/* Android Core */
|
|
implementation libs.androidx.activity
|
|
implementation libs.androidx.appcompat
|
|
implementation libs.androidx.core
|
|
implementation libs.androidx.constraintlayout
|
|
implementation libs.androidx.fragment
|
|
implementation libs.androidx.legacySupport
|
|
implementation libs.androidx.navigation.fragment
|
|
implementation libs.androidx.navigation.ui
|
|
implementation libs.androidx.preference
|
|
implementation libs.androidx.work.runtime
|
|
|
|
/* Android Lifecycle */
|
|
implementation libs.lifecycle.viewmodel
|
|
implementation libs.lifecycle.runtime
|
|
implementation libs.lifecycle.livedata
|
|
implementation libs.lifecycle.service
|
|
|
|
/* Testing */
|
|
androidTestImplementation libs.androidx.test.junit
|
|
androidTestImplementation libs.androidx.test.espressoCore
|
|
|
|
/* Design */
|
|
implementation libs.material
|
|
|
|
/* ExoPlayer */
|
|
implementation libs.androidx.media3.exoplayer
|
|
implementation libs.androidx.media3.ui
|
|
implementation libs.androidx.media3.exoplayer.hls
|
|
implementation libs.androidx.media3.exoplayer.dash
|
|
implementation libs.androidx.media3.session
|
|
implementation(libs.androidx.media3.datasource.cronet) { exclude group: 'com.google.android.gms' }
|
|
|
|
/* Retrofit and Kotlinx Serialization */
|
|
implementation libs.square.retrofit
|
|
implementation libs.kotlinx.serialization
|
|
implementation libs.kotlinx.datetime
|
|
implementation libs.kotlinx.serialization.retrofit
|
|
|
|
/* Cronet and Coil */
|
|
coreLibraryDesugaring libs.desugaring
|
|
implementation libs.cronet.embedded
|
|
implementation libs.cronet.okhttp
|
|
implementation libs.coil
|
|
|
|
/* Room */
|
|
kapt libs.room.compiler
|
|
implementation libs.room
|
|
}
|
|
|
|
static def getUnixTime() {
|
|
return Instant.now().getEpochSecond()
|
|
}
|