blob: bb887e2d8ef66987137c3952d164a1c1cd929dee [file] [log] [blame]
/*
* SPDX-FileCopyrightText: 2022-2023 The LineageOS Project
* SPDX-License-Identifier: Apache-2.0
*/
import org.lineageos.generatebp.GenerateBpPlugin
import org.lineageos.generatebp.GenerateBpPluginExtension
import org.lineageos.generatebp.models.Module
plugins {
id("com.android.application")
id("kotlin-android")
}
apply {
plugin<GenerateBpPlugin>()
}
buildscript {
repositories {
maven("https://raw.githubusercontent.com/lineage-next/gradle-generatebp/v1.1/.m2")
}
dependencies {
classpath("org.lineageos:gradle-generatebp:+")
}
}
android {
compileSdk = 33
defaultConfig {
applicationId = "org.lineageos.aperture"
minSdk = 26
targetSdk = 33
versionCode = 1
versionName = "1.0"
}
buildTypes {
getByName("release") {
// Enables code shrinking, obfuscation, and optimization.
isMinifyEnabled = true
// Enables resource shrinking.
isShrinkResources = true
// Includes the default ProGuard rules files.
setProguardFiles(
listOf(
getDefaultProguardFile("proguard-android-optimize.txt"),
"proguard-rules.pro"
)
)
}
getByName("debug") {
// Append .dev to package name so we won't conflict with AOSP build.
applicationIdSuffix = ".dev"
}
}
compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = "1.8"
}
}
dependencies {
// Align versions of all Kotlin components
implementation(platform("org.jetbrains.kotlin:kotlin-bom:1.8.0"))
implementation("androidx.core:core-ktx:1.10.1")
implementation("androidx.activity:activity-ktx:1.7.2")
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("androidx.constraintlayout:constraintlayout:2.1.4")
implementation("androidx.exifinterface:exifinterface:1.3.6")
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1")
implementation("androidx.preference:preference:1.2.0")
implementation("com.google.android.material:material:1.9.0")
// CameraX core library using the camera2 implementation
val cameraxVersion = "1.4.0-alpha01"
// The following line is optional, as the core library is included indirectly by camera-camera2
implementation("androidx.camera:camera-core:${cameraxVersion}")
implementation("androidx.camera:camera-camera2:${cameraxVersion}")
// If you want to additionally use the CameraX Lifecycle library
implementation("androidx.camera:camera-lifecycle:${cameraxVersion}")
// If you want to additionally use the CameraX VideoCapture library
implementation("androidx.camera:camera-video:${cameraxVersion}")
// If you want to additionally use the CameraX View class
implementation("androidx.camera:camera-view:${cameraxVersion}")
// If you want to additionally use the CameraX Extensions library
implementation("androidx.camera:camera-extensions:${cameraxVersion}")
// Media3
val media3Version = "1.1.1"
// For media playback using ExoPlayer
implementation("androidx.media3:media3-exoplayer:$media3Version")
// For building media playback UIs
implementation("androidx.media3:media3-ui:$media3Version")
// ZXing
implementation("com.google.zxing:core:3.5.2")
// Coil
implementation("io.coil-kt:coil:2.2.2")
implementation("io.coil-kt:coil-video:2.2.2")
}
configure<GenerateBpPluginExtension> {
targetSdk.set(android.defaultConfig.targetSdk!!)
availableInAOSP.set { module: Module ->
when {
module.group.startsWith("androidx") -> {
// We provide our own androidx.{camera,media3} & lifecycle-common
!module.group.startsWith("androidx.camera") &&
!module.group.startsWith("androidx.media3") &&
module.name != "lifecycle-common"
}
module.group.startsWith("org.jetbrains") -> true
module.group == "com.google.auto.value" -> true
module.group == "com.google.guava" -> true
module.group == "junit" -> true
else -> false
}
}
}