plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-kapt' id 'org.jetbrains.kotlin.android' } android { compileSdk 30 buildToolsVersion "30.0.3" defaultConfig { applicationId "com.pixelized.biblib" minSdk 23 targetSdk 30 versionCode generateVersionCode() versionName "0.1.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { useSupportLibrary true } } signingConfigs { debug { storeFile file(project.properties["PIXELIZED_DEBUG_STORE_FILE"]) storePassword project.properties["PIXELIZED_DEBUG_STORE_PASSWORD"] keyAlias project.properties["PIXELIZED_DEBUG_KEY_ALIAS"] keyPassword project.properties["PIXELIZED_DEBUG_KEY_PASSWORD"] } release { storeFile file(project.properties["PIXELIZED_RELEASE_STORE_FILE"]) storePassword project.properties["PIXELIZED_RELEASE_STORE_PASSWORD"] keyAlias project.properties["PIXELIZED_RELEASE_KEY_ALIAS"] keyPassword project.properties["PIXELIZED_RELEASE_KEY_PASSWORD"] } } buildTypes { debug { signingConfig signingConfigs.release minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } release { signingConfig signingConfigs.release minifyEnabled 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 { // Enables Jetpack Compose for this module compose true } composeOptions { kotlinCompilerExtensionVersion '1.0.0-beta05' } } dependencies { implementation 'androidx.core:core-ktx:1.3.2' implementation 'androidx.appcompat:appcompat:1.2.0' implementation 'com.google.android.material:material:1.3.0' // Android compose implementation 'androidx.compose.ui:ui:1.0.0-beta06' // Tooling support (Previews, etc.) implementation 'androidx.compose.ui:ui-tooling:1.0.0-beta06' // Foundation (Border, Background, Box, Image, Scroll, shapes, animations, etc.) implementation 'androidx.compose.foundation:foundation:1.0.0-beta06' // Material Design implementation 'androidx.compose.material:material:1.0.0-beta06' // Material design icons implementation 'androidx.compose.material:material-icons-core:1.0.0-beta06' implementation 'androidx.compose.material:material-icons-extended:1.0.0-beta06' // Integration with activities implementation 'androidx.activity:activity-compose:1.3.0-alpha07' // Integration with ViewModels implementation 'androidx.lifecycle:lifecycle-viewmodel-compose:1.0.0-alpha04' // Integration with observables implementation 'androidx.compose.runtime:runtime-livedata:1.0.0-beta06' implementation 'androidx.compose.runtime:runtime-rxjava2:1.0.0-beta06' // ConstraintLayout implementation "androidx.constraintlayout:constraintlayout-compose:1.0.0-alpha06" // Google sign in. implementation 'com.google.android.gms:play-services-auth:19.0.0' // RetroFit & Gson for webservice call implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation 'com.google.code.gson:gson:2.8.6' // Room implementation "androidx.room:room-runtime:2.3.0" implementation "androidx.room:room-ktx:2.3.0" kapt "androidx.room:room-compiler:2.3.0" // Paging implementation "androidx.paging:paging-runtime-ktx:3.0.0" // Test testImplementation 'junit:junit:4.13.2' androidTestImplementation "androidx.compose.ui:ui-test-junit4:1.0.0-beta06" } static def generateVersionCode() { def result = "git rev-list HEAD --count".execute().text.trim() //unix if (result.empty) result = "PowerShell -Command git rev-list HEAD --count".execute().text.trim() //windows if (result.empty) throw new RuntimeException("Could not generate versioncode on this platform? Cmd output: ${result.text}") return result.toInteger() }