microg-gms/play-services-core/build.gradle
2025-11-15 17:44:12 +01:00

224 lines
8.1 KiB
Groovy

/*
* SPDX-FileCopyrightText: 2013 microG Project Team
* SPDX-License-Identifier: Apache-2.0
*/
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
configurations {
mapboxRuntimeOnly
vtmRuntimeOnly
if (hasModule("hms", true)) hmsRuntimeOnly
defaultRuntimeOnly
}
dependencies {
implementation "com.squareup.wire:wire-runtime:$wireVersion"
implementation "de.hdodenhof:circleimageview:1.3.0"
implementation project(':fake-signature')
implementation project(':firebase-dynamic-links')
implementation project(':firebase-auth-core')
implementation project(':play-services-ads-core')
implementation project(':play-services-ads-identifier-core')
implementation project(':play-services-ads-lite-core')
implementation project(':play-services-appinvite-core')
implementation project(':play-services-appset-core')
implementation project(':play-services-auth-api-phone-core')
implementation project(':play-services-auth-blockstore-core')
implementation project(':play-services-auth-workaccount-core')
implementation project(':play-services-base-core')
implementation project(':play-services-cast-core')
implementation project(':play-services-cast-framework-core')
implementation project(':play-services-conscrypt-provider-core')
implementation project(':play-services-cronet-core')
implementation project(':play-services-droidguard-core')
implementation project(':play-services-fido-core')
implementation project(':play-services-fitness-core')
implementation project(':play-services-gmscompliance-core')
implementation project(':play-services-location-core')
implementation project(':play-services-location-core-base')
implementation project(':play-services-oss-licenses-core')
implementation project(':play-services-panorama-core')
implementation project(':play-services-pay-core')
implementation project(':play-services-recaptcha-core')
implementation project(':play-services-safetynet-core')
implementation project(':play-services-tapandpay-core')
implementation project(':play-services-threadnetwork-core')
implementation project(':play-services-vision-core')
implementation project(':play-services-wearable-core')
implementation project(':play-services-core-proto')
implementation project(':play-services-core:microg-ui-tools') // deprecated
implementation project(':play-services-base-core-package')
implementation project(':play-services-api')
implementation project(':play-services-appinvite')
implementation project(':play-services-auth-base')
implementation project(':play-services-auth')
implementation project(':play-services-clearcut')
implementation project(':play-services-drive')
implementation project(':play-services-games')
implementation project(':play-services-maps')
implementation project(':play-services-measurement-base')
implementation project(':play-services-places')
implementation project(':play-services-recaptcha')
implementation project(':play-services-safetynet')
implementation project(':play-services-tasks-ktx')
implementation project(':play-services-fitness')
mapboxRuntimeOnly project(':play-services-maps-core-mapbox')
vtmRuntimeOnly project(':play-services-maps-core-vtm')
defaultRuntimeOnly project(':play-services-location-core-provider')
if (hasModule("nearby", true)) runtimeOnly project(':play-services-nearby-core-package')
if (hasModule("hms", false)) hmsRuntimeOnly project(':play-services-maps-core-hms')
// AndroidX UI
implementation "androidx.multidex:multidex:$multidexVersion"
implementation "androidx.appcompat:appcompat:$appcompatVersion"
implementation "androidx.mediarouter:mediarouter:$mediarouterVersion"
implementation "androidx.preference:preference-ktx:$preferenceVersion"
implementation "androidx.webkit:webkit:$webkitVersion"
// Material Components
implementation "com.google.android.material:material:$materialVersion"
// Compose
def composeBom = platform('androidx.compose:compose-bom:2024.04.00')
implementation composeBom
implementation 'androidx.compose.material3:material3'
implementation 'androidx.compose.ui:ui-tooling-preview'
debugImplementation 'androidx.compose.ui:ui-tooling'
implementation 'androidx.activity:activity-compose:1.8.2'
// Navigation
implementation "androidx.navigation:navigation-fragment-ktx:$navigationVersion"
implementation "androidx.navigation:navigation-ui-ktx:$navigationVersion"
implementation "com.android.volley:volley:$volleyVersion"
implementation "androidx.lifecycle:lifecycle-service:$lifecycleVersion"
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlinVersion"
}
android {
namespace "com.google.android.gms"
compileSdkVersion androidCompileSdk
buildToolsVersion "$androidBuildVersionTools"
buildFeatures {
buildConfig = true
dataBinding = true
compose true
}
defaultConfig {
versionName version
versionCode appVersionCode
minSdkVersion androidMinSdk
targetSdkVersion androidTargetSdk
multiDexEnabled true
multiDexKeepProguard file('multidex-keep.pro')
manifestPlaceholders = [appLabel:"@string/gms_app_name"]
resValue "string", "package_id", "com.google.android.gms"
buildConfigField "String", "SAFETYNET_KEY", "\"${localProperties.get("safetynet.key", "")}\""
buildConfigField "String", "RECAPTCHA_SITE_KEY", "\"${localProperties.get("recaptcha.siteKey", "")}\""
buildConfigField "String", "RECAPTCHA_SECRET", "\"${localProperties.get("recaptcha.secret", "")}\""
buildConfigField "String", "RECAPTCHA_ENTERPRISE_PROJECT_ID", "\"${localProperties.get("recaptchaEnterpreise.projectId", "")}\""
buildConfigField "String", "RECAPTCHA_ENTERPRISE_SITE_KEY", "\"${localProperties.get("recaptchaEnterpreise.siteKey", "")}\""
buildConfigField "String", "RECAPTCHA_ENTERPRISE_API_KEY", "\"${localProperties.get("recaptchaEnterpreise.apiKey", "")}\""
ndk {
abiFilters "armeabi-v7a", "arm64-v8a", "x86", "x86_64"
}
}
composeOptions {
kotlinCompilerExtensionVersion = "1.5.10"
}
sourceSets {
main {
java.srcDirs += 'src/main/kotlin'
}
}
lintOptions {
disable 'MissingTranslation', 'GetLocales', 'InvalidPackage', 'BatteryLife', 'ImpliedQuantity', 'MissingQuantity', 'InvalidWakeLockTag', 'UniquePermission'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
flavorDimensions = ['maps', 'target']
productFlavors {
"default" {
dimension 'target'
}
"huawei" {
dimension 'target'
versionNameSuffix "-hw"
}
"huaweilh" {
dimension 'target'
versionNameSuffix "-lh"
versionCode appVersionCode - 1000
matchingFallbacks = ['huawei']
}
"user" {
dimension 'target'
applicationId = "org.microg.gms"
versionNameSuffix "-user"
manifestPlaceholders = [appLabel:"@string/limited_services_app_name"]
matchingFallbacks = ['default']
resValue "string", "package_id", "org.microg.gms"
}
"hms" {
dimension 'maps'
}
"mapbox" {
dimension 'maps'
}
"vtm" {
dimension 'maps'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
kotlinOptions {
jvmTarget = 1.8
}
packagingOptions {
exclude 'META-INF/ASL2.0'
jniLibs {
useLegacyPackaging true
}
}
}
if (file('user.gradle').exists()) {
apply from: 'user.gradle'
}
android.applicationVariants.all { variant ->
variant.outputs.each { output ->
output.outputFileName = variant.applicationId + "-" + variant.versionCode + variant.versionName.substring(version.length()) + ".apk"
}
}