# 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") import("//build/util/process_version.gni") _version_constants_java_file = "$target_gen_dir/org/chromium/weblayer/WebLayerClientVersionConstants.java" 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") { custom_package = "org.chromium.weblayer" sources = [ "res/values-night/colors.xml", "res/values-night/values.xml", "res/values-v27/styles.xml", "res/values-v28/styles.xml", "res/values/colors.xml", "res/values/ids.xml", "res/values/styles.xml", "res/values/values.xml", "res/xml/weblayer_file_paths.xml", ] android_manifest = weblayer_client_manifest android_manifest_dep = ":weblayer_client_manifest" } android_library("java") { sources = [ "org/chromium/weblayer/BroadcastReceiver.java", "org/chromium/weblayer/Browser.java", "org/chromium/weblayer/BrowserFragment.java", "org/chromium/weblayer/BrowsingDataType.java", "org/chromium/weblayer/Callback.java", "org/chromium/weblayer/CaptureScreenShotCallback.java", "org/chromium/weblayer/ChildProcessService.java", "org/chromium/weblayer/ContextMenuParams.java", "org/chromium/weblayer/CookieChangeCause.java", "org/chromium/weblayer/CookieChangedCallback.java", "org/chromium/weblayer/CookieManager.java", "org/chromium/weblayer/CrashReporterCallback.java", "org/chromium/weblayer/CrashReporterController.java", "org/chromium/weblayer/Download.java", "org/chromium/weblayer/DownloadCallback.java", "org/chromium/weblayer/DownloadError.java", "org/chromium/weblayer/DownloadState.java", "org/chromium/weblayer/ErrorPageCallback.java", "org/chromium/weblayer/FindInPageCallback.java", "org/chromium/weblayer/FindInPageController.java", "org/chromium/weblayer/FullscreenCallback.java", "org/chromium/weblayer/LoadError.java", "org/chromium/weblayer/MediaCaptureCallback.java", "org/chromium/weblayer/MediaCaptureController.java", "org/chromium/weblayer/MediaSessionService.java", "org/chromium/weblayer/NavigateParams.java", "org/chromium/weblayer/Navigation.java", "org/chromium/weblayer/NavigationCallback.java", "org/chromium/weblayer/NavigationController.java", "org/chromium/weblayer/NavigationState.java", "org/chromium/weblayer/NewTabCallback.java", "org/chromium/weblayer/NewTabType.java", "org/chromium/weblayer/ObserverList.java", "org/chromium/weblayer/Profile.java", "org/chromium/weblayer/RemoteFragment.java", "org/chromium/weblayer/ScrollNotificationType.java", "org/chromium/weblayer/SettingType.java", "org/chromium/weblayer/SiteSettingsActivity.java", "org/chromium/weblayer/SiteSettingsFragment.java", "org/chromium/weblayer/Tab.java", "org/chromium/weblayer/TabCallback.java", "org/chromium/weblayer/TabListCallback.java", "org/chromium/weblayer/ThreadCheck.java", "org/chromium/weblayer/UnsupportedVersionException.java", "org/chromium/weblayer/UrlBarController.java", "org/chromium/weblayer/UrlBarOptions.java", "org/chromium/weblayer/WebLayer.java", "org/chromium/weblayer/WebLayerFileProvider.java", "org/chromium/weblayer/WebMessage.java", "org/chromium/weblayer/WebMessageCallback.java", "org/chromium/weblayer/WebMessageReplyProxy.java", "org/chromium/weblayer/WebViewCompatibilityHelper.java", _version_constants_java_file, ] deps = [ ":client_resources", ":client_version", ":weblayer_client_manifest", "//third_party/android_deps:androidx_annotation_annotation_java", "//third_party/android_deps:androidx_appcompat_appcompat_java", "//third_party/android_deps:androidx_core_core_java", "//third_party/android_deps:androidx_fragment_fragment_java", "//third_party/android_deps:androidx_lifecycle_lifecycle_common_java", "//third_party/android_deps:androidx_lifecycle_lifecycle_viewmodel_java", "//weblayer/browser/java:interfaces_java", ] } dist_aar("client_aar") { deps = [ ":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/*", ] resource_included_patterns = [ "*/weblayer/public/java/*" ] # R files are excluded because they are not used in the client lib and depend # on other generated chromium R classes. jar_excluded_patterns = [ "org/chromium/weblayer/client/R\$*.class", "org/chromium/weblayer/client/R.class", ] # 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" } process_version("client_version") { process_only = true template_file = "org/chromium/weblayer/WebLayerClientVersionConstants.java.version" output = _version_constants_java_file sources = [ "//chrome/VERSION" ] }