blob: d379baa0899db6525b6d041f15d1f26db31918c5 [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")
cjhopmancd7694af2014-09-08 00:00:049
Peter Wen2e9eaa62017-08-14 16:11:5610content_shell_manifest =
11 "$target_gen_dir/content_shell_manifest/AndroidManifest.xml"
12
cjhopmancd7694af2014-09-08 00:00:0413generate_jni("content_shell_jni_headers") {
14 jni_package = "content/shell"
15 sources = [
scottmg7c7296f42015-02-28 02:23:0916 "java/src/org/chromium/content_shell/Shell.java",
cjhopmancd7694af2014-09-08 00:00:0417 "java/src/org/chromium/content_shell/ShellLayoutTestUtils.java",
18 "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",
thomasanderson84fa8b02017-05-18 23:38:4734 "//build/config:exe_and_shlib_deps",
agrieved7a71c882015-11-20 19:53:2835 "//components/crash/content/browser",
cjhopman2fd48fd2014-09-24 00:52:5636 "//content/shell:content_shell_lib",
37 "//content/shell:pak",
jrummell397905b2017-03-20 22:36:2538 "//media",
agrieved7a71c882015-11-20 19:53:2839 "//skia",
cjhopmancd7694af2014-09-08 00:00:0440 ]
Yipeng Wang158dbc5c2017-06-30 18:16:4141
42 # Explicit dependency required for JNI registration to be able to
43 # find the native side functions.
44 if (is_component_build) {
45 deps += [
46 "//device/gamepad",
Yipeng Wang158dbc5c2017-06-30 18:16:4147 "//device/sensors",
48 "//media/midi",
49 ]
50 }
cjhopmancd7694af2014-09-08 00:00:0451 sources = [
cjhopman2fd48fd2014-09-24 00:52:5652 "shell_library_loader.cc",
cjhopmancd7694af2014-09-08 00:00:0453 ]
cjhopmancd7694af2014-09-08 00:00:0454}
55
56android_resources("content_shell_java_resources") {
cjhopman2fd48fd2014-09-24 00:52:5657 testonly = true
cjhopmancd7694af2014-09-08 00:00:0458 resource_dirs = [ "java/res" ]
59 custom_package = "org.chromium.content_shell"
60}
61
62android_library("content_shell_java") {
cjhopman2fd48fd2014-09-24 00:52:5663 testonly = true
cjhopmancd7694af2014-09-08 00:00:0464 deps = [
agrieved7a71c882015-11-20 19:53:2865 ":content_shell_java_resources",
Peter Wen2e9eaa62017-08-14 16:11:5666 ":content_shell_manifest",
cjhopmancd7694af2014-09-08 00:00:0467 "//base:base_java",
jbudorick2d40c48d2017-01-09 21:05:0068 "//base:base_java_test_support",
cjhopmancd7694af2014-09-08 00:00:0469 "//content/public/android:content_java",
mcasas4e216e72016-07-28 21:28:3870 "//device/geolocation:geolocation_java",
clamy5f5cab52016-02-19 14:42:0071 "//media/base/android:media_java",
mcasase1755002016-02-19 22:54:5172 "//media/capture/video/android:capture_java",
agrieveed37c922016-11-04 17:43:0173 "//mojo/public/java:system_java",
cjhopmancd7694af2014-09-08 00:00:0474 "//net/android:net_java",
75 "//ui/android:ui_java",
cjhopmancd7694af2014-09-08 00:00:0476 ]
agrieve696e6a52016-03-23 19:54:4577 java_files = [
78 "java/src/org/chromium/content_shell/Shell.java",
79 "java/src/org/chromium/content_shell/ShellLayoutTestUtils.java",
80 "java/src/org/chromium/content_shell/ShellManager.java",
jinsukkime03fba32017-02-24 05:57:0581 "java/src/org/chromium/content_shell/ShellViewAndroidDelegate.java",
agrieve696e6a52016-03-23 19:54:4582 ]
cjhopmancd7694af2014-09-08 00:00:0483
Andrew Grieve5d61dd42017-12-22 02:36:0784 android_manifest_for_lint = content_shell_manifest
Peter Wen2e9eaa62017-08-14 16:11:5685}
sievers0350cad2014-12-03 23:50:5586
87jinja_template("content_shell_manifest") {
88 testonly = true
sievers4c08a9c2014-12-05 01:57:2889 input = "shell_apk/AndroidManifest.xml.jinja2"
sievers0350cad2014-12-03 23:50:5590 output = content_shell_manifest
91}
92
cjhopmancd7694af2014-09-08 00:00:0493android_resources("content_shell_apk_resources") {
cjhopman2fd48fd2014-09-24 00:52:5694 testonly = true
cjhopmancd7694af2014-09-08 00:00:0495 resource_dirs = [ "shell_apk/res" ]
96 deps = [
scottmg7afc4092014-12-03 19:22:4297 ":content_shell_java_resources",
cjhopmancd7694af2014-09-08 00:00:0498 ]
sievers0350cad2014-12-03 23:50:5599 android_manifest = content_shell_manifest
agrieve24b56ca82016-06-30 14:46:33100 android_manifest_dep = ":content_shell_manifest"
cjhopmancd7694af2014-09-08 00:00:04101}
102
cjhopman394dfd12014-09-09 08:55:54103android_library("content_shell_apk_java") {
cjhopman2fd48fd2014-09-24 00:52:56104 testonly = true
Jay Civelli9cf157082017-07-08 06:33:23105
106 srcjar_deps = [ ":content_javatests_aidl" ]
107
cjhopman394dfd12014-09-09 08:55:54108 deps = [
109 ":content_shell_apk_resources",
110 ":content_shell_java",
agrieve35287052016-07-05 19:48:20111 ":content_shell_manifest",
cjhopman394dfd12014-09-09 08:55:54112 "//base:base_java",
113 "//content/public/android:content_java",
mcasase1755002016-02-19 22:54:51114 "//media/capture/video/android:capture_java",
cjhopman394dfd12014-09-09 08:55:54115 "//net/android:net_java",
Jay Civelli9cf157082017-07-08 06:33:23116 "//third_party/jsr-305:jsr_305_javalib",
cjhopman394dfd12014-09-09 08:55:54117 "//ui/android:ui_java",
118 ]
agrieve35287052016-07-05 19:48:20119
Andrew Grieve5d61dd42017-12-22 02:36:07120 android_manifest_for_lint = content_shell_manifest
agrieve35287052016-07-05 19:48:20121
agrieve696e6a52016-03-23 19:54:45122 java_files = [
rsesekabd3ee72017-01-24 19:38:12123 "shell_apk/src/org/chromium/content_shell_apk/ChildProcessLauncherTestHelperService.java",
jcivelli93637722017-04-28 05:18:33124 "shell_apk/src/org/chromium/content_shell_apk/ChildProcessLauncherTestUtils.java",
agrieve696e6a52016-03-23 19:54:45125 "shell_apk/src/org/chromium/content_shell_apk/ContentShellActivity.java",
126 "shell_apk/src/org/chromium/content_shell_apk/ContentShellApplication.java",
Jay Civelli9cf157082017-07-08 06:33:23127 "shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService.java",
128 "shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService0.java",
129 "shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService1.java",
130 ]
131}
132
133android_aidl("content_javatests_aidl") {
134 import_include = [ "shell_apk/src" ]
135 sources = [
136 "shell_apk/src/org/chromium/content_shell_apk/IChildProcessTest.aidl",
agrieve696e6a52016-03-23 19:54:45137 ]
cjhopman394dfd12014-09-09 08:55:54138}
139
pkotwicz8c7027d2015-11-11 06:30:07140android_assets("content_shell_assets") {
cjhopman2fd48fd2014-09-24 00:52:56141 sources = [
scottmg7afc4092014-12-03 19:22:42142 "$root_out_dir/content_shell.pak",
cjhopman2fd48fd2014-09-24 00:52:56143 ]
pkotwicz8c7027d2015-11-11 06:30:07144 disable_compression = true
brettwf9505792015-06-03 19:43:38145 deps = [
146 "//content/shell:pak",
pkotwicz8c7027d2015-11-11 06:30:07147 "//third_party/icu:icu_assets",
148 "//v8:v8_external_startup_data_assets",
brettwf9505792015-06-03 19:43:38149 ]
cjhopman2fd48fd2014-09-24 00:52:56150}
151
cjhopmancd7694af2014-09-08 00:00:04152android_apk("content_shell_apk") {
cjhopman2fd48fd2014-09-24 00:52:56153 testonly = true
cjhopmancd7694af2014-09-08 00:00:04154 deps = [
brettwf9505792015-06-03 19:43:38155 ":content_shell_apk_java",
pkotwicz8c7027d2015-11-11 06:30:07156 ":content_shell_assets",
cjhopmancd7694af2014-09-08 00:00:04157 ":content_shell_java",
cjhopmancd7694af2014-09-08 00:00:04158 "//base:base_java",
159 "//content/public/android:content_java",
jbudorick7305b4bb2016-04-27 16:15:31160 "//content/public/test/android:layouttest_java_support",
mcasase1755002016-02-19 22:54:51161 "//media/capture/video/android:capture_java",
cjhopmancd7694af2014-09-08 00:00:04162 "//net/android:net_java",
agrieveda37b9ba52015-12-03 02:17:06163 "//third_party/mesa:osmesa",
cjhopmancd7694af2014-09-08 00:00:04164 "//ui/android:ui_java",
165 ]
166 apk_name = "ContentShell"
sievers0350cad2014-12-03 23:50:55167 android_manifest = content_shell_manifest
agrievec6811b422016-06-23 02:25:09168 android_manifest_dep = ":content_shell_manifest"
agrieve48bd27e2016-06-22 21:04:07169 shared_libraries = [ ":libcontent_shell_content_view" ]
agrieveda37b9ba52015-12-03 02:17:06170 loadable_modules = [ "$root_out_dir/libosmesa.so" ]
Yipeng Wang1cbf27ea2017-07-17 15:30:03171 command_line_flags_file = "content-shell-command-line"
cjhopmancd7694af2014-09-08 00:00:04172}
cjhopman394dfd12014-09-09 08:55:54173
174android_library("content_shell_test_java") {
cjhopman2fd48fd2014-09-24 00:52:56175 testonly = true
cjhopman394dfd12014-09-09 08:55:54176 deps = [
cjhopman394dfd12014-09-09 08:55:54177 ":content_shell_apk_java",
agrieved7a71c882015-11-20 19:53:28178 ":content_shell_java",
cjhopman394dfd12014-09-09 08:55:54179 "//base:base_java",
180 "//base:base_java_test_support",
agrieved7a71c882015-11-20 19:53:28181 "//content/public/android:content_java",
cjhopman394dfd12014-09-09 08:55:54182 "//content/public/test/android:content_java_test_support",
183 "//content/shell/android:content_shell_java",
yolandyane85326c2017-03-04 04:19:13184 "//third_party/android_support_test_runner:rules_java",
yolandyan45001472016-12-21 21:12:42185 "//third_party/android_support_test_runner:runner_java",
yolandyane85326c2017-03-04 04:19:13186 "//third_party/junit:junit",
boliu16136c02016-10-06 00:55:28187 "//ui/android:ui_java",
cjhopman394dfd12014-09-09 08:55:54188 ]
agrieve696e6a52016-03-23 19:54:45189 java_files = [
190 "javatests/src/org/chromium/content_shell_apk/ContentShellPreconditionsTest.java",
191 "javatests/src/org/chromium/content_shell_apk/ContentShellShellManagementTest.java",
192 "javatests/src/org/chromium/content_shell_apk/ContentShellTestBase.java",
yolandyane85326c2017-03-04 04:19:13193 "javatests/src/org/chromium/content_shell_apk/ContentShellTestCommon.java",
194 "javatests/src/org/chromium/content_shell_apk/ContentShellActivityTestRule.java",
agrieve696e6a52016-03-23 19:54:45195 "javatests/src/org/chromium/content_shell_apk/ContentShellUrlTest.java",
196 ]
cjhopman394dfd12014-09-09 08:55:54197}
198
mikecase56d80d72015-06-03 00:57:26199instrumentation_test_apk("content_shell_test_apk") {
cjhopman394dfd12014-09-09 08:55:54200 deps = [
cjhopman394dfd12014-09-09 08:55:54201 "//base:base_javatests",
agrieved7a71c882015-11-20 19:53:28202 "//content/public/android:content_javatests",
ke.he48ce2ae2017-02-02 15:31:32203 "//device/sensors:javatests",
cjhopman394dfd12014-09-09 08:55:54204 "//net/android:net_javatests",
yolandyan45001472016-12-21 21:12:42205 "//third_party/android_support_test_runner:runner_java",
cjhopman394dfd12014-09-09 08:55:54206 ]
cjhopman7b9ba2e2015-04-22 23:31:53207 apk_under_test = ":content_shell_apk"
cjhopman394dfd12014-09-09 08:55:54208 apk_name = "ContentShellTest"
209 android_manifest = "javatests/AndroidManifest.xml"
210}
cjhopmanaac45ed82014-10-17 22:08:19211
simonb51958d62015-09-01 19:04:42212if (current_cpu != "x64") {
scottmg6da1b582014-12-08 18:31:15213 chromium_linker_test_manifest =
214 "$target_gen_dir/linker_test_apk/AndroidManifest.xml"
sievers0350cad2014-12-03 23:50:55215
216 jinja_template("chromium_linker_test_manifest") {
217 testonly = true
sievers4c08a9c2014-12-05 01:57:28218 input = "linker_test_apk/AndroidManifest.xml.jinja2"
sievers0350cad2014-12-03 23:50:55219 output = chromium_linker_test_manifest
220 }
221
cjhopmanaac45ed82014-10-17 22:08:19222 android_resources("linker_resources") {
brettwf9505792015-06-03 19:43:38223 testonly = true
cjhopmanaac45ed82014-10-17 22:08:19224 resource_dirs = [ "linker_test_apk/res" ]
sievers0350cad2014-12-03 23:50:55225 android_manifest = chromium_linker_test_manifest
agrieve24b56ca82016-06-30 14:46:33226 android_manifest_dep = ":chromium_linker_test_manifest"
cjhopmanaac45ed82014-10-17 22:08:19227 }
228
jbudorickbf713872017-01-04 01:15:18229 _linker_test_apk_target_name = "chromium_linker_test_apk__apk"
230 _linker_test_apk_test_runner_target_name =
231 "chromium_linker_test_apk__test_runner_script"
232
233 android_apk(_linker_test_apk_target_name) {
cjhopmanaac45ed82014-10-17 22:08:19234 testonly = true
235 deps = [
pkotwicz8c7027d2015-11-11 06:30:07236 ":content_shell_assets",
cjhopmanaac45ed82014-10-17 22:08:19237 ":content_shell_java",
cjhopmanaac45ed82014-10-17 22:08:19238 ":linker_resources",
cjhopmanaac45ed82014-10-17 22:08:19239 "//base:base_java",
240 "//content/public/android:content_java",
241 "//ui/android:ui_java",
242 ]
sievers0350cad2014-12-03 23:50:55243 android_manifest = chromium_linker_test_manifest
agrievec6811b422016-06-23 02:25:09244 android_manifest_dep = ":chromium_linker_test_manifest"
cjhopmanaac45ed82014-10-17 22:08:19245 apk_name = "ChromiumLinkerTest"
agrieve696e6a52016-03-23 19:54:45246 java_files = [
247 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestActivity.java",
248 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestApplication.java",
249 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/LinkerTests.java",
250 ]
agrieve48bd27e2016-06-22 21:04:07251 shared_libraries = [ ":linker_test" ]
cjhopmanaac45ed82014-10-17 22:08:19252 use_chromium_linker = true
253 enable_chromium_linker_tests = true
254 }
255
jbudorickbf713872017-01-04 01:15:18256 test_runner_script(_linker_test_apk_test_runner_target_name) {
257 test_name = "chromium_linker_test_apk"
258 test_type = "linker"
259 apk_target = ":$_linker_test_apk_target_name"
260 ignore_all_data_deps = true
261 }
262
263 group("chromium_linker_test_apk") {
264 testonly = true
265 deps = [
266 ":$_linker_test_apk_target_name",
267 ":$_linker_test_apk_test_runner_target_name",
268 ]
269 }
270
cjhopmanaac45ed82014-10-17 22:08:19271 shared_library("linker_test") {
272 testonly = true
273 sources = [
274 "linker_test_apk/chromium_linker_test_android.cc",
275 "linker_test_apk/chromium_linker_test_linker_tests.cc",
276 ]
277
278 deps = [
279 ":linker_test_jni_headers",
Yipeng Wang158dbc5c2017-06-30 18:16:41280 ":linker_test_jni_registration",
thomasanderson84fa8b02017-05-18 23:38:47281 "//build/config:exe_and_shlib_deps",
cjhopmanaac45ed82014-10-17 22:08:19282 "//content/shell:content_shell_lib",
scottmg7afc4092014-12-03 19:22:42283
cjhopmanaac45ed82014-10-17 22:08:19284 # Required to include "content/public/browser/android/compositor.h"
285 # in chromium_linker_test_android.cc :-(
286 "//skia",
simonb01cb97b2015-08-24 15:54:09287 "//third_party/re2",
cjhopmanaac45ed82014-10-17 22:08:19288 ]
Yipeng Wang158dbc5c2017-06-30 18:16:41289
290 # Explicit dependency required for JNI registration to be able to
291 # find the native side functions.
292 if (is_component_build) {
293 deps += [
294 "//device/gamepad",
Yipeng Wang158dbc5c2017-06-30 18:16:41295 "//device/sensors",
296 "//media/midi",
297 ]
298 }
cjhopmanaac45ed82014-10-17 22:08:19299 }
300
cjhopmanaac45ed82014-10-17 22:08:19301 generate_jni("linker_test_jni_headers") {
302 testonly = true
303 jni_package = "content/shell"
304 sources = [
305 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/LinkerTests.java",
306 ]
307 }
Yipeng Wang158dbc5c2017-06-30 18:16:41308
309 generate_jni_registration("linker_test_jni_registration") {
310 testonly = true
311 target = ":chromium_linker_test_apk__apk"
312 output =
313 "$root_gen_dir/content/shell/android/linker_test_apk/${target_name}.h"
314 exception_files = jni_exception_files
315 }
cjhopmanaac45ed82014-10-17 22:08:19316}
pkotwicz93fa232b2015-11-11 17:55:07317
pkotwicz93fa232b2015-11-11 17:55:07318android_library("content_shell_browsertests_java") {
319 testonly = true
320 deps = [
321 ":content_shell_java",
322 "//base:base_java",
323 "//content/public/android:content_java",
324 "//testing/android/native_test:native_test_java",
325 "//ui/android:ui_java",
326 ]
agrieve696e6a52016-03-23 19:54:45327 java_files = [ "browsertests/src/org/chromium/content_shell/browsertests/ContentShellBrowserTestActivity.java" ]
pkotwicz93fa232b2015-11-11 17:55:07328}