# Copyright 2015 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("//build/config/ui.gni") if (is_android) { import("//build/config/android/config.gni") import("//build/config/android/rules.gni") } source_set("blimp_client") { sources = [ "app/blimp_client_switches.cc", "app/blimp_client_switches.h", "app/blimp_discardable_memory_allocator.cc", "app/blimp_discardable_memory_allocator.h", "app/blimp_startup.cc", "app/blimp_startup.h", "blimp_client_export.h", "session/assignment_source.cc", "session/assignment_source.h", "session/blimp_client_session.cc", "session/blimp_client_session.h", ] defines = [ "BLIMP_CLIENT_IMPLEMENTATION=1" ] public_deps = [ "//components/safe_json", "//ui/events", ] deps = [ ":feature", "//base", "//blimp/common/proto", "//blimp/net:blimp_net", "//cc", "//gpu/skia_bindings", "//net", "//third_party/libwebp", "//ui/gfx/geometry", "//url:url", ] } source_set("blimp_client_unit_tests") { testonly = true sources = [] deps = [ ":blimp_client", "//base", "//base/test:run_all_unittests", "//base/test:test_support", "//testing/gmock", "//testing/gtest", ] data = [] # TODO(dtrainor): Fix the test harness to allow this to run on Android. # See crbug.com/588240. if (is_linux) { sources += [ "session/assignment_source_unittest.cc" ] deps += [ "//components/safe_json:test_support", "//net:test_support", ] data += [ "session/test_selfsigned_cert.pem" ] } } source_set("app_unit_tests") { testonly = true sources = [ "app/blimp_discardable_memory_allocator_unittest.cc", ] deps = [ ":blimp_client", "//base", "//base/test:run_all_unittests", "//base/test:test_support", "//testing/gmock", "//testing/gtest", ] } source_set("feature") { sources = [ "feature/compositor/blimp_compositor.cc", "feature/compositor/blimp_compositor.h", "feature/compositor/blimp_compositor_manager.cc", "feature/compositor/blimp_compositor_manager.h", "feature/compositor/blimp_context_provider.cc", "feature/compositor/blimp_context_provider.h", "feature/compositor/blimp_gpu_memory_buffer_manager.cc", "feature/compositor/blimp_gpu_memory_buffer_manager.h", "feature/compositor/blimp_input_handler_wrapper.cc", "feature/compositor/blimp_input_handler_wrapper.h", "feature/compositor/blimp_input_manager.cc", "feature/compositor/blimp_input_manager.h", "feature/compositor/blimp_layer_tree_settings.cc", "feature/compositor/blimp_layer_tree_settings.h", "feature/compositor/blimp_output_surface.cc", "feature/compositor/blimp_output_surface.h", "feature/compositor/decoding_image_generator.cc", "feature/compositor/decoding_image_generator.h", "feature/navigation_feature.cc", "feature/navigation_feature.h", "feature/render_widget_feature.cc", "feature/render_widget_feature.h", "feature/tab_control_feature.cc", "feature/tab_control_feature.h", ] deps = [ "//blimp/common:blimp_common", "//cc", "//cc/proto", "//gpu/command_buffer/client", "//gpu/command_buffer/client:gl_in_process_context", "//gpu/command_buffer/common:gles2_utils", "//gpu/skia_bindings", "//skia", "//ui/events/blink", "//ui/events/gestures/blink", "//ui/gl", ] public_deps = [ "//blimp/common/proto", ] } source_set("feature_unit_tests") { testonly = true sources = [ "feature/compositor/blimp_compositor_manager_unittest.cc", "feature/navigation_feature_unittest.cc", "feature/render_widget_feature_unittest.cc", "feature/tab_control_feature_unittest.cc", ] deps = [ ":feature", "//base", "//base/test:run_all_unittests", "//base/test:test_support", "//blimp/common:blimp_common", "//blimp/common/proto", "//blimp/net:blimp_net", "//blimp/net:test_support", "//cc/proto", "//skia", "//testing/gmock", "//testing/gtest", ] if (is_linux) { #TODO(khushalsagar): Run these tests for android. sources += [ "feature/compositor/blimp_compositor_unittest.cc" ] } } if (is_linux && !is_chromeos && use_x11) { executable("blimp_shell") { sources = [ "app/linux/blimp_client_session_linux.cc", "app/linux/blimp_client_session_linux.h", "app/linux/blimp_display_manager.cc", "app/linux/blimp_display_manager.h", "app/linux/blimp_main.cc", ] deps = [ ":blimp_client", ":feature", "//base", "//blimp/net:blimp_net", "//net", "//ui/events/platform/x11", "//ui/platform_window/x11", ] public_configs = [ "//build/config/linux:x11" ] public_deps = [ "//ui/events/platform/x11", ] } } if (is_android) { declare_args() { # Package name used in the manifest for the Blimp APK. blimp_package_name = "org.chromium.blimp" } manifest_package = blimp_package_name blimp_apk_manifest = "$target_gen_dir/blimp_apk_manifest/AndroidManifest.xml" blimp_test_apk_manifest = "$target_gen_dir/blimp_test_apk_manifest/AndroidManifest.xml" jinja_variables = [ "manifest_package=$manifest_package" ] jinja_template("blimp_apk_manifest") { input = "app/android/AndroidManifest.xml.jinja2" output = blimp_apk_manifest variables = jinja_variables } jinja_template("blimp_test_apk_manifest") { input = "app/android/javatests/AndroidManifest.xml.jinja2" output = blimp_test_apk_manifest variables = jinja_variables } generate_jni("jni_headers") { sources = [ "app/android/java/src/org/chromium/blimp/BlimpLibraryLoader.java", "app/android/java/src/org/chromium/blimp/BlimpView.java", "app/android/java/src/org/chromium/blimp/input/WebInputBox.java", "app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java", "app/android/java/src/org/chromium/blimp/session/TabControlFeature.java", "app/android/java/src/org/chromium/blimp/toolbar/Toolbar.java", ] jni_package = "blimp" } android_resources("blimp_java_resources") { resource_dirs = [ "app/android/java/res" ] deps = [ ":blimp_strings_grd", ] custom_package = "org.chromium.blimp" } java_strings_grd("blimp_strings_grd") { grd_file = "app/android/java/strings/android_blimp_strings.grd" outputs = [ "values-am/android_blimp_strings.xml", "values-ar/android_blimp_strings.xml", "values-bg/android_blimp_strings.xml", "values-ca/android_blimp_strings.xml", "values-cs/android_blimp_strings.xml", "values-da/android_blimp_strings.xml", "values-de/android_blimp_strings.xml", "values-el/android_blimp_strings.xml", "values/android_blimp_strings.xml", "values-en-rGB/android_blimp_strings.xml", "values-es/android_blimp_strings.xml", "values-es-rUS/android_blimp_strings.xml", "values-fa/android_blimp_strings.xml", "values-fi/android_blimp_strings.xml", "values-tl/android_blimp_strings.xml", "values-fr/android_blimp_strings.xml", "values-hi/android_blimp_strings.xml", "values-hr/android_blimp_strings.xml", "values-hu/android_blimp_strings.xml", "values-in/android_blimp_strings.xml", "values-it/android_blimp_strings.xml", "values-iw/android_blimp_strings.xml", "values-ja/android_blimp_strings.xml", "values-ko/android_blimp_strings.xml", "values-lt/android_blimp_strings.xml", "values-lv/android_blimp_strings.xml", "values-nl/android_blimp_strings.xml", "values-nb/android_blimp_strings.xml", "values-pl/android_blimp_strings.xml", "values-pt-rBR/android_blimp_strings.xml", "values-pt-rPT/android_blimp_strings.xml", "values-ro/android_blimp_strings.xml", "values-ru/android_blimp_strings.xml", "values-sk/android_blimp_strings.xml", "values-sl/android_blimp_strings.xml", "values-sr/android_blimp_strings.xml", "values-sv/android_blimp_strings.xml", "values-sw/android_blimp_strings.xml", "values-th/android_blimp_strings.xml", "values-tr/android_blimp_strings.xml", "values-uk/android_blimp_strings.xml", "values-vi/android_blimp_strings.xml", "values-zh-rCN/android_blimp_strings.xml", "values-zh-rTW/android_blimp_strings.xml", ] } java_cpp_enum("blimp_java_enums_srcjar") { sources = [ "session/assignment_source.h", ] } android_library("blimp_java") { srcjar_deps = [ ":blimp_java_enums_srcjar" ] deps = [ ":blimp_java_resources", "//base:base_java", # TODO(dtrainor): Remove the ui_java target once no more Android Toast # notifications are used. "//ui/android:ui_java", google_play_services_library, ] java_files = [ "app/android/java/src/org/chromium/blimp/auth/RetryingTokenSource.java", "app/android/java/src/org/chromium/blimp/auth/TokenSource.java", "app/android/java/src/org/chromium/blimp/auth/TokenSourceImpl.java", "app/android/java/src/org/chromium/blimp/BlimpApplication.java", "app/android/java/src/org/chromium/blimp/BlimpLibraryLoader.java", "app/android/java/src/org/chromium/blimp/BlimpRendererActivity.java", "app/android/java/src/org/chromium/blimp/BlimpView.java", "app/android/java/src/org/chromium/blimp/input/WebInputBox.java", "app/android/java/src/org/chromium/blimp/session/BlimpClientSession.java", "app/android/java/src/org/chromium/blimp/session/TabControlFeature.java", "app/android/java/src/org/chromium/blimp/toolbar/Toolbar.java", "app/android/java/src/org/chromium/blimp/toolbar/UrlBar.java", ] } android_library("blimp_test_java") { testonly = true deps = [ ":blimp_java", ":blimp_java_resources", "//base:base_java", "//base:base_java_test_support", google_play_services_library, ] java_files = [ "app/android/javatests/src/org/chromium/blimp/auth/MockTokenSource.java", "app/android/javatests/src/org/chromium/blimp/auth/RetryingTokenSourceTest.java", ] } shared_library("blimp_client_android") { deps = [ ":blimp_client", ":feature", ":jni_headers", "//base", "//blimp/common/proto", "//blimp/net:blimp_net", "//components/safe_json/android:safe_json_jni_headers", "//skia", "//ui/gfx/geometry", "//ui/gl", "//url:url", ] sources = [ "app/android/blimp_client_session_android.cc", "app/android/blimp_client_session_android.h", "app/android/blimp_compositor_manager_android.cc", "app/android/blimp_compositor_manager_android.h", "app/android/blimp_jni_registrar.cc", "app/android/blimp_jni_registrar.h", "app/android/blimp_library_loader.cc", "app/android/blimp_library_loader.h", "app/android/blimp_view.cc", "app/android/blimp_view.h", "app/android/tab_control_feature_android.cc", "app/android/tab_control_feature_android.h", "app/android/toolbar.cc", "app/android/toolbar.h", "app/android/web_input_box.cc", "app/android/web_input_box.h", ] libs = [ "android" ] } android_apk("blimp_apk") { deps = [ ":blimp_apk_manifest", ":blimp_client_android", ":blimp_java", ":blimp_java_resources", "//base:base_java", "//components/safe_json/android:safe_json_java", "//net/android:net_java", google_play_services_resources, ] apk_name = "Blimp" android_manifest = blimp_apk_manifest native_libs = [ "libblimp_client_android.so" ] } instrumentation_test_apk("blimp_test_apk") { apk_name = "BlimpTest" apk_under_test = ":blimp_apk" android_manifest = blimp_test_apk_manifest deps = [ ":blimp_test_apk_manifest", ":blimp_test_java", google_play_services_resources, ] } }