123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- // xxx ignore not resolved classes; gradle can manage. fixes reproducible builds
- import com.android.tools.profgen.ArtProfileKt
- import com.android.tools.profgen.ArtProfileSerializer
- import com.android.tools.profgen.DexFile
- plugins {
- id 'com.android.application'
- id 'org.jetbrains.kotlin.android'
- id "org.jetbrains.kotlin.plugin.parcelize"
- }
- android {
- compileSdk 33
- defaultConfig {
- applicationId "xyz.apiote.bimba.czwek"
- minSdk 21
- targetSdk 33
- versionCode 21
- versionName "3.0.1"
- testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
- }
- buildTypes {
- release {
- minifyEnabled false
- proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- }
- }
- compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
- coreLibraryDesugaringEnabled true
- }
- kotlinOptions {
- jvmTarget = '1.8'
- }
- buildFeatures {
- viewBinding true
- }
- namespace 'xyz.apiote.bimba.czwek'
- buildToolsVersion '33.0.1'
- }
- dependencies {
- implementation 'androidx.core:core-ktx:1.9.0'
- implementation 'androidx.appcompat:appcompat:1.6.1'
- implementation 'com.google.android.material:material:1.8.0'
- implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
- implementation 'androidx.lifecycle:lifecycle-livedata-ktx:2.5.1'
- implementation 'androidx.lifecycle:lifecycle-viewmodel-ktx:2.5.1'
- implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3'
- implementation 'androidx.navigation:navigation-ui-ktx:2.5.3'
- implementation 'com.github.mancj:MaterialSearchBar:0.8.5'
- implementation 'androidx.legacy:legacy-support-v4:1.0.0'
- implementation 'androidx.core:core-splashscreen:1.0.0'
- implementation 'com.google.openlocationcode:openlocationcode:1.0.4'
- implementation 'org.osmdroid:osmdroid-android:6.1.14'
- coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.0.3'
- implementation 'org.yaml:snakeyaml:2.0'
- implementation project(path: ':fruchtfleisch')
- testImplementation 'junit:junit:4.13.2'
- androidTestImplementation 'androidx.test.ext:junit:1.1.5'
- androidTestImplementation 'androidx.test.espresso:espresso-core:3.5.1'
- }
- // note fixes reproducible builds
- project.afterEvaluate {
- tasks.each { task ->
- if (task.name.startsWith("compile") && task.name.endsWith("ReleaseArtProfile")) {
- task.doLast {
- outputs.files.each { file ->
- if (file.name.endsWith(".profm")) {
- println("Sorting ${file} ...")
- def version = ArtProfileSerializer.valueOf("METADATA_0_0_2")
- def profile = ArtProfileKt.ArtProfile(file)
- def keys = new ArrayList(profile.profileData.keySet())
- def sortedData = new LinkedHashMap()
- // xxx ignore not resolved classes; gradle can manage
- Collections.sort keys, new DexFile.Companion()
- keys.each { key -> sortedData[key] = profile.profileData[key] }
- new FileOutputStream(file).with {
- write(version.magicBytes$profgen)
- write(version.versionBytes$profgen)
- version.write$profgen(it, sortedData, "")
- }
- }
- }
- }
- }
- }
- }
|