Closes #2555: Remove appservices gradle plugin, perform megazord substitution by hand.
parent
04e28096b2
commit
17f8e236aa
|
@ -8,19 +8,8 @@ apply plugin: 'kotlin-android-extensions'
|
||||||
apply from: "$project.rootDir/automation/gradle/versionCode.gradle"
|
apply from: "$project.rootDir/automation/gradle/versionCode.gradle"
|
||||||
apply plugin: 'androidx.navigation.safeargs.kotlin'
|
apply plugin: 'androidx.navigation.safeargs.kotlin'
|
||||||
|
|
||||||
apply plugin: 'org.mozilla.appservices'
|
|
||||||
|
|
||||||
import com.android.build.gradle.internal.tasks.AppPreBuildTask
|
import com.android.build.gradle.internal.tasks.AppPreBuildTask
|
||||||
|
|
||||||
appservices {
|
|
||||||
defaultConfig {
|
|
||||||
megazord = 'fenix'
|
|
||||||
// Necessary to allow for local dependency substitutions.
|
|
||||||
// See https://github.com/mozilla-mobile/reference-browser/pull/356#issuecomment-449190236
|
|
||||||
unitTestingEnabled = false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
android {
|
android {
|
||||||
compileSdkVersion 28
|
compileSdkVersion 28
|
||||||
defaultConfig {
|
defaultConfig {
|
||||||
|
@ -376,7 +365,6 @@ dependencies {
|
||||||
testImplementation Deps.junit
|
testImplementation Deps.junit
|
||||||
testImplementation Deps.robolectric
|
testImplementation Deps.robolectric
|
||||||
implementation Deps.fragment_testing
|
implementation Deps.fragment_testing
|
||||||
testImplementation Deps.megazord_forUnitTests
|
|
||||||
testImplementation Deps.places_forUnitTests
|
testImplementation Deps.places_forUnitTests
|
||||||
|
|
||||||
testImplementation Deps.mockito_core
|
testImplementation Deps.mockito_core
|
||||||
|
@ -414,4 +402,44 @@ task printGeckoviewVersions {
|
||||||
|
|
||||||
// Normally this should use the same version as the glean dependency. But since we are currently using AC snapshots we
|
// Normally this should use the same version as the glean dependency. But since we are currently using AC snapshots we
|
||||||
// can't reference a git tag with a specific version here. So we are just using "master" and hoping for the best.
|
// can't reference a git tag with a specific version here. So we are just using "master" and hoping for the best.
|
||||||
apply from: 'https://github.com/mozilla-mobile/android-components/raw/master/components/service/glean/scripts/sdk_generator.gradle'
|
apply from: 'https://github.com/mozilla-mobile/android-components/raw/master/components/service/glean/scripts/sdk_generator.gradle'
|
||||||
|
|
||||||
|
// For production builds, the native code for all `org.mozilla.appservices` dependencies gets compiled together
|
||||||
|
// into a single "megazord" build, and different megazords are published for different subsets of features.
|
||||||
|
// Ref https://mozilla.github.io/application-services/docs/applications/consuming-megazord-libraries.html
|
||||||
|
// Substitute all appservices dependencies with an appropriate megazord.
|
||||||
|
afterEvaluate {
|
||||||
|
def megazord = "fenix-megazord"
|
||||||
|
def appServicesGroup = "org.mozilla.appservices"
|
||||||
|
def appServicesVersion = null
|
||||||
|
configurations.each { configuration ->
|
||||||
|
configuration.resolutionStrategy.eachDependency { DependencyResolveDetails dependency ->
|
||||||
|
if (dependency.requested.group == appServicesGroup) {
|
||||||
|
// Ensure that we only depend on a single, consistent version of appservices.
|
||||||
|
if (appServicesVersion == null) {
|
||||||
|
appServicesVersion = dependency.requested.version
|
||||||
|
} else {
|
||||||
|
if (dependency.requested.version != appServicesVersion) {
|
||||||
|
logger.lifecycle("In ${configuration}: mismatched '${appServicesGroup}` dependency version:" +
|
||||||
|
" '${dependency.requested.group}:${dependency.requested.name}:${dependency.requested.version}'" +
|
||||||
|
" does not have expected version ${appServicesVersion}")
|
||||||
|
throw new RuntimeException("mismatched '${appServicesGroup}` dependency version")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Check whether it was already megazorded.
|
||||||
|
if (! dependency.requested.name.endsWith("-withoutLib")) {
|
||||||
|
// Use either the -forUnitTests megazord, or the default one.
|
||||||
|
def substitution
|
||||||
|
if (dependency.requested.name.endsWith("-forUnitTests")) {
|
||||||
|
substitution = "org.mozilla.appservices:${megazord}-forUnitTests:${appServicesVersion}"
|
||||||
|
} else {
|
||||||
|
substitution = "org.mozilla.appservices:${megazord}:${appServicesVersion}"
|
||||||
|
}
|
||||||
|
logger.lifecycle("In ${configuration}: substituting megazord module '$substitution' for component module" +
|
||||||
|
" '${dependency.requested.group}:${dependency.requested.name}:${dependency.requested.version}'")
|
||||||
|
dependency.useTarget(substitution)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -8,7 +8,6 @@ buildscript {
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath Deps.tools_androidgradle
|
classpath Deps.tools_androidgradle
|
||||||
classpath Deps.tools_kotlingradle
|
classpath Deps.tools_kotlingradle
|
||||||
classpath Deps.tools_appservicesgradle
|
|
||||||
classpath Deps.androidx_safeargs
|
classpath Deps.androidx_safeargs
|
||||||
classpath Deps.allopen
|
classpath Deps.allopen
|
||||||
|
|
||||||
|
|
|
@ -28,9 +28,13 @@ private object Versions {
|
||||||
const val androidx_core = "1.2.0-alpha01"
|
const val androidx_core = "1.2.0-alpha01"
|
||||||
const val androidx_transition = "1.1.0-rc01"
|
const val androidx_transition = "1.1.0-rc01"
|
||||||
|
|
||||||
const val appservices_gradle_plugin = "0.4.4"
|
|
||||||
const val mozilla_android_components = "0.54.0-SNAPSHOT"
|
const val mozilla_android_components = "0.54.0-SNAPSHOT"
|
||||||
const val mozilla_appservices = "0.27.0"
|
// Note that android-components also depends on application-services,
|
||||||
|
// and in fact is our main source of appservices-related functionality.
|
||||||
|
// The version number below tracks the application-services version
|
||||||
|
// that we depend on directly for tests, and it's important that it
|
||||||
|
// be kept in sync with the version used by android-components above.
|
||||||
|
const val mozilla_appservices = "0.28.1"
|
||||||
|
|
||||||
const val autodispose = "1.1.0"
|
const val autodispose = "1.1.0"
|
||||||
const val adjust = "4.11.4"
|
const val adjust = "4.11.4"
|
||||||
|
@ -58,7 +62,6 @@ private object Versions {
|
||||||
object Deps {
|
object Deps {
|
||||||
const val tools_androidgradle = "com.android.tools.build:gradle:${Versions.android_gradle_plugin}"
|
const val tools_androidgradle = "com.android.tools.build:gradle:${Versions.android_gradle_plugin}"
|
||||||
const val tools_kotlingradle = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
|
const val tools_kotlingradle = "org.jetbrains.kotlin:kotlin-gradle-plugin:${Versions.kotlin}"
|
||||||
const val tools_appservicesgradle = "org.mozilla.appservices:gradle-plugin:${Versions.appservices_gradle_plugin}"
|
|
||||||
const val kotlin_stdlib = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${Versions.kotlin}"
|
const val kotlin_stdlib = "org.jetbrains.kotlin:kotlin-stdlib-jdk7:${Versions.kotlin}"
|
||||||
const val kotlin_coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.coroutines}"
|
const val kotlin_coroutines = "org.jetbrains.kotlinx:kotlinx-coroutines-core:${Versions.coroutines}"
|
||||||
|
|
||||||
|
@ -175,7 +178,6 @@ object Deps {
|
||||||
const val uiautomator = "com.android.support.test.uiautomator:uiautomator-v18:${Versions.uiautomator}"
|
const val uiautomator = "com.android.support.test.uiautomator:uiautomator-v18:${Versions.uiautomator}"
|
||||||
const val robolectric = "org.robolectric:robolectric:${Versions.robolectric}"
|
const val robolectric = "org.robolectric:robolectric:${Versions.robolectric}"
|
||||||
const val fragment_testing = "androidx.fragment:fragment-testing:${Versions.androidx_testing}"
|
const val fragment_testing = "androidx.fragment:fragment-testing:${Versions.androidx_testing}"
|
||||||
const val megazord_forUnitTests = "org.mozilla.appservices:fenix-megazord-forUnitTests:${Versions.mozilla_appservices}"
|
|
||||||
const val places_forUnitTests = "org.mozilla.appservices:places-forUnitTests:${Versions.mozilla_appservices}"
|
const val places_forUnitTests = "org.mozilla.appservices:places-forUnitTests:${Versions.mozilla_appservices}"
|
||||||
|
|
||||||
const val google_ads_id = "com.google.android.gms:play-services-ads-identifier:${Versions.google_ads_id_version}"
|
const val google_ads_id = "com.google.android.gms:play-services-ads-identifier:${Versions.google_ads_id_version}"
|
||||||
|
|
Loading…
Reference in New Issue