OLD | NEW |
| (Empty) |
1 # Copyright 2015 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 import("//build/config/android/rules.gni") | |
6 | |
7 declare_args() { | |
8 # The origin URL of minted apks, for example: "foo.com" | |
9 manifest_package_webapk_origin = "template" | |
10 | |
11 # The browser to which WebAPKs will be bound. | |
12 runtime_host = "com.google.android.apps.chrome" | |
13 | |
14 # The URL for the minted apks, for example: "https://foo.com" | |
15 host_url = "https://www.template.com/home_page" | |
16 scope_url_host = "www.template.com" | |
17 | |
18 # The message authentication code from Chrome for identity verification. | |
19 mac = "template" | |
20 | |
21 # The scope of the Urls that the Minted APKs could navigate to. | |
22 scope = "https://www.template.com" | |
23 } | |
24 | |
25 manifest_package_webapk = "org.chromium.webapk" | |
26 | |
27 shell_apk_manifest = "$target_gen_dir/shell_apk_manifest/AndroidManifest.xml" | |
28 | |
29 jinja_template("shell_apk_manifest") { | |
30 input = "AndroidManifest.xml" | |
31 output = shell_apk_manifest | |
32 | |
33 # The variable values must be non empty and globally unique in | |
34 # AndroidManifest.xml in order for the string substitution in APKMinting.java | |
35 # to work. | |
36 variables = [ | |
37 "manifest_package=$manifest_package_webapk.$manifest_package_webapk_origin", | |
38 "min_sdk_version=16", | |
39 "target_sdk_version=23", | |
40 "host_url=$host_url", | |
41 "runtime_host=$runtime_host", | |
42 "scope_url_host=$scope_url_host", | |
43 "mac=$mac", | |
44 "scope=$scope", | |
45 ] | |
46 } | |
47 | |
48 android_resources("shell_apk_resources") { | |
49 resource_dirs = [ "res" ] | |
50 custom_package = "org.chromium.webapk.shell_apk" | |
51 } | |
52 | |
53 android_library("dex_loader_lib") { | |
54 java_files = [ "src/org/chromium/webapk/shell_apk/DexLoader.java" ] | |
55 } | |
56 | |
57 # Template for WebAPK. When a WebAPK is generated: | |
58 # - Android manifest is customized to the website. | |
59 # - App icon is extracted from the website and added to the APK's resources. | |
60 android_apk("webapk") { | |
61 android_manifest = shell_apk_manifest | |
62 apk_name = "WebApk.$manifest_package_webapk_origin" | |
63 native_lib_placeholders = [ "libfoo.so" ] | |
64 java_files = [ | |
65 "src/org/chromium/webapk/shell_apk/MainActivity.java", | |
66 "src/org/chromium/webapk/shell_apk/WebApkApplication.java", | |
67 "src/org/chromium/webapk/shell_apk/WebApkServiceFactory.java", | |
68 "src/org/chromium/webapk/shell_apk/Reflect.java", | |
69 ] | |
70 chromium_code = false | |
71 proguard_enabled = true | |
72 proguard_configs = [ "proguard.flags" ] | |
73 deps = [ | |
74 ":dex_loader_lib", | |
75 ":shell_apk_manifest", | |
76 ":shell_apk_resources", | |
77 "//webapk/libs/common", | |
78 ] | |
79 } | |
80 | |
81 android_library("shell_apk_javatests") { | |
82 testonly = true | |
83 java_files = | |
84 [ "javatests/src/org/chromium/webapk/shell_apk/DexLoaderTest.java" ] | |
85 deps = [ | |
86 ":dex_loader_lib", | |
87 "//base:base_java", | |
88 "//content/public/test/android:content_java_test_support", | |
89 "//webapk/libs/common", | |
90 ] | |
91 srcjar_deps = [ "javatests/dex_optimizer:dex_optimizer_service_aidl" ] | |
92 } | |
OLD | NEW |