| # Copyright 2019 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/android/config.gni") |
| import("//build/config/android/rules.gni") |
| |
| weblayer_client_manifest = |
| "$target_gen_dir/weblayer_client_manifest/AndroidManifest.xml" |
| |
| jinja_template("weblayer_client_manifest") { |
| input = "AndroidManifest.xml" |
| output = weblayer_client_manifest |
| } |
| |
| android_resources("client_resources") { |
| resource_dirs = [] |
| android_manifest = weblayer_client_manifest |
| android_manifest_dep = ":weblayer_client_manifest" |
| } |
| |
| template("weblayer_java") { |
| android_library(target_name) { |
| java_files = [ |
| "org/chromium/weblayer/BrowserController.java", |
| "org/chromium/weblayer/BrowserFragment.java", |
| "org/chromium/weblayer/BrowserFragmentController.java", |
| "org/chromium/weblayer/BrowserObserver.java", |
| "org/chromium/weblayer/Callback.java", |
| "org/chromium/weblayer/ListenableFuture.java", |
| "org/chromium/weblayer/ListenableResult.java", |
| "org/chromium/weblayer/Navigation.java", |
| "org/chromium/weblayer/NavigationController.java", |
| "org/chromium/weblayer/NavigationObserver.java", |
| "org/chromium/weblayer/ObserverList.java", |
| "org/chromium/weblayer/Profile.java", |
| "org/chromium/weblayer/WebLayer.java", |
| "org/chromium/weblayer/ChildProcessService.java", |
| "org/chromium/weblayer/UnsupportedVersionException.java", |
| ] |
| |
| deps = [ |
| "//third_party/android_deps:com_android_support_support_fragment_java", |
| "//weblayer/browser/java:client_java", |
| ] |
| deps += invoker.deps |
| |
| # Needed for android.webkit.WebViewDelegate. |
| alternative_android_sdk_dep = |
| "//third_party/android_sdk:public_framework_system_java" |
| } |
| } |
| |
| # This target should be used by client apps in the chromium repo that want to |
| # include the client library code and manifest. |
| weblayer_java("java") { |
| deps = [ |
| # This dep is needed to include the manifest that should be merged into the |
| # client app's manifest. |
| ":client_resources", |
| ] |
| } |
| |
| # This target should only be used when generating the aar. The dist_aar rule |
| # adds the client manifest separately. |
| weblayer_java("aar_java") { |
| deps = [] |
| } |
| |
| dist_aar("client_aar") { |
| deps = [ |
| ":aar_java", |
| ":weblayer_client_manifest", |
| ] |
| |
| # The aar should only include weblayer files. The client will provide the |
| # support library. |
| jar_included_patterns = [ |
| "org/chromium/weblayer/*", |
| "org/chromium/weblayer_private/*", |
| ] |
| |
| # dist_aar does not take the manifest from libraries in deps, so we have to |
| # specify again here. |
| android_manifest = weblayer_client_manifest |
| output = "$root_build_dir/WebLayerClient.aar" |
| } |