| # Copyright 2015 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/rules.gni") |
| import("manifest_processor.gni") |
| import("shell_apk_version.gni") |
| |
| shell_apk_manifest = "$target_gen_dir/shell_apk_manifest/AndroidManifest.xml" |
| unbound_shell_apk_manifest = |
| "$target_gen_dir/unbound_shell_apk_manifest/AndroidManifest.xml" |
| maps_go_apk_manifest = |
| "$target_gen_dir/maps_go_apk_manifest/AndroidManifest.xml" |
| shell_apk_http_manifest = |
| "$target_gen_dir/shell_apk_http_manifest/AndroidManifest.xml" |
| |
| manifest_processor_template("shell_apk_manifest") { |
| input = "AndroidManifest.xml" |
| config_file = "bound_manifest_config.json" |
| output = shell_apk_manifest |
| |
| extra_variables = [ "shell_apk_version=$template_shell_apk_version" ] |
| } |
| |
| manifest_processor_template("unbound_shell_apk_manifest") { |
| input = "AndroidManifest.xml" |
| config_file = "unbound_manifest_config.json" |
| output = unbound_shell_apk_manifest |
| |
| extra_variables = [ "shell_apk_version=$template_shell_apk_version" ] |
| } |
| |
| manifest_processor_template("maps_go_apk_manifest") { |
| input = "AndroidManifest.xml" |
| config_file = "maps_go_manifest_config.json" |
| output = maps_go_apk_manifest |
| |
| extra_variables = [ "shell_apk_version=$template_shell_apk_version" ] |
| } |
| |
| manifest_processor_template("shell_apk_http_manifest") { |
| input = "AndroidManifest.xml" |
| config_file = "http_manifest_config.json" |
| output = shell_apk_http_manifest |
| |
| extra_variables = [ "shell_apk_version=$template_shell_apk_version" ] |
| } |
| |
| android_resources("shell_apk_resources") { |
| resource_dirs = [ "res" ] |
| custom_package = "org.chromium.webapk.shell_apk" |
| deps = [ |
| ":webapk_strings_grd", |
| ] |
| } |
| |
| # Stamped out copy of the runtime-library, used for fail-safe code in when using an |
| # old copy of the runtime library. |
| android_library("compiled_in_runtime_library_java") { |
| chromium_code = false |
| java_files = [ "src/org/chromium/webapk/lib/runtime_library/IWebApkApi.java" ] |
| } |
| |
| # Split out as a separate target so that it can be tested from chrome_public_test_apk |
| android_library("dex_loader_java") { |
| java_files = [ "src/org/chromium/webapk/shell_apk/DexLoader.java" ] |
| } |
| |
| android_library("webapk_java") { |
| java_files = [ |
| "src/org/chromium/webapk/shell_apk/HostBrowserClassLoader.java", |
| "src/org/chromium/webapk/shell_apk/HostBrowserLauncher.java", |
| "src/org/chromium/webapk/shell_apk/ChooseHostBrowserDialog.java", |
| "src/org/chromium/webapk/shell_apk/MainActivity.java", |
| "src/org/chromium/webapk/shell_apk/IdentityService.java", |
| "src/org/chromium/webapk/shell_apk/InstallHostBrowserDialog.java", |
| "src/org/chromium/webapk/shell_apk/ShareActivity.java", |
| "src/org/chromium/webapk/shell_apk/ShareActivity0.java", |
| "src/org/chromium/webapk/shell_apk/ShareActivity1.java", |
| "src/org/chromium/webapk/shell_apk/ShareActivity2.java", |
| "src/org/chromium/webapk/shell_apk/ShareActivity3.java", |
| "src/org/chromium/webapk/shell_apk/ShareActivity4.java", |
| "src/org/chromium/webapk/shell_apk/WebApkServiceFactory.java", |
| "src/org/chromium/webapk/shell_apk/WebApkServiceImplWrapper.java", |
| "src/org/chromium/webapk/shell_apk/WebApkUtils.java", |
| ] |
| deps = [ |
| ":compiled_in_runtime_library_java", |
| ":dex_loader_java", |
| ":shell_apk_manifest", |
| ":shell_apk_resources", |
| "//chrome/android/webapk/libs/common:common_java", |
| ] |
| |
| android_manifest_for_lint = shell_apk_manifest |
| } |
| |
| template("webapk_tmpl") { |
| android_apk(target_name) { |
| forward_variables_from(invoker, |
| [ |
| "android_manifest", |
| "android_manifest_dep", |
| "apk_name", |
| ]) |
| deps = [ |
| ":webapk_java", |
| ] |
| never_incremental = true |
| |
| # Force 32 bit mode on 64 bit devices. |
| native_lib_placeholders = [ "libfoo.so" ] |
| |
| if (!is_java_debug) { |
| proguard_enabled = true |
| proguard_configs = [ |
| "//chrome/android/webapk/shell_apk/proguard.flags", |
| "//chrome/android/java/proguard.flags", |
| "//base/android/proguard/chromium_apk.flags", |
| "//base/android/proguard/chromium_code.flags", |
| ] |
| } |
| } |
| } |
| |
| java_strings_grd("webapk_strings_grd") { |
| grd_file = "//chrome/android/webapk/strings/android_webapk_strings.grd" |
| |
| outputs = [ |
| "values-am/android_webapk_strings.xml", |
| "values-ar/android_webapk_strings.xml", |
| "values-bg/android_webapk_strings.xml", |
| "values-ca/android_webapk_strings.xml", |
| "values-cs/android_webapk_strings.xml", |
| "values-da/android_webapk_strings.xml", |
| "values-de/android_webapk_strings.xml", |
| "values-el/android_webapk_strings.xml", |
| "values/android_webapk_strings.xml", |
| "values-en-rGB/android_webapk_strings.xml", |
| "values-es/android_webapk_strings.xml", |
| "values-es-rUS/android_webapk_strings.xml", |
| "values-fa/android_webapk_strings.xml", |
| "values-fi/android_webapk_strings.xml", |
| "values-tl/android_webapk_strings.xml", |
| "values-fr/android_webapk_strings.xml", |
| "values-hi/android_webapk_strings.xml", |
| "values-hr/android_webapk_strings.xml", |
| "values-hu/android_webapk_strings.xml", |
| "values-in/android_webapk_strings.xml", |
| "values-it/android_webapk_strings.xml", |
| "values-iw/android_webapk_strings.xml", |
| "values-ja/android_webapk_strings.xml", |
| "values-ko/android_webapk_strings.xml", |
| "values-lt/android_webapk_strings.xml", |
| "values-lv/android_webapk_strings.xml", |
| "values-nl/android_webapk_strings.xml", |
| "values-nb/android_webapk_strings.xml", |
| "values-pl/android_webapk_strings.xml", |
| "values-pt-rBR/android_webapk_strings.xml", |
| "values-pt-rPT/android_webapk_strings.xml", |
| "values-ro/android_webapk_strings.xml", |
| "values-ru/android_webapk_strings.xml", |
| "values-sk/android_webapk_strings.xml", |
| "values-sl/android_webapk_strings.xml", |
| "values-sr/android_webapk_strings.xml", |
| "values-sv/android_webapk_strings.xml", |
| "values-sw/android_webapk_strings.xml", |
| "values-th/android_webapk_strings.xml", |
| "values-tr/android_webapk_strings.xml", |
| "values-uk/android_webapk_strings.xml", |
| "values-vi/android_webapk_strings.xml", |
| "values-zh-rCN/android_webapk_strings.xml", |
| "values-zh-rTW/android_webapk_strings.xml", |
| ] |
| } |
| |
| # Template for WebAPK. When a WebAPK is generated: |
| # - Android manifest is customized to the website. |
| # - App icon is extracted from the website and added to the APK's resources. |
| webapk_tmpl("webapk") { |
| android_manifest = shell_apk_manifest |
| android_manifest_dep = ":shell_apk_manifest" |
| apk_name = "WebApk" |
| } |
| |
| webapk_tmpl("maps_go_webapk") { |
| android_manifest = maps_go_apk_manifest |
| android_manifest_dep = ":maps_go_apk_manifest" |
| apk_name = "MapsWebApk" |
| } |
| |
| webapk_tmpl("unbound_webapk") { |
| android_manifest = unbound_shell_apk_manifest |
| android_manifest_dep = ":unbound_shell_apk_manifest" |
| apk_name = "UnboundWebApk" |
| } |
| |
| webapk_tmpl("http_webapk") { |
| android_manifest = shell_apk_http_manifest |
| android_manifest_dep = ":shell_apk_http_manifest" |
| apk_name = "HttpWebApk" |
| } |
| |
| android_library("shell_apk_javatests") { |
| testonly = true |
| java_files = |
| [ "javatests/src/org/chromium/webapk/shell_apk/DexLoaderTest.java" ] |
| deps = [ |
| ":dex_loader_java", |
| "//base:base_java", |
| "//base:base_java_test_support", |
| "//chrome/android/webapk/libs/common:common_java", |
| "//content/public/test/android:content_java_test_support", |
| "//third_party/android_support_test_runner:runner_java", |
| "//third_party/junit", |
| ] |
| srcjar_deps = [ "javatests/dex_optimizer:dex_optimizer_service_aidl" ] |
| } |
| |
| junit_binary("webapk_shell_apk_junit_tests") { |
| java_files = [ |
| "junit/src/org/chromium/webapk/shell_apk/HostBrowserClassLoaderTest.java", |
| "junit/src/org/chromium/webapk/shell_apk/MainActivityTest.java", |
| "junit/src/org/chromium/webapk/shell_apk/WebApkServiceImplWrapperTest.java", |
| "junit/src/org/chromium/webapk/shell_apk/WebApkUtilsTest.java", |
| ] |
| deps = [ |
| ":compiled_in_runtime_library_java", |
| ":dex_loader_java", |
| ":webapk_java", |
| "//chrome/android/webapk/libs/common:common_java", |
| "//chrome/android/webapk/libs/runtime_library:runtime_library_for_tests_java", |
| "//chrome/android/webapk/test:junit_test_support", |
| ] |
| } |