blob: b823a3c103657d3dca8c579486e0bc2393ee1fc9 [file] [log] [blame]
cjhopmancd7694af2014-09-08 00:00:041# Copyright 2014 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
Yipeng Wang158dbc5c2017-06-30 18:16:415import("//base/android/jni_generator/jni_exception_list.gni")
cjhopmancd7694af2014-09-08 00:00:046import("//build/config/android/config.gni")
7import("//build/config/android/rules.gni")
cjhopman2fd48fd2014-09-24 00:52:568import("//third_party/icu/config.gni")
Hitoshi Yoshida06697232018-03-05 04:09:159import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
cjhopmancd7694af2014-09-08 00:00:0410
Peter Wen2e9eaa62017-08-14 16:11:5611content_shell_manifest =
12 "$target_gen_dir/content_shell_manifest/AndroidManifest.xml"
13
cjhopmancd7694af2014-09-08 00:00:0414generate_jni("content_shell_jni_headers") {
15 jni_package = "content/shell"
16 sources = [
scottmg7c7296f42015-02-28 02:23:0917 "java/src/org/chromium/content_shell/Shell.java",
cjhopmancd7694af2014-09-08 00:00:0418 "java/src/org/chromium/content_shell/ShellManager.java",
cjhopmancd7694af2014-09-08 00:00:0419 ]
20}
21
Yipeng Wang158dbc5c2017-06-30 18:16:4122generate_jni_registration("content_shell_jni_registration") {
23 testonly = true
24 target = ":content_shell_apk"
25 output = "$root_gen_dir/content/shell/android/${target_name}.h"
26 exception_files = jni_exception_files
27}
28
cjhopmancd7694af2014-09-08 00:00:0429shared_library("libcontent_shell_content_view") {
cjhopman2fd48fd2014-09-24 00:52:5630 testonly = true
cjhopmancd7694af2014-09-08 00:00:0431 deps = [
32 ":content_shell_jni_headers",
Yipeng Wang158dbc5c2017-06-30 18:16:4133 ":content_shell_jni_registration",
agrieved7a71c882015-11-20 19:53:2834 "//components/crash/content/browser",
cjhopman2fd48fd2014-09-24 00:52:5635 "//content/shell:content_shell_lib",
36 "//content/shell:pak",
jrummell397905b2017-03-20 22:36:2537 "//media",
agrieved7a71c882015-11-20 19:53:2838 "//skia",
cjhopmancd7694af2014-09-08 00:00:0439 ]
Yipeng Wang158dbc5c2017-06-30 18:16:4140
41 # Explicit dependency required for JNI registration to be able to
42 # find the native side functions.
43 if (is_component_build) {
44 deps += [
45 "//device/gamepad",
Yipeng Wang158dbc5c2017-06-30 18:16:4146 "//media/midi",
47 ]
48 }
cjhopmancd7694af2014-09-08 00:00:0449 sources = [
cjhopman2fd48fd2014-09-24 00:52:5650 "shell_library_loader.cc",
cjhopmancd7694af2014-09-08 00:00:0451 ]
cjhopmancd7694af2014-09-08 00:00:0452}
53
Jinsuk Kim7ff0db5c2018-05-16 03:03:0554shared_library("libcontent_native_test") {
55 testonly = true
56 deps = [
57 ":content_test_jni_registration",
58 "//base",
59 "//content/public/test/android:content_native_test_support",
60 "//content/shell:content_shell_lib",
61 ]
62
63 sources = [
64 "shell_test_library_loader.cc",
65 ]
66}
67
cjhopmancd7694af2014-09-08 00:00:0468android_resources("content_shell_java_resources") {
cjhopman2fd48fd2014-09-24 00:52:5669 testonly = true
cjhopmancd7694af2014-09-08 00:00:0470 resource_dirs = [ "java/res" ]
71 custom_package = "org.chromium.content_shell"
72}
73
74android_library("content_shell_java") {
cjhopman2fd48fd2014-09-24 00:52:5675 testonly = true
cjhopmancd7694af2014-09-08 00:00:0476 deps = [
agrieved7a71c882015-11-20 19:53:2877 ":content_shell_java_resources",
Peter Wen2e9eaa62017-08-14 16:11:5678 ":content_shell_manifest",
cjhopmancd7694af2014-09-08 00:00:0479 "//base:base_java",
Jinsuk Kim71c0c57f2018-02-22 01:00:2080 "//components/content_view:content_view_java",
Jinsuk Kim06918e42018-05-29 23:29:2081 "//components/embedder_support/android:media_java",
cjhopmancd7694af2014-09-08 00:00:0482 "//content/public/android:content_java",
mcasas4e216e72016-07-28 21:28:3883 "//device/geolocation:geolocation_java",
clamy5f5cab52016-02-19 14:42:0084 "//media/base/android:media_java",
mcasase1755002016-02-19 22:54:5185 "//media/capture/video/android:capture_java",
agrieveed37c922016-11-04 17:43:0186 "//mojo/public/java:system_java",
cjhopmancd7694af2014-09-08 00:00:0487 "//net/android:net_java",
88 "//ui/android:ui_java",
cjhopmancd7694af2014-09-08 00:00:0489 ]
agrieve696e6a52016-03-23 19:54:4590 java_files = [
91 "java/src/org/chromium/content_shell/Shell.java",
agrieve696e6a52016-03-23 19:54:4592 "java/src/org/chromium/content_shell/ShellManager.java",
jinsukkime03fba32017-02-24 05:57:0593 "java/src/org/chromium/content_shell/ShellViewAndroidDelegate.java",
agrieve696e6a52016-03-23 19:54:4594 ]
cjhopmancd7694af2014-09-08 00:00:0495
Andrew Grieve5d61dd42017-12-22 02:36:0796 android_manifest_for_lint = content_shell_manifest
Peter Wen2e9eaa62017-08-14 16:11:5697}
sievers0350cad2014-12-03 23:50:5598
99jinja_template("content_shell_manifest") {
100 testonly = true
sievers4c08a9c2014-12-05 01:57:28101 input = "shell_apk/AndroidManifest.xml.jinja2"
sievers0350cad2014-12-03 23:50:55102 output = content_shell_manifest
103}
104
cjhopmancd7694af2014-09-08 00:00:04105android_resources("content_shell_apk_resources") {
cjhopman2fd48fd2014-09-24 00:52:56106 testonly = true
cjhopmancd7694af2014-09-08 00:00:04107 resource_dirs = [ "shell_apk/res" ]
108 deps = [
scottmg7afc4092014-12-03 19:22:42109 ":content_shell_java_resources",
cjhopmancd7694af2014-09-08 00:00:04110 ]
sievers0350cad2014-12-03 23:50:55111 android_manifest = content_shell_manifest
agrieve24b56ca82016-06-30 14:46:33112 android_manifest_dep = ":content_shell_manifest"
cjhopmancd7694af2014-09-08 00:00:04113}
114
cjhopman394dfd12014-09-09 08:55:54115android_library("content_shell_apk_java") {
cjhopman2fd48fd2014-09-24 00:52:56116 testonly = true
Jay Civelli9cf157082017-07-08 06:33:23117
118 srcjar_deps = [ ":content_javatests_aidl" ]
119
cjhopman394dfd12014-09-09 08:55:54120 deps = [
121 ":content_shell_apk_resources",
122 ":content_shell_java",
agrieve35287052016-07-05 19:48:20123 ":content_shell_manifest",
cjhopman394dfd12014-09-09 08:55:54124 "//base:base_java",
125 "//content/public/android:content_java",
mcasase1755002016-02-19 22:54:51126 "//media/capture/video/android:capture_java",
cjhopman394dfd12014-09-09 08:55:54127 "//net/android:net_java",
Jay Civelli9cf157082017-07-08 06:33:23128 "//third_party/jsr-305:jsr_305_javalib",
cjhopman394dfd12014-09-09 08:55:54129 "//ui/android:ui_java",
130 ]
agrieve35287052016-07-05 19:48:20131
Andrew Grieve5d61dd42017-12-22 02:36:07132 android_manifest_for_lint = content_shell_manifest
agrieve35287052016-07-05 19:48:20133
agrieve696e6a52016-03-23 19:54:45134 java_files = [
rsesekabd3ee72017-01-24 19:38:12135 "shell_apk/src/org/chromium/content_shell_apk/ChildProcessLauncherTestHelperService.java",
jcivelli93637722017-04-28 05:18:33136 "shell_apk/src/org/chromium/content_shell_apk/ChildProcessLauncherTestUtils.java",
agrieve696e6a52016-03-23 19:54:45137 "shell_apk/src/org/chromium/content_shell_apk/ContentShellActivity.java",
138 "shell_apk/src/org/chromium/content_shell_apk/ContentShellApplication.java",
Jay Civelli9cf157082017-07-08 06:33:23139 "shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService.java",
140 "shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService0.java",
141 "shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService1.java",
142 ]
143}
144
145android_aidl("content_javatests_aidl") {
146 import_include = [ "shell_apk/src" ]
147 sources = [
148 "shell_apk/src/org/chromium/content_shell_apk/IChildProcessTest.aidl",
agrieve696e6a52016-03-23 19:54:45149 ]
cjhopman394dfd12014-09-09 08:55:54150}
151
pkotwicz8c7027d2015-11-11 06:30:07152android_assets("content_shell_assets") {
cjhopman2fd48fd2014-09-24 00:52:56153 sources = [
scottmg7afc4092014-12-03 19:22:42154 "$root_out_dir/content_shell.pak",
cjhopman2fd48fd2014-09-24 00:52:56155 ]
pkotwicz8c7027d2015-11-11 06:30:07156 disable_compression = true
brettwf9505792015-06-03 19:43:38157 deps = [
158 "//content/shell:pak",
pkotwicz8c7027d2015-11-11 06:30:07159 "//third_party/icu:icu_assets",
brettwf9505792015-06-03 19:43:38160 ]
Hitoshi Yoshida06697232018-03-05 04:09:15161 if (use_v8_context_snapshot) {
162 deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
163 } else {
164 deps += [ "//v8:v8_external_startup_data_assets" ]
165 }
cjhopman2fd48fd2014-09-24 00:52:56166}
167
cjhopmancd7694af2014-09-08 00:00:04168android_apk("content_shell_apk") {
cjhopman2fd48fd2014-09-24 00:52:56169 testonly = true
Jinsuk Kim8d799fe92018-02-21 05:57:52170 enable_multidex = true
cjhopmancd7694af2014-09-08 00:00:04171 deps = [
brettwf9505792015-06-03 19:43:38172 ":content_shell_apk_java",
pkotwicz8c7027d2015-11-11 06:30:07173 ":content_shell_assets",
cjhopmancd7694af2014-09-08 00:00:04174 ":content_shell_java",
cjhopmancd7694af2014-09-08 00:00:04175 "//base:base_java",
176 "//content/public/android:content_java",
jbudorick7305b4bb2016-04-27 16:15:31177 "//content/public/test/android:layouttest_java_support",
mcasase1755002016-02-19 22:54:51178 "//media/capture/video/android:capture_java",
cjhopmancd7694af2014-09-08 00:00:04179 "//net/android:net_java",
agrieveda37b9ba52015-12-03 02:17:06180 "//third_party/mesa:osmesa",
cjhopmancd7694af2014-09-08 00:00:04181 "//ui/android:ui_java",
182 ]
183 apk_name = "ContentShell"
sievers0350cad2014-12-03 23:50:55184 android_manifest = content_shell_manifest
agrievec6811b422016-06-23 02:25:09185 android_manifest_dep = ":content_shell_manifest"
agrieve48bd27e2016-06-22 21:04:07186 shared_libraries = [ ":libcontent_shell_content_view" ]
agrieveda37b9ba52015-12-03 02:17:06187 loadable_modules = [ "$root_out_dir/libosmesa.so" ]
Yipeng Wang1cbf27ea2017-07-17 15:30:03188 command_line_flags_file = "content-shell-command-line"
cjhopmancd7694af2014-09-08 00:00:04189}
cjhopman394dfd12014-09-09 08:55:54190
191android_library("content_shell_test_java") {
cjhopman2fd48fd2014-09-24 00:52:56192 testonly = true
cjhopman394dfd12014-09-09 08:55:54193 deps = [
cjhopman394dfd12014-09-09 08:55:54194 ":content_shell_apk_java",
agrieved7a71c882015-11-20 19:53:28195 ":content_shell_java",
cjhopman394dfd12014-09-09 08:55:54196 "//base:base_java",
197 "//base:base_java_test_support",
agrieved7a71c882015-11-20 19:53:28198 "//content/public/android:content_java",
cjhopman394dfd12014-09-09 08:55:54199 "//content/public/test/android:content_java_test_support",
200 "//content/shell/android:content_shell_java",
yolandyane85326c2017-03-04 04:19:13201 "//third_party/android_support_test_runner:rules_java",
yolandyan45001472016-12-21 21:12:42202 "//third_party/android_support_test_runner:runner_java",
yolandyane85326c2017-03-04 04:19:13203 "//third_party/junit:junit",
boliu16136c02016-10-06 00:55:28204 "//ui/android:ui_java",
cjhopman394dfd12014-09-09 08:55:54205 ]
agrieve696e6a52016-03-23 19:54:45206 java_files = [
207 "javatests/src/org/chromium/content_shell_apk/ContentShellPreconditionsTest.java",
208 "javatests/src/org/chromium/content_shell_apk/ContentShellShellManagementTest.java",
yolandyane85326c2017-03-04 04:19:13209 "javatests/src/org/chromium/content_shell_apk/ContentShellActivityTestRule.java",
agrieve696e6a52016-03-23 19:54:45210 "javatests/src/org/chromium/content_shell_apk/ContentShellUrlTest.java",
211 ]
cjhopman394dfd12014-09-09 08:55:54212}
213
Jinsuk Kim7ff0db5c2018-05-16 03:03:05214generate_jni_registration("content_test_jni_registration") {
215 testonly = true
216 target = ":content_shell_test_apk__apk"
217 output = "$root_gen_dir/content/shell/android/${target_name}.h"
218 exception_files = jni_exception_files
219}
220
mikecase56d80d72015-06-03 00:57:26221instrumentation_test_apk("content_shell_test_apk") {
cjhopman394dfd12014-09-09 08:55:54222 deps = [
Andrew Grieve524c5cdd2018-03-16 21:18:13223 "//base:base_java_test_support",
Mohamed Heikal6452ea12018-03-20 20:47:08224 "//base:base_javatests",
agrieved7a71c882015-11-20 19:53:28225 "//content/public/android:content_javatests",
cjhopman394dfd12014-09-09 08:55:54226 "//net/android:net_javatests",
yolandyan45001472016-12-21 21:12:42227 "//third_party/android_support_test_runner:runner_java",
cjhopman394dfd12014-09-09 08:55:54228 ]
cjhopman7b9ba2e2015-04-22 23:31:53229 apk_under_test = ":content_shell_apk"
cjhopman394dfd12014-09-09 08:55:54230 apk_name = "ContentShellTest"
Jinsuk Kim7ff0db5c2018-05-16 03:03:05231 shared_libraries = [ ":libcontent_native_test" ]
cjhopman394dfd12014-09-09 08:55:54232 android_manifest = "javatests/AndroidManifest.xml"
233}
cjhopmanaac45ed82014-10-17 22:08:19234
simonb51958d62015-09-01 19:04:42235if (current_cpu != "x64") {
scottmg6da1b582014-12-08 18:31:15236 chromium_linker_test_manifest =
237 "$target_gen_dir/linker_test_apk/AndroidManifest.xml"
sievers0350cad2014-12-03 23:50:55238
239 jinja_template("chromium_linker_test_manifest") {
240 testonly = true
sievers4c08a9c2014-12-05 01:57:28241 input = "linker_test_apk/AndroidManifest.xml.jinja2"
sievers0350cad2014-12-03 23:50:55242 output = chromium_linker_test_manifest
243 }
244
cjhopmanaac45ed82014-10-17 22:08:19245 android_resources("linker_resources") {
brettwf9505792015-06-03 19:43:38246 testonly = true
cjhopmanaac45ed82014-10-17 22:08:19247 resource_dirs = [ "linker_test_apk/res" ]
sievers0350cad2014-12-03 23:50:55248 android_manifest = chromium_linker_test_manifest
agrieve24b56ca82016-06-30 14:46:33249 android_manifest_dep = ":chromium_linker_test_manifest"
cjhopmanaac45ed82014-10-17 22:08:19250 }
251
jbudorickbf713872017-01-04 01:15:18252 _linker_test_apk_target_name = "chromium_linker_test_apk__apk"
253 _linker_test_apk_test_runner_target_name =
254 "chromium_linker_test_apk__test_runner_script"
255
256 android_apk(_linker_test_apk_target_name) {
cjhopmanaac45ed82014-10-17 22:08:19257 testonly = true
Jinsuk Kim8d799fe92018-02-21 05:57:52258 enable_multidex = true
cjhopmanaac45ed82014-10-17 22:08:19259 deps = [
pkotwicz8c7027d2015-11-11 06:30:07260 ":content_shell_assets",
cjhopmanaac45ed82014-10-17 22:08:19261 ":content_shell_java",
cjhopmanaac45ed82014-10-17 22:08:19262 ":linker_resources",
cjhopmanaac45ed82014-10-17 22:08:19263 "//base:base_java",
264 "//content/public/android:content_java",
265 "//ui/android:ui_java",
266 ]
sievers0350cad2014-12-03 23:50:55267 android_manifest = chromium_linker_test_manifest
agrievec6811b422016-06-23 02:25:09268 android_manifest_dep = ":chromium_linker_test_manifest"
cjhopmanaac45ed82014-10-17 22:08:19269 apk_name = "ChromiumLinkerTest"
agrieve696e6a52016-03-23 19:54:45270 java_files = [
271 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestActivity.java",
272 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestApplication.java",
273 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/LinkerTests.java",
274 ]
agrieve48bd27e2016-06-22 21:04:07275 shared_libraries = [ ":linker_test" ]
cjhopmanaac45ed82014-10-17 22:08:19276 use_chromium_linker = true
277 enable_chromium_linker_tests = true
278 }
279
jbudorickbf713872017-01-04 01:15:18280 test_runner_script(_linker_test_apk_test_runner_target_name) {
281 test_name = "chromium_linker_test_apk"
282 test_type = "linker"
283 apk_target = ":$_linker_test_apk_target_name"
284 ignore_all_data_deps = true
285 }
286
287 group("chromium_linker_test_apk") {
288 testonly = true
289 deps = [
290 ":$_linker_test_apk_target_name",
291 ":$_linker_test_apk_test_runner_target_name",
292 ]
293 }
294
cjhopmanaac45ed82014-10-17 22:08:19295 shared_library("linker_test") {
296 testonly = true
297 sources = [
298 "linker_test_apk/chromium_linker_test_android.cc",
299 "linker_test_apk/chromium_linker_test_linker_tests.cc",
300 ]
301
302 deps = [
303 ":linker_test_jni_headers",
Yipeng Wang158dbc5c2017-06-30 18:16:41304 ":linker_test_jni_registration",
cjhopmanaac45ed82014-10-17 22:08:19305 "//content/shell:content_shell_lib",
scottmg7afc4092014-12-03 19:22:42306
cjhopmanaac45ed82014-10-17 22:08:19307 # Required to include "content/public/browser/android/compositor.h"
308 # in chromium_linker_test_android.cc :-(
309 "//skia",
simonb01cb97b2015-08-24 15:54:09310 "//third_party/re2",
cjhopmanaac45ed82014-10-17 22:08:19311 ]
Yipeng Wang158dbc5c2017-06-30 18:16:41312
313 # Explicit dependency required for JNI registration to be able to
314 # find the native side functions.
315 if (is_component_build) {
316 deps += [
317 "//device/gamepad",
Yipeng Wang158dbc5c2017-06-30 18:16:41318 "//media/midi",
319 ]
320 }
cjhopmanaac45ed82014-10-17 22:08:19321 }
322
cjhopmanaac45ed82014-10-17 22:08:19323 generate_jni("linker_test_jni_headers") {
324 testonly = true
325 jni_package = "content/shell"
326 sources = [
327 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/LinkerTests.java",
328 ]
329 }
Yipeng Wang158dbc5c2017-06-30 18:16:41330
331 generate_jni_registration("linker_test_jni_registration") {
332 testonly = true
333 target = ":chromium_linker_test_apk__apk"
334 output =
335 "$root_gen_dir/content/shell/android/linker_test_apk/${target_name}.h"
336 exception_files = jni_exception_files
337 }
cjhopmanaac45ed82014-10-17 22:08:19338}
pkotwicz93fa232b2015-11-11 17:55:07339
pkotwicz93fa232b2015-11-11 17:55:07340android_library("content_shell_browsertests_java") {
341 testonly = true
342 deps = [
343 ":content_shell_java",
344 "//base:base_java",
345 "//content/public/android:content_java",
346 "//testing/android/native_test:native_test_java",
347 "//ui/android:ui_java",
348 ]
agrieve696e6a52016-03-23 19:54:45349 java_files = [ "browsertests/src/org/chromium/content_shell/browsertests/ContentShellBrowserTestActivity.java" ]
pkotwicz93fa232b2015-11-11 17:55:07350}