import com.google.protobuf.gradle.id import com.google.protobuf.gradle.proto plugins { alias(libs.plugins.android.application) alias(libs.plugins.kotlin.android) alias(libs.plugins.compose.compiler) kotlin("plugin.serialization") version "2.0.20" id("com.google.devtools.ksp") id("com.google.protobuf") version "0.9.4" id("com.google.gms.google-services") alias(libs.plugins.google.firebase.crashlytics) id("com.google.dagger.hilt.android") } android { namespace = "ru.n08i40k.polytechnic.next" compileSdk = 35 androidResources { @Suppress("UnstableApiUsage") generateLocaleConfig = true } defaultConfig { applicationId = "ru.n08i40k.polytechnic.next" minSdk = 26 targetSdk = 35 versionCode = 2 versionName = "1.1" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary = true } } buildTypes { release { isMinifyEnabled = false proguardFiles( getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro" ) } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.1" } packaging { resources { excludes += "/META-INF/{AL2.0,LGPL2.1}" } } sourceSets { getByName("main") { proto { srcDir("src/main/proto") } } getByName("test") { proto { srcDir("src/test/proto") } } getByName("androidTest") { proto { srcDir("src/androidTest/proto") } } } } dependencies { implementation(libs.hilt.android) ksp(libs.hilt.android.compiler) implementation(libs.androidx.hilt.navigation.compose) implementation(platform(libs.firebase.bom)) implementation(libs.firebase.analytics) implementation(libs.androidx.datastore) implementation(libs.protobuf.lite) implementation(libs.accompanist.swiperefresh) implementation(libs.kotlinx.serialization.json) implementation(libs.androidx.core.ktx) implementation(libs.androidx.lifecycle.runtime.ktx) implementation(libs.androidx.activity.compose) implementation(platform(libs.androidx.compose.bom)) implementation(libs.androidx.ui) implementation(libs.androidx.ui.graphics) implementation(libs.androidx.ui.tooling.preview) implementation(libs.androidx.material3) implementation(libs.volley) implementation(libs.androidx.navigation.compose) implementation(libs.firebase.crashlytics) testImplementation(libs.junit) androidTestImplementation(libs.androidx.junit) androidTestImplementation(libs.androidx.espresso.core) androidTestImplementation(platform(libs.androidx.compose.bom)) androidTestImplementation(libs.androidx.ui.test.junit4) debugImplementation(libs.androidx.ui.tooling) debugImplementation(libs.androidx.ui.test.manifest) } protobuf { protoc { artifact = "com.google.protobuf:protoc:3.6.1" } plugins { id("javalite") { artifact = "com.google.protobuf:protoc-gen-javalite:3.0.0" } } generateProtoTasks { all().forEach { task -> task.plugins { id("javalite") { } } } } }