blob: 96af4c23f2512b84dd74e07c380a7556c1b0c48d [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
10generate_jni("content_shell_jni_headers") {
11 jni_package = "content/shell"
12 sources = [
scottmg7c7296f42015-02-28 02:23:0913 "java/src/org/chromium/content_shell/Shell.java",
cjhopmancd7694af2014-09-08 00:00:0414 "java/src/org/chromium/content_shell/ShellLayoutTestUtils.java",
15 "java/src/org/chromium/content_shell/ShellManager.java",
cjhopmancd7694af2014-09-08 00:00:0416 ]
17}
18
Yipeng Wang158dbc5c2017-06-30 18:16:4119generate_jni_registration("content_shell_jni_registration") {
20 testonly = true
21 target = ":content_shell_apk"
22 output = "$root_gen_dir/content/shell/android/${target_name}.h"
23 exception_files = jni_exception_files
24}
25
cjhopmancd7694af2014-09-08 00:00:0426shared_library("libcontent_shell_content_view") {
cjhopman2fd48fd2014-09-24 00:52:5627 testonly = true
cjhopmancd7694af2014-09-08 00:00:0428 deps = [
29 ":content_shell_jni_headers",
Yipeng Wang158dbc5c2017-06-30 18:16:4130 ":content_shell_jni_registration",
thomasanderson84fa8b02017-05-18 23:38:4731 "//build/config:exe_and_shlib_deps",
agrieved7a71c882015-11-20 19:53:2832 "//components/crash/content/browser",
cjhopman2fd48fd2014-09-24 00:52:5633 "//content/shell:content_shell_lib",
34 "//content/shell:pak",
jrummell397905b2017-03-20 22:36:2535 "//media",
agrieved7a71c882015-11-20 19:53:2836 "//skia",
cjhopmancd7694af2014-09-08 00:00:0437 ]
Yipeng Wang158dbc5c2017-06-30 18:16:4138
39 # Explicit dependency required for JNI registration to be able to
40 # find the native side functions.
41 if (is_component_build) {
42 deps += [
43 "//device/gamepad",
Yipeng Wang158dbc5c2017-06-30 18:16:4144 "//device/sensors",
45 "//media/midi",
46 ]
47 }
cjhopmancd7694af2014-09-08 00:00:0448 sources = [
cjhopman2fd48fd2014-09-24 00:52:5649 "shell_library_loader.cc",
cjhopmancd7694af2014-09-08 00:00:0450 ]
cjhopmancd7694af2014-09-08 00:00:0451}
52
53android_resources("content_shell_java_resources") {
cjhopman2fd48fd2014-09-24 00:52:5654 testonly = true
cjhopmancd7694af2014-09-08 00:00:0455 resource_dirs = [ "java/res" ]
56 custom_package = "org.chromium.content_shell"
57}
58
59android_library("content_shell_java") {
cjhopman2fd48fd2014-09-24 00:52:5660 testonly = true
cjhopmancd7694af2014-09-08 00:00:0461 deps = [
agrieved7a71c882015-11-20 19:53:2862 ":content_shell_java_resources",
cjhopmancd7694af2014-09-08 00:00:0463 "//base:base_java",
jbudorick2d40c48d2017-01-09 21:05:0064 "//base:base_java_test_support",
cjhopmancd7694af2014-09-08 00:00:0465 "//content/public/android:content_java",
mcasas4e216e72016-07-28 21:28:3866 "//device/geolocation:geolocation_java",
clamy5f5cab52016-02-19 14:42:0067 "//media/base/android:media_java",
mcasase1755002016-02-19 22:54:5168 "//media/capture/video/android:capture_java",
agrieveed37c922016-11-04 17:43:0169 "//mojo/public/java:system_java",
cjhopmancd7694af2014-09-08 00:00:0470 "//net/android:net_java",
71 "//ui/android:ui_java",
cjhopmancd7694af2014-09-08 00:00:0472 ]
agrieve696e6a52016-03-23 19:54:4573 java_files = [
74 "java/src/org/chromium/content_shell/Shell.java",
75 "java/src/org/chromium/content_shell/ShellLayoutTestUtils.java",
76 "java/src/org/chromium/content_shell/ShellManager.java",
jinsukkime03fba32017-02-24 05:57:0577 "java/src/org/chromium/content_shell/ShellViewAndroidDelegate.java",
agrieve696e6a52016-03-23 19:54:4578 ]
cjhopmancd7694af2014-09-08 00:00:0479}
80
scottmg6da1b582014-12-08 18:31:1581content_shell_manifest =
82 "$target_gen_dir/content_shell_manifest/AndroidManifest.xml"
sievers0350cad2014-12-03 23:50:5583
84jinja_template("content_shell_manifest") {
85 testonly = true
sievers4c08a9c2014-12-05 01:57:2886 input = "shell_apk/AndroidManifest.xml.jinja2"
sievers0350cad2014-12-03 23:50:5587 output = content_shell_manifest
88}
89
cjhopmancd7694af2014-09-08 00:00:0490android_resources("content_shell_apk_resources") {
cjhopman2fd48fd2014-09-24 00:52:5691 testonly = true
cjhopmancd7694af2014-09-08 00:00:0492 resource_dirs = [ "shell_apk/res" ]
93 deps = [
scottmg7afc4092014-12-03 19:22:4294 ":content_shell_java_resources",
cjhopmancd7694af2014-09-08 00:00:0495 ]
sievers0350cad2014-12-03 23:50:5596 android_manifest = content_shell_manifest
agrieve24b56ca82016-06-30 14:46:3397 android_manifest_dep = ":content_shell_manifest"
cjhopmancd7694af2014-09-08 00:00:0498}
99
cjhopman394dfd12014-09-09 08:55:54100android_library("content_shell_apk_java") {
cjhopman2fd48fd2014-09-24 00:52:56101 testonly = true
Jay Civelli9cf157082017-07-08 06:33:23102
103 srcjar_deps = [ ":content_javatests_aidl" ]
104
cjhopman394dfd12014-09-09 08:55:54105 deps = [
106 ":content_shell_apk_resources",
107 ":content_shell_java",
agrieve35287052016-07-05 19:48:20108 ":content_shell_manifest",
cjhopman394dfd12014-09-09 08:55:54109 "//base:base_java",
110 "//content/public/android:content_java",
mcasase1755002016-02-19 22:54:51111 "//media/capture/video/android:capture_java",
cjhopman394dfd12014-09-09 08:55:54112 "//net/android:net_java",
Jay Civelli9cf157082017-07-08 06:33:23113 "//third_party/jsr-305:jsr_305_javalib",
cjhopman394dfd12014-09-09 08:55:54114 "//ui/android:ui_java",
115 ]
agrieve35287052016-07-05 19:48:20116
117 # Supply manifest for linting.
118 android_manifest = content_shell_manifest
119
agrieve696e6a52016-03-23 19:54:45120 java_files = [
rsesekabd3ee72017-01-24 19:38:12121 "shell_apk/src/org/chromium/content_shell_apk/ChildProcessLauncherTestHelperService.java",
jcivelli93637722017-04-28 05:18:33122 "shell_apk/src/org/chromium/content_shell_apk/ChildProcessLauncherTestUtils.java",
agrieve696e6a52016-03-23 19:54:45123 "shell_apk/src/org/chromium/content_shell_apk/ContentShellActivity.java",
124 "shell_apk/src/org/chromium/content_shell_apk/ContentShellApplication.java",
Jay Civelli9cf157082017-07-08 06:33:23125 "shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService.java",
126 "shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService0.java",
127 "shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService1.java",
128 ]
129}
130
131android_aidl("content_javatests_aidl") {
132 import_include = [ "shell_apk/src" ]
133 sources = [
134 "shell_apk/src/org/chromium/content_shell_apk/IChildProcessTest.aidl",
agrieve696e6a52016-03-23 19:54:45135 ]
cjhopman394dfd12014-09-09 08:55:54136}
137
pkotwicz8c7027d2015-11-11 06:30:07138android_assets("content_shell_assets") {
cjhopman2fd48fd2014-09-24 00:52:56139 sources = [
scottmg7afc4092014-12-03 19:22:42140 "$root_out_dir/content_shell.pak",
cjhopman2fd48fd2014-09-24 00:52:56141 ]
pkotwicz8c7027d2015-11-11 06:30:07142 disable_compression = true
brettwf9505792015-06-03 19:43:38143 deps = [
144 "//content/shell:pak",
pkotwicz8c7027d2015-11-11 06:30:07145 "//third_party/icu:icu_assets",
146 "//v8:v8_external_startup_data_assets",
brettwf9505792015-06-03 19:43:38147 ]
cjhopman2fd48fd2014-09-24 00:52:56148}
149
cjhopmancd7694af2014-09-08 00:00:04150android_apk("content_shell_apk") {
cjhopman2fd48fd2014-09-24 00:52:56151 testonly = true
cjhopmancd7694af2014-09-08 00:00:04152 deps = [
brettwf9505792015-06-03 19:43:38153 ":content_shell_apk_java",
pkotwicz8c7027d2015-11-11 06:30:07154 ":content_shell_assets",
cjhopmancd7694af2014-09-08 00:00:04155 ":content_shell_java",
cjhopmancd7694af2014-09-08 00:00:04156 "//base:base_java",
157 "//content/public/android:content_java",
jbudorick7305b4bb2016-04-27 16:15:31158 "//content/public/test/android:layouttest_java_support",
mcasase1755002016-02-19 22:54:51159 "//media/capture/video/android:capture_java",
cjhopmancd7694af2014-09-08 00:00:04160 "//net/android:net_java",
agrieveda37b9ba52015-12-03 02:17:06161 "//third_party/mesa:osmesa",
cjhopmancd7694af2014-09-08 00:00:04162 "//ui/android:ui_java",
163 ]
164 apk_name = "ContentShell"
sievers0350cad2014-12-03 23:50:55165 android_manifest = content_shell_manifest
agrievec6811b422016-06-23 02:25:09166 android_manifest_dep = ":content_shell_manifest"
agrieve48bd27e2016-06-22 21:04:07167 shared_libraries = [ ":libcontent_shell_content_view" ]
agrieveda37b9ba52015-12-03 02:17:06168 loadable_modules = [ "$root_out_dir/libosmesa.so" ]
cjhopmancd7694af2014-09-08 00:00:04169}
cjhopman394dfd12014-09-09 08:55:54170
171android_library("content_shell_test_java") {
cjhopman2fd48fd2014-09-24 00:52:56172 testonly = true
cjhopman394dfd12014-09-09 08:55:54173 deps = [
cjhopman394dfd12014-09-09 08:55:54174 ":content_shell_apk_java",
agrieved7a71c882015-11-20 19:53:28175 ":content_shell_java",
cjhopman394dfd12014-09-09 08:55:54176 "//base:base_java",
177 "//base:base_java_test_support",
agrieved7a71c882015-11-20 19:53:28178 "//content/public/android:content_java",
cjhopman394dfd12014-09-09 08:55:54179 "//content/public/test/android:content_java_test_support",
180 "//content/shell/android:content_shell_java",
yolandyane85326c2017-03-04 04:19:13181 "//third_party/android_support_test_runner:rules_java",
yolandyan45001472016-12-21 21:12:42182 "//third_party/android_support_test_runner:runner_java",
yolandyane85326c2017-03-04 04:19:13183 "//third_party/junit:junit",
boliu16136c02016-10-06 00:55:28184 "//ui/android:ui_java",
cjhopman394dfd12014-09-09 08:55:54185 ]
agrieve696e6a52016-03-23 19:54:45186 java_files = [
187 "javatests/src/org/chromium/content_shell_apk/ContentShellPreconditionsTest.java",
188 "javatests/src/org/chromium/content_shell_apk/ContentShellShellManagementTest.java",
189 "javatests/src/org/chromium/content_shell_apk/ContentShellTestBase.java",
yolandyane85326c2017-03-04 04:19:13190 "javatests/src/org/chromium/content_shell_apk/ContentShellTestCommon.java",
191 "javatests/src/org/chromium/content_shell_apk/ContentShellActivityTestRule.java",
agrieve696e6a52016-03-23 19:54:45192 "javatests/src/org/chromium/content_shell_apk/ContentShellUrlTest.java",
193 ]
cjhopman394dfd12014-09-09 08:55:54194}
195
mikecase56d80d72015-06-03 00:57:26196instrumentation_test_apk("content_shell_test_apk") {
cjhopman394dfd12014-09-09 08:55:54197 deps = [
cjhopman394dfd12014-09-09 08:55:54198 "//base:base_javatests",
agrieved7a71c882015-11-20 19:53:28199 "//content/public/android:content_javatests",
ke.he48ce2ae2017-02-02 15:31:32200 "//device/sensors:javatests",
cjhopman394dfd12014-09-09 08:55:54201 "//net/android:net_javatests",
yolandyan45001472016-12-21 21:12:42202 "//third_party/android_support_test_runner:runner_java",
cjhopman394dfd12014-09-09 08:55:54203 ]
cjhopman7b9ba2e2015-04-22 23:31:53204 apk_under_test = ":content_shell_apk"
cjhopman394dfd12014-09-09 08:55:54205 apk_name = "ContentShellTest"
206 android_manifest = "javatests/AndroidManifest.xml"
207}
cjhopmanaac45ed82014-10-17 22:08:19208
simonb51958d62015-09-01 19:04:42209if (current_cpu != "x64") {
scottmg6da1b582014-12-08 18:31:15210 chromium_linker_test_manifest =
211 "$target_gen_dir/linker_test_apk/AndroidManifest.xml"
sievers0350cad2014-12-03 23:50:55212
213 jinja_template("chromium_linker_test_manifest") {
214 testonly = true
sievers4c08a9c2014-12-05 01:57:28215 input = "linker_test_apk/AndroidManifest.xml.jinja2"
sievers0350cad2014-12-03 23:50:55216 output = chromium_linker_test_manifest
217 }
218
cjhopmanaac45ed82014-10-17 22:08:19219 android_resources("linker_resources") {
brettwf9505792015-06-03 19:43:38220 testonly = true
cjhopmanaac45ed82014-10-17 22:08:19221 resource_dirs = [ "linker_test_apk/res" ]
sievers0350cad2014-12-03 23:50:55222 android_manifest = chromium_linker_test_manifest
agrieve24b56ca82016-06-30 14:46:33223 android_manifest_dep = ":chromium_linker_test_manifest"
cjhopmanaac45ed82014-10-17 22:08:19224 }
225
jbudorickbf713872017-01-04 01:15:18226 _linker_test_apk_target_name = "chromium_linker_test_apk__apk"
227 _linker_test_apk_test_runner_target_name =
228 "chromium_linker_test_apk__test_runner_script"
229
230 android_apk(_linker_test_apk_target_name) {
cjhopmanaac45ed82014-10-17 22:08:19231 testonly = true
232 deps = [
pkotwicz8c7027d2015-11-11 06:30:07233 ":content_shell_assets",
cjhopmanaac45ed82014-10-17 22:08:19234 ":content_shell_java",
cjhopmanaac45ed82014-10-17 22:08:19235 ":linker_resources",
cjhopmanaac45ed82014-10-17 22:08:19236 "//base:base_java",
237 "//content/public/android:content_java",
238 "//ui/android:ui_java",
239 ]
sievers0350cad2014-12-03 23:50:55240 android_manifest = chromium_linker_test_manifest
agrievec6811b422016-06-23 02:25:09241 android_manifest_dep = ":chromium_linker_test_manifest"
cjhopmanaac45ed82014-10-17 22:08:19242 apk_name = "ChromiumLinkerTest"
agrieve696e6a52016-03-23 19:54:45243 java_files = [
244 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestActivity.java",
245 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestApplication.java",
246 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/LinkerTests.java",
247 ]
agrieve48bd27e2016-06-22 21:04:07248 shared_libraries = [ ":linker_test" ]
cjhopmanaac45ed82014-10-17 22:08:19249 use_chromium_linker = true
250 enable_chromium_linker_tests = true
251 }
252
jbudorickbf713872017-01-04 01:15:18253 test_runner_script(_linker_test_apk_test_runner_target_name) {
254 test_name = "chromium_linker_test_apk"
255 test_type = "linker"
256 apk_target = ":$_linker_test_apk_target_name"
257 ignore_all_data_deps = true
258 }
259
260 group("chromium_linker_test_apk") {
261 testonly = true
262 deps = [
263 ":$_linker_test_apk_target_name",
264 ":$_linker_test_apk_test_runner_target_name",
265 ]
266 }
267
cjhopmanaac45ed82014-10-17 22:08:19268 shared_library("linker_test") {
269 testonly = true
270 sources = [
271 "linker_test_apk/chromium_linker_test_android.cc",
272 "linker_test_apk/chromium_linker_test_linker_tests.cc",
thakisb8590c92017-03-23 18:14:53273 "linker_test_apk/chromium_linker_test_linker_tests.h",
cjhopmanaac45ed82014-10-17 22:08:19274 ]
275
276 deps = [
277 ":linker_test_jni_headers",
Yipeng Wang158dbc5c2017-06-30 18:16:41278 ":linker_test_jni_registration",
thomasanderson84fa8b02017-05-18 23:38:47279 "//build/config:exe_and_shlib_deps",
cjhopmanaac45ed82014-10-17 22:08:19280 "//content/shell:content_shell_lib",
scottmg7afc4092014-12-03 19:22:42281
cjhopmanaac45ed82014-10-17 22:08:19282 # Required to include "content/public/browser/android/compositor.h"
283 # in chromium_linker_test_android.cc :-(
284 "//skia",
simonb01cb97b2015-08-24 15:54:09285 "//third_party/re2",
cjhopmanaac45ed82014-10-17 22:08:19286 ]
Yipeng Wang158dbc5c2017-06-30 18:16:41287
288 # Explicit dependency required for JNI registration to be able to
289 # find the native side functions.
290 if (is_component_build) {
291 deps += [
292 "//device/gamepad",
Yipeng Wang158dbc5c2017-06-30 18:16:41293 "//device/sensors",
294 "//media/midi",
295 ]
296 }
cjhopmanaac45ed82014-10-17 22:08:19297 }
298
cjhopmanaac45ed82014-10-17 22:08:19299 generate_jni("linker_test_jni_headers") {
300 testonly = true
301 jni_package = "content/shell"
302 sources = [
303 "linker_test_apk/src/org/chromium/chromium_linker_test_apk/LinkerTests.java",
304 ]
305 }
Yipeng Wang158dbc5c2017-06-30 18:16:41306
307 generate_jni_registration("linker_test_jni_registration") {
308 testonly = true
309 target = ":chromium_linker_test_apk__apk"
310 output =
311 "$root_gen_dir/content/shell/android/linker_test_apk/${target_name}.h"
312 exception_files = jni_exception_files
313 }
cjhopmanaac45ed82014-10-17 22:08:19314}
pkotwicz93fa232b2015-11-11 17:55:07315
pkotwicz93fa232b2015-11-11 17:55:07316android_library("content_shell_browsertests_java") {
317 testonly = true
318 deps = [
319 ":content_shell_java",
320 "//base:base_java",
321 "//content/public/android:content_java",
322 "//testing/android/native_test:native_test_java",
323 "//ui/android:ui_java",
324 ]
agrieve696e6a52016-03-23 19:54:45325 java_files = [ "browsertests/src/org/chromium/content_shell/browsertests/ContentShellBrowserTestActivity.java" ]
pkotwicz93fa232b2015-11-11 17:55:07326}