/* 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 org.apache.tools.ant.filters.ReplaceTokens apply plugin: 'com.android.library' apply plugin: 'kotlin-android' android { defaultConfig { minSdkVersion = config.minSdkVersion compileSdk = config.compileSdkVersion targetSdkVersion = config.targetSdkVersion } sourceSets { main { assets { srcDir layout.buildDirectory.dir("generated/assets/") } } } buildTypes { release { minifyEnabled = false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } namespace = 'mozilla.components.feature.webcompat' } // We copy the webcompat extension from `browser/extensions/webcompat/` to // `assets/extensions/webcompat/` by first copying the extension into the // build directory, which is registered as the assets source directory. // // There is an `extensions/` folder in between, which is needed to access // the extension at: `resource://android/assets/extensions/webcompat/`. tasks.register("syncWebcompatExtension", Sync) { def topsrcdir = gradle.mozconfig.topsrcdir from "$topsrcdir/browser/extensions/webcompat" into layout.buildDirectory.dir("generated/assets/extensions/webcompat/") exclude "**/tests/**", "**/components.conf", "**/moz.build" // webcompat adopted #include directives in Bug 1936031, which are only // processed for Desktop builds. The filter below pre-processes the files // that include these directives. // configuration-cache doesn't allow calling file() from a groovy closure, // in this case filesMatching callback, so we call file before the closure. def interventionsJson = file("$topsrcdir/browser/extensions/webcompat/data/interventions.json") filesMatching([ '**/run.js', ]) { filter(ReplaceTokens, beginToken: '', endToken: '', tokens: [ '#include data/interventions.json': interventionsJson.text.trim(), ]) } } dependencies { implementation project(':concept-engine') implementation libs.androidx.core.ktx implementation libs.kotlin.coroutines testImplementation project(':support-test') testImplementation project(':support-webextensions') testImplementation libs.androidx.test.core testImplementation libs.androidx.test.junit testImplementation libs.testing.robolectric testImplementation libs.testing.coroutines } apply from: '../../../android-lint.gradle' apply from: '../../../publish.gradle' ext.configurePublish(config.componentsGroupId, project.name, project.ext.description) preBuild.dependsOn syncWebcompatExtension