/ play-services-core / build.gradle
build.gradle
1 /* 2 * SPDX-FileCopyrightText: 2013 microG Project Team 3 * SPDX-License-Identifier: Apache-2.0 4 */ 5 6 apply plugin: 'com.android.application' 7 apply plugin: 'kotlin-android' 8 9 configurations { 10 mapboxRuntimeOnly 11 vtmRuntimeOnly 12 if (hasModule("hms", true)) hmsRuntimeOnly 13 defaultRuntimeOnly 14 } 15 16 dependencies { 17 implementation "com.squareup.wire:wire-runtime:$wireVersion" 18 implementation "de.hdodenhof:circleimageview:1.3.0" 19 20 implementation project(':fake-signature') 21 implementation project(':firebase-dynamic-links') 22 implementation project(':firebase-auth-core') 23 implementation project(':play-services-ads-core') 24 implementation project(':play-services-ads-identifier-core') 25 implementation project(':play-services-ads-lite-core') 26 implementation project(':play-services-appinvite-core') 27 implementation project(':play-services-appset-core') 28 implementation project(':play-services-auth-api-phone-core') 29 implementation project(':play-services-auth-workaccount-core') 30 implementation project(':play-services-base-core') 31 implementation project(':play-services-cast-core') 32 implementation project(':play-services-cast-framework-core') 33 implementation project(':play-services-conscrypt-provider-core') 34 implementation project(':play-services-cronet-core') 35 implementation project(':play-services-droidguard-core') 36 implementation project(':play-services-fido-core') 37 implementation project(':play-services-fitness-core') 38 implementation project(':play-services-gmscompliance-core') 39 implementation project(':play-services-location-core') 40 implementation project(':play-services-location-core-base') 41 implementation project(':play-services-oss-licenses-core') 42 implementation project(':play-services-panorama-core') 43 implementation project(':play-services-pay-core') 44 implementation project(':play-services-recaptcha-core') 45 implementation project(':play-services-safetynet-core') 46 implementation project(':play-services-tapandpay-core') 47 implementation project(':play-services-threadnetwork-core') 48 implementation project(':play-services-vision-core') 49 implementation project(':play-services-wearable-core') 50 51 implementation project(':play-services-core-proto') 52 53 implementation project(':play-services-core:microg-ui-tools') // deprecated 54 implementation project(':play-services-base-core-package') 55 implementation project(':play-services-api') 56 57 implementation project(':play-services-appinvite') 58 implementation project(':play-services-auth-base') 59 implementation project(':play-services-auth') 60 implementation project(':play-services-clearcut') 61 implementation project(':play-services-drive') 62 implementation project(':play-services-games') 63 implementation project(':play-services-maps') 64 implementation project(':play-services-measurement-base') 65 implementation project(':play-services-places') 66 implementation project(':play-services-recaptcha') 67 implementation project(':play-services-safetynet') 68 implementation project(':play-services-tasks-ktx') 69 implementation project(':play-services-fitness') 70 71 mapboxRuntimeOnly project(':play-services-maps-core-mapbox') 72 vtmRuntimeOnly project(':play-services-maps-core-vtm') 73 defaultRuntimeOnly project(':play-services-location-core-provider') 74 75 if (hasModule("nearby", true)) runtimeOnly project(':play-services-nearby-core-package') 76 if (hasModule("hms", false)) hmsRuntimeOnly project(':play-services-maps-core-hms') 77 78 // AndroidX UI 79 implementation "androidx.multidex:multidex:$multidexVersion" 80 implementation "androidx.appcompat:appcompat:$appcompatVersion" 81 implementation "androidx.mediarouter:mediarouter:$mediarouterVersion" 82 implementation "androidx.preference:preference-ktx:$preferenceVersion" 83 implementation "androidx.webkit:webkit:$webkitVersion" 84 85 // Material Components 86 implementation "com.google.android.material:material:$materialVersion" 87 88 // Compose 89 def composeBom = platform('androidx.compose:compose-bom:2024.04.00') 90 implementation composeBom 91 implementation 'androidx.compose.material3:material3' 92 implementation 'androidx.compose.ui:ui-tooling-preview' 93 debugImplementation 'androidx.compose.ui:ui-tooling' 94 implementation 'androidx.activity:activity-compose:1.8.2' 95 96 // Navigation 97 implementation "androidx.navigation:navigation-fragment-ktx:$navigationVersion" 98 implementation "androidx.navigation:navigation-ui-ktx:$navigationVersion" 99 100 implementation "com.android.volley:volley:$volleyVersion" 101 102 implementation "androidx.lifecycle:lifecycle-service:$lifecycleVersion" 103 implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion" 104 } 105 106 android { 107 namespace "com.google.android.gms" 108 109 compileSdkVersion androidCompileSdk 110 buildToolsVersion "$androidBuildVersionTools" 111 112 buildFeatures { 113 buildConfig = true 114 dataBinding = true 115 compose true 116 } 117 118 defaultConfig { 119 versionName version 120 versionCode appVersionCode 121 122 minSdkVersion androidMinSdk 123 targetSdkVersion androidTargetSdk 124 125 multiDexEnabled true 126 multiDexKeepProguard file('multidex-keep.pro') 127 128 manifestPlaceholders = [appLabel:"@string/gms_app_name"] 129 resValue "string", "package_id", "com.google.android.gms" 130 131 buildConfigField "String", "SAFETYNET_KEY", "\"${localProperties.get("safetynet.key", "")}\"" 132 buildConfigField "String", "RECAPTCHA_SITE_KEY", "\"${localProperties.get("recaptcha.siteKey", "")}\"" 133 buildConfigField "String", "RECAPTCHA_SECRET", "\"${localProperties.get("recaptcha.secret", "")}\"" 134 buildConfigField "String", "RECAPTCHA_ENTERPRISE_PROJECT_ID", "\"${localProperties.get("recaptchaEnterpreise.projectId", "")}\"" 135 buildConfigField "String", "RECAPTCHA_ENTERPRISE_SITE_KEY", "\"${localProperties.get("recaptchaEnterpreise.siteKey", "")}\"" 136 buildConfigField "String", "RECAPTCHA_ENTERPRISE_API_KEY", "\"${localProperties.get("recaptchaEnterpreise.apiKey", "")}\"" 137 138 ndk { 139 abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64" 140 } 141 } 142 143 composeOptions { 144 kotlinCompilerExtensionVersion = "1.5.10" 145 } 146 147 sourceSets { 148 main { 149 java.srcDirs += 'src/main/kotlin' 150 } 151 } 152 153 lintOptions { 154 disable 'MissingTranslation', 'GetLocales', 'InvalidPackage', 'BatteryLife', 'ImpliedQuantity', 'MissingQuantity', 'InvalidWakeLockTag', 'UniquePermission' 155 } 156 157 buildTypes { 158 release { 159 minifyEnabled false 160 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 161 } 162 } 163 164 flavorDimensions = ['maps', 'target'] 165 productFlavors { 166 "default" { 167 dimension 'target' 168 } 169 "huawei" { 170 dimension 'target' 171 versionNameSuffix "-hw" 172 } 173 "huaweilh" { 174 dimension 'target' 175 versionNameSuffix "-lh" 176 versionCode appVersionCode - 1000 177 matchingFallbacks = ['huawei'] 178 } 179 "user" { 180 dimension 'target' 181 applicationId = "org.microg.gms" 182 versionNameSuffix "-user" 183 manifestPlaceholders = [appLabel:"@string/limited_services_app_name"] 184 matchingFallbacks = ['default'] 185 resValue "string", "package_id", "org.microg.gms" 186 } 187 "hms" { 188 dimension 'maps' 189 } 190 "mapbox" { 191 dimension 'maps' 192 } 193 "vtm" { 194 dimension 'maps' 195 } 196 } 197 198 compileOptions { 199 sourceCompatibility JavaVersion.VERSION_1_8 200 targetCompatibility JavaVersion.VERSION_1_8 201 } 202 203 kotlinOptions { 204 jvmTarget = 1.8 205 } 206 207 packagingOptions { 208 exclude 'META-INF/ASL2.0' 209 jniLibs { 210 useLegacyPackaging true 211 } 212 } 213 } 214 215 if (file('user.gradle').exists()) { 216 apply from: 'user.gradle' 217 } 218 219 android.applicationVariants.all { variant -> 220 variant.outputs.each { output -> 221 output.outputFileName = variant.applicationId + "-" + variant.versionCode + variant.versionName.substring(version.length()) + ".apk" 222 } 223 }