| # 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("//android_webview/system_webview_apk_tmpl.gni") |
| import("//build/config/android/config.gni") |
| import("//build/config/android/rules.gni") |
| import("//third_party/icu/config.gni") |
| import("//tools/v8_context_snapshot/v8_context_snapshot.gni") |
| import("//weblayer/variables.gni") |
| |
| android_assets("weblayer_shell_assets") { |
| testonly = true |
| |
| sources = [ |
| "$root_out_dir/weblayer_shell.pak", |
| ] |
| disable_compression = true |
| deps = [ |
| "//weblayer/shell:shell_pak", |
| ] |
| } |
| |
| android_library("weblayer_shell_java") { |
| testonly = true |
| |
| deps = [ |
| "//third_party/android_deps:android_support_v4_java", |
| "//weblayer/public/java", |
| ] |
| java_files = |
| [ "shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java" ] |
| } |
| |
| template("weblayer_shell_apk_helper") { |
| _weblayer_shell_manifest = |
| "$target_gen_dir/manifest_$target_name/AndroidManifest.xml" |
| _manifest_target = target_name + "_manifest" |
| |
| jinja_template(_manifest_target) { |
| input = "shell_apk/AndroidManifest.xml" |
| output = _weblayer_shell_manifest |
| variables = [ "weblayer_package=" + invoker.weblayer_package ] |
| } |
| |
| android_apk(target_name + "_apk") { |
| testonly = true |
| |
| deps = [ |
| ":$_manifest_target", |
| ":weblayer_shell_assets", |
| ":weblayer_shell_java", |
| ] |
| apk_name = invoker.apk_name |
| android_manifest = _weblayer_shell_manifest |
| min_sdk_version = 21 |
| target_sdk_version = 28 |
| android_manifest_dep = ":$_manifest_target" |
| |
| # Add a native lib so the ABI is compatible with the implementation APK. |
| native_lib_placeholders = [ "libdummy.so" ] |
| } |
| } |
| |
| weblayer_shell_apk_helper("weblayer_shell") { |
| weblayer_package = "org.chromium.weblayer.support" |
| apk_name = "WebLayerShell" |
| } |
| |
| weblayer_shell_apk_helper("weblayer_shell_monochrome") { |
| weblayer_package = "org.chromium.chrome" |
| apk_name = "WebLayerShellChrome" |
| } |
| |
| weblayer_shell_apk_helper("weblayer_shell_webview") { |
| weblayer_package = system_webview_package_name |
| apk_name = "WebLayerShellWebView" |
| } |
| |
| generate_wrapper("run_weblayer_shell") { |
| testonly = true |
| wrapper_script = "$root_out_dir/bin/run_weblayer_shell" |
| executable = "//weblayer/tools/run_weblayer_shell.py" |
| executable_args = [ |
| "--shell-apk-path", |
| "@WrappedPath(apks/WebLayerShell.apk)", |
| "--support-apk-path", |
| "@WrappedPath(apks/WebLayerSupport.apk)", |
| ] |
| |
| deps = [ |
| ":weblayer_shell_apk", |
| ":weblayer_support_apk", |
| ] |
| } |
| |
| if (public_android_sdk) { |
| generate_wrapper("run_weblayer_shell_monochrome") { |
| testonly = true |
| wrapper_script = "$root_out_dir/bin/run_weblayer_shell_monochrome" |
| executable = "//weblayer/tools/run_weblayer_shell.py" |
| executable_args = [ |
| "--shell-apk-path", |
| "@WrappedPath(apks/WebLayerShellChrome.apk)", |
| "--support-apk-path", |
| "@WrappedPath(apks/MonochromePublic.apk)", |
| ] |
| |
| deps = [ |
| ":weblayer_shell_monochrome_apk", |
| "//chrome/android:monochrome_public_apk", |
| ] |
| } |
| |
| generate_wrapper("run_weblayer_shell_trichrome") { |
| testonly = true |
| wrapper_script = "$root_out_dir/bin/run_weblayer_shell_trichrome" |
| executable = "//weblayer/tools/run_weblayer_shell.py" |
| executable_args = [ |
| "--shell-apk-path", |
| "@WrappedPath(apks/WebLayerShellWebView.apk)", |
| "--support-apk-path", |
| "@WrappedPath(apks/TrichromeLibrary.apk)", |
| "@WrappedPath(apks/TrichromeWebView.apk)", |
| ] |
| |
| deps = [ |
| ":weblayer_shell_webview_apk", |
| "//android_webview:trichrome_webview_apk", |
| "//chrome/android:trichrome_library_apk", |
| ] |
| } |
| |
| generate_wrapper("run_weblayer_shell_webview") { |
| testonly = true |
| wrapper_script = "$root_out_dir/bin/run_weblayer_shell_webview" |
| executable = "//weblayer/tools/run_weblayer_shell.py" |
| executable_args = [ |
| "--shell-apk-path", |
| "@WrappedPath(apks/WebLayerShellWebView.apk)", |
| "--support-apk-path", |
| "@WrappedPath(apks/SystemWebView.apk)", |
| ] |
| |
| deps = [ |
| ":weblayer_shell_webview_apk", |
| "//android_webview:system_webview_apk", |
| ] |
| } |
| } |
| |
| demo_apk_manifest = "$target_gen_dir/demo_apk_manifest/AndroidManifest.xml" |
| |
| jinja_template("demo_apk_manifest") { |
| input = "demo_apk/AndroidManifest.xml" |
| output = demo_apk_manifest |
| } |
| |
| android_assets("demo_apk_assets") { |
| testonly = true |
| |
| sources = [ |
| "$root_out_dir/weblayer_shell.pak", |
| ] |
| disable_compression = true |
| deps = [ |
| "//weblayer/shell:shell_pak", |
| ] |
| } |
| |
| android_library("demo_apk_java") { |
| testonly = true |
| |
| deps = [ |
| ":demo_apk_manifest", |
| "//third_party/android_deps:android_support_v4_java", |
| "//weblayer/public/java", |
| ] |
| java_files = [ "demo_apk/src/org/chromium/weblayer/demo/WebLayerAnimationDemoActivity.java" ] |
| |
| android_manifest_for_lint = demo_apk_manifest |
| } |
| |
| android_apk("weblayer_demo_apk") { |
| testonly = true |
| |
| deps = [ |
| ":demo_apk_assets", |
| ":demo_apk_java", |
| ":demo_apk_manifest", |
| ] |
| apk_name = "WebLayerDemo" |
| android_manifest = demo_apk_manifest |
| min_sdk_version = 21 |
| target_sdk_version = 28 |
| android_manifest_dep = ":demo_apk_manifest" |
| |
| # Add a native lib so the ABI is compatible with the implementation APK. |
| native_lib_placeholders = [ "libdummy.so" ] |
| } |
| |
| weblayer_support_manifest = |
| "$target_gen_dir/weblayer_support_manifest/AndroidManifest.xml" |
| |
| jinja_template("weblayer_support_manifest") { |
| input = "support_apk/AndroidManifest.xml" |
| output = weblayer_support_manifest |
| } |
| |
| android_apk("weblayer_support_apk") { |
| testonly = true |
| |
| deps = [ |
| ":weblayer_support_manifest", |
| "//android_webview:locale_pak_assets", |
| "//android_webview:monochrome_webview_assets", |
| "//android_webview:pak_file_assets", |
| "//base:base_java", |
| "//weblayer/browser/java", |
| ] |
| |
| # Transitive dependencies |
| deps += [ |
| "//components/viz/service:service_java", |
| "//media/base/android:media_java", |
| "//media/capture/video/android:capture_java", |
| "//mojo/public/java:system_java", |
| "//net/android:net_java", |
| ] |
| apk_name = "WebLayerSupport" |
| android_manifest = weblayer_support_manifest |
| min_sdk_version = 21 |
| target_sdk_version = 28 |
| android_manifest_dep = ":weblayer_support_manifest" |
| shared_resources = true |
| |
| locale_config_java_packages = [ weblayer_locale_config_java_package ] |
| |
| native_lib_version_rule = "//build/util:chrome_version_json" |
| _native_lib_file = |
| rebase_path("$root_gen_dir/CHROME_VERSION.json", root_build_dir) |
| native_lib_version_arg = "@FileArg($_native_lib_file:full-quoted)" |
| |
| shared_libraries = [ "//weblayer:libweblayer" ] |
| } |
| |
| instrumentation_test_apk("weblayer_instrumentation_test_apk") { |
| apk_name = "WebLayerInstrumentationTest" |
| apk_under_test = "//weblayer/shell/android:weblayer_shell_apk" |
| android_manifest = "javatests/AndroidManifest.xml" |
| min_sdk_version = 21 |
| deps = [ |
| "//base:base_java_test_support", |
| "//content/public/test/android:content_java_test_support", |
| "//net/android:net_java_test_support", |
| "//third_party/android_support_test_runner:runner_java", |
| ] |
| java_files = [ |
| "javatests/src/org/chromium/weblayer/test/BrowserObserverTest.java", |
| "javatests/src/org/chromium/weblayer/test/DownloadDelegateTest.java", |
| "javatests/src/org/chromium/weblayer/test/EventUtils.java", |
| "javatests/src/org/chromium/weblayer/test/FullscreenDelegateTest.java", |
| "javatests/src/org/chromium/weblayer/test/NavigationTest.java", |
| "javatests/src/org/chromium/weblayer/test/SmokeTest.java", |
| "javatests/src/org/chromium/weblayer/test/ExecuteScriptTest.java", |
| "javatests/src/org/chromium/weblayer/test/RenderingTest.java", |
| "javatests/src/org/chromium/weblayer/test/WebLayerShellActivityTestRule.java", |
| "javatests/src/org/chromium/weblayer/test/FragmentRestoreTest.java", |
| "shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java", |
| ] |
| additional_apks = [ |
| "//weblayer/shell/android:weblayer_support_apk", |
| "//net/android:net_test_support_apk", |
| ] |
| data = [ |
| "//weblayer/test/data/", |
| ] |
| } |