blob: 326b3be063344e8d2fa43ca6d6f5ab59c2b748b2 [file] [log] [blame]
# Copyright 2014 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("//base/android/jni_generator/jni_exception_list.gni")
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
import("//third_party/icu/config.gni")
import("//tools/v8_context_snapshot/v8_context_snapshot.gni")
content_shell_manifest =
"$target_gen_dir/content_shell_manifest/AndroidManifest.xml"
generate_jni("content_shell_jni_headers") {
jni_package = "content/shell"
sources = [
"java/src/org/chromium/content_shell/Shell.java",
"java/src/org/chromium/content_shell/ShellManager.java",
]
}
shared_library("libcontent_shell_content_view") {
testonly = true
deps = [
":content_shell_jni_headers",
"//components/crash/content/browser",
"//content/shell:content_shell_lib",
"//content/shell:pak",
"//media",
"//skia",
]
# Explicit dependency required for JNI registration to be able to
# find the native side functions.
if (is_component_build) {
deps += [
"//device/gamepad",
"//media/midi",
]
}
sources = [
"shell_library_loader.cc",
]
configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
configs += [ "//build/config/android:hide_all_but_jni" ]
}
shared_library("libcontent_native_test") {
testonly = true
deps = [
"//base",
"//content/public/test/android:content_native_test_support",
"//content/shell:content_shell_lib",
]
sources = [
"shell_test_library_loader.cc",
]
configs -= [ "//build/config/android:hide_all_but_jni_onload" ]
configs += [ "//build/config/android:hide_all_but_jni" ]
}
android_resources("content_shell_java_resources") {
testonly = true
resource_dirs = [ "java/res" ]
custom_package = "org.chromium.content_shell"
}
android_library("content_shell_java") {
testonly = true
deps = [
":content_shell_java_resources",
":content_shell_manifest",
"//base:base_java",
"//components/embedder_support/android:content_view_java",
"//components/embedder_support/android:view_java",
"//components/viz/service:service_java",
"//content/public/android:content_java",
"//media/base/android:media_java",
"//media/capture/video/android:capture_java",
"//mojo/public/java:system_java",
"//net/android:net_java",
"//ui/android:ui_java",
]
java_files = [
"java/src/org/chromium/content_shell/Shell.java",
"java/src/org/chromium/content_shell/ShellManager.java",
"java/src/org/chromium/content_shell/ShellViewAndroidDelegate.java",
]
android_manifest_for_lint = content_shell_manifest
}
jinja_template("content_shell_manifest") {
testonly = true
input = "shell_apk/AndroidManifest.xml.jinja2"
output = content_shell_manifest
}
android_resources("content_shell_apk_resources") {
testonly = true
resource_dirs = [ "shell_apk/res" ]
deps = [
":content_shell_java_resources",
]
android_manifest = content_shell_manifest
android_manifest_dep = ":content_shell_manifest"
}
android_library("content_shell_apk_java") {
testonly = true
srcjar_deps = [ ":content_javatests_aidl" ]
deps = [
":content_shell_apk_resources",
":content_shell_java",
":content_shell_manifest",
"//base:base_java",
"//components/embedder_support/android:view_java",
"//content/public/android:content_java",
"//media/capture/video/android:capture_java",
"//net/android:net_java",
"//third_party/jsr-305:jsr_305_javalib",
"//ui/android:ui_java",
]
android_manifest_for_lint = content_shell_manifest
java_files = [
"shell_apk/src/org/chromium/content_shell_apk/ChildProcessLauncherTestHelperService.java",
"shell_apk/src/org/chromium/content_shell_apk/ChildProcessLauncherTestUtils.java",
"shell_apk/src/org/chromium/content_shell_apk/ContentShellActivity.java",
"shell_apk/src/org/chromium/content_shell_apk/ContentShellApplication.java",
"shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService.java",
"shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService0.java",
"shell_apk/src/org/chromium/content_shell_apk/TestChildProcessService1.java",
]
}
android_aidl("content_javatests_aidl") {
import_include = [ "shell_apk/src" ]
sources = [
"shell_apk/src/org/chromium/content_shell_apk/IChildProcessTest.aidl",
]
}
android_assets("content_shell_assets") {
testonly = true
sources = [
"$root_out_dir/content_shell.pak",
]
disable_compression = true
deps = [
"//content/shell:pak",
"//third_party/icu:icu_assets",
]
if (use_v8_context_snapshot) {
deps += [ "//tools/v8_context_snapshot:v8_context_snapshot_assets" ]
} else {
deps += [ "//v8:v8_external_startup_data_assets" ]
}
}
android_apk("content_shell_apk") {
testonly = true
enable_multidex = true
deps = [
":content_shell_apk_java",
":content_shell_assets",
":content_shell_java",
"//base:base_java",
"//base:base_java_test_support",
"//components/crash/android:java",
"//content/public/android:content_java",
"//content/public/test/android:layouttest_java_support",
"//media/capture/video/android:capture_java",
"//net/android:net_java",
"//services/shape_detection:shape_detection_java",
"//third_party/mesa_headers",
"//ui/android:ui_java",
]
apk_name = "ContentShell"
android_manifest = content_shell_manifest
android_manifest_dep = ":content_shell_manifest"
shared_libraries = [ ":libcontent_shell_content_view" ]
command_line_flags_file = "content-shell-command-line"
}
android_library("content_shell_test_java") {
testonly = true
deps = [
":content_shell_apk_java",
":content_shell_java",
"//base:base_java",
"//base:base_java_test_support",
"//content/public/android:content_java",
"//content/public/test/android:content_java_test_support",
"//content/shell/android:content_shell_java",
"//mojo/public/java/system:test_support_java",
"//third_party/android_support_test_runner:rules_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/junit:junit",
"//ui/android:ui_java",
]
java_files = [
"javatests/src/org/chromium/content_shell_apk/ContentShellPreconditionsTest.java",
"javatests/src/org/chromium/content_shell_apk/ContentShellShellManagementTest.java",
"javatests/src/org/chromium/content_shell_apk/ContentShellActivityTestRule.java",
"javatests/src/org/chromium/content_shell_apk/ContentShellUrlTest.java",
]
}
instrumentation_test_apk("content_shell_test_apk") {
deps = [
"//base:base_java_test_support",
"//base:base_javatests",
"//content/public/android:content_javatests",
"//net/android:net_javatests",
"//third_party/android_support_test_runner:runner_java",
]
apk_under_test = ":content_shell_apk"
apk_name = "ContentShellTest"
shared_libraries = [ ":libcontent_native_test" ]
android_manifest = "javatests/AndroidManifest.xml"
}
if (current_cpu != "x64") {
chromium_linker_test_manifest =
"$target_gen_dir/linker_test_apk/AndroidManifest.xml"
jinja_template("chromium_linker_test_manifest") {
testonly = true
input = "linker_test_apk/AndroidManifest.xml.jinja2"
output = chromium_linker_test_manifest
}
android_resources("linker_resources") {
testonly = true
resource_dirs = [ "linker_test_apk/res" ]
android_manifest = chromium_linker_test_manifest
android_manifest_dep = ":chromium_linker_test_manifest"
}
_linker_test_apk_target_name = "chromium_linker_test_apk__apk"
_linker_test_apk_test_runner_target_name =
"chromium_linker_test_apk__test_runner_script"
android_apk(_linker_test_apk_target_name) {
testonly = true
enable_multidex = true
deps = [
":content_shell_assets",
":content_shell_java",
":linker_resources",
"//base:base_java",
"//content/public/android:content_java",
"//ui/android:ui_java",
]
android_manifest = chromium_linker_test_manifest
android_manifest_dep = ":chromium_linker_test_manifest"
apk_name = "ChromiumLinkerTest"
java_files = [
"linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestActivity.java",
"linker_test_apk/src/org/chromium/chromium_linker_test_apk/ChromiumLinkerTestApplication.java",
"linker_test_apk/src/org/chromium/chromium_linker_test_apk/LinkerTests.java",
]
shared_libraries = [ ":linker_test" ]
use_chromium_linker = true
enable_chromium_linker_tests = true
}
test_runner_script(_linker_test_apk_test_runner_target_name) {
test_name = "chromium_linker_test_apk"
test_type = "linker"
apk_target = ":$_linker_test_apk_target_name"
ignore_all_data_deps = true
}
group("chromium_linker_test_apk") {
testonly = true
deps = [
":$_linker_test_apk_target_name",
":$_linker_test_apk_test_runner_target_name",
]
}
shared_library("linker_test") {
testonly = true
sources = [
"linker_test_apk/chromium_linker_test_android.cc",
"linker_test_apk/chromium_linker_test_linker_tests.cc",
]
deps = [
":linker_test_jni_headers",
":linker_test_jni_registration",
"//content/shell:content_shell_lib",
# Required to include "content/public/browser/android/compositor.h"
# in chromium_linker_test_android.cc :-(
"//skia",
"//third_party/re2",
]
# Explicit dependency required for JNI registration to be able to
# find the native side functions.
if (is_component_build) {
deps += [
"//device/gamepad",
"//media/midi",
]
}
}
generate_jni("linker_test_jni_headers") {
testonly = true
jni_package = "content/shell"
sources = [
"linker_test_apk/src/org/chromium/chromium_linker_test_apk/LinkerTests.java",
]
}
generate_jni_registration("linker_test_jni_registration") {
testonly = true
target = ":chromium_linker_test_apk__apk"
output =
"$root_gen_dir/content/shell/android/linker_test_apk/${target_name}.h"
exception_files = jni_exception_files
}
}
android_library("content_shell_browsertests_java") {
testonly = true
deps = [
":content_shell_java",
"//base:base_java",
"//content/public/android:content_java",
"//testing/android/native_test:native_test_java",
"//ui/android:ui_java",
]
java_files = [ "browsertests/src/org/chromium/content_shell/browsertests/ContentShellBrowserTestActivity.java" ]
}