diff options
Diffstat (limited to 'mobile/android/fenix/benchmark/build.gradle')
-rw-r--r-- | mobile/android/fenix/benchmark/build.gradle | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/mobile/android/fenix/benchmark/build.gradle b/mobile/android/fenix/benchmark/build.gradle new file mode 100644 index 0000000000..8f13686ff4 --- /dev/null +++ b/mobile/android/fenix/benchmark/build.gradle @@ -0,0 +1,75 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +import com.android.build.api.dsl.ManagedVirtualDevice + +plugins { + id 'com.android.test' + id 'org.jetbrains.kotlin.android' +} + +android { + namespace 'org.mozilla.fenix.benchmark' + compileSdk config.compileSdkVersion + + defaultConfig { + minSdk 23 + targetSdk config.targetSdkVersion + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + } + + buildTypes { + // This benchmark buildType is used for benchmarking, and should function like your + // release build (for example, with minification on). It's signed with a debug key + // for easy local testing. + benchmark { + debuggable = true + signingConfig signingConfigs.debug + matchingFallbacks = ["release"] + } + } + + targetProjectPath = ":app" + experimentalProperties["android.experimental.self-instrumenting"] = true + + testOptions { + managedDevices { + devices { + pixel6Api34(ManagedVirtualDevice) { + device = "Pixel 6" + apiLevel = 34 + systemImageSource = "google" + } + } + } + } +} + +/** + * This fixes the dependency resolution issue with Glean Native. The glean gradle plugin does this + * and that's applied to the app module. Since there are no other uses of the glean plugin in the + * benchmark module, we do this manually here. + */ +configurations.configureEach { + resolutionStrategy.capabilitiesResolution.withCapability("org.mozilla.telemetry:glean-native") { + def toBeSelected = candidates.find { it.id instanceof ModuleComponentIdentifier && it.id.module.contains('geckoview') } + if (toBeSelected != null) { + select(toBeSelected) + } + because 'use GeckoView Glean instead of standalone Glean' + } +} + +dependencies { + implementation ComponentsDependencies.androidx_test_junit + implementation ComponentsDependencies.androidx_espresso_core + implementation ComponentsDependencies.androidx_test_uiautomator + implementation FenixDependencies.androidx_benchmark_macro_junit4 +} + +androidComponents { + beforeVariants(selector().all()) { + enabled = buildType == "benchmark" + } +} |