# 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", ] } generate_jni_registration("content_shell_jni_registration") { testonly = true target = ":content_shell_apk" output = "$root_gen_dir/content/shell/android/${target_name}.h" exception_files = jni_exception_files } shared_library("libcontent_shell_content_view") { testonly = true deps = [ ":content_shell_jni_headers", ":content_shell_jni_registration", "//build/config:exe_and_shlib_deps", "//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", ] } shared_library("libcontent_native_test") { testonly = true deps = [ ":content_test_jni_registration", "//base", "//content/public/test/android:content_native_test_support", "//content/shell:content_shell_lib", ] sources = [ "shell_test_library_loader.cc", ] } 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/content_view:content_view_java", "//content/public/android:content_java", "//device/geolocation:geolocation_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", "//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") { 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", "//content/public/android:content_java", "//content/public/test/android:layouttest_java_support", "//media/capture/video/android:capture_java", "//net/android:net_java", "//third_party/mesa:osmesa", "//ui/android:ui_java", ] apk_name = "ContentShell" android_manifest = content_shell_manifest android_manifest_dep = ":content_shell_manifest" shared_libraries = [ ":libcontent_shell_content_view" ] loadable_modules = [ "$root_out_dir/libosmesa.so" ] 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", "//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", ] } generate_jni_registration("content_test_jni_registration") { testonly = true target = ":content_shell_test_apk__apk" output = "$root_gen_dir/content/shell/android/${target_name}.h" exception_files = jni_exception_files } 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", "//build/config:exe_and_shlib_deps", "//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" ] }