blob: 984a44e5a5e3fd424403279a5f37841c4e4ba65c [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("//build/config/ui.gni")
import("//testing/test.gni")
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
}
# Several targets want to include this header file, and some of them are
# child dependencies of "gfx". Therefore, we separate it out here so multiple
# targets can all have a dependency for header checking purposes without
# creating circular dependencies.
source_set("gfx_export") {
sources = [
"gfx_export.h",
]
}
component("gfx") {
sources = [
"android/device_display_info.cc",
"android/device_display_info.h",
"android/gfx_jni_registrar.cc",
"android/gfx_jni_registrar.h",
"android/java_bitmap.cc",
"android/java_bitmap.h",
"android/shared_device_display_info.cc",
"android/shared_device_display_info.h",
"android/view_configuration.cc",
"android/view_configuration.h",
"animation/animation.cc",
"animation/animation.h",
"animation/animation_container.cc",
"animation/animation_container.h",
"animation/animation_container_element.h",
"animation/animation_container_observer.h",
"animation/animation_delegate.h",
"animation/linear_animation.cc",
"animation/linear_animation.h",
"animation/multi_animation.cc",
"animation/multi_animation.h",
"animation/slide_animation.cc",
"animation/slide_animation.h",
"animation/throb_animation.cc",
"animation/throb_animation.h",
"animation/tween.cc",
"animation/tween.h",
"codec/jpeg_codec.cc",
"codec/jpeg_codec.h",
"codec/png_codec.cc",
"codec/png_codec.h",
"display.cc",
"display.h",
"display_change_notifier.cc",
"display_change_notifier.h",
"display_observer.cc",
"display_observer.h",
"frame_time.h",
"gpu_memory_buffer.cc",
"gpu_memory_buffer.h",
"hud_font.cc",
"hud_font.h",
"native_widget_types.h",
"sequential_id_generator.cc",
"sequential_id_generator.h",
"shadow_value.cc",
"shadow_value.h",
"skia_util.cc",
"skia_util.h",
"transform.cc",
"transform.h",
"transform_util.cc",
"transform_util.h",
"ui_gfx_exports.cc",
"vsync_provider.h",
"win/hwnd_util.cc",
"win/hwnd_util.h",
"win/scoped_set_map_mode.h",
"win/singleton_hwnd.cc",
"win/singleton_hwnd.h",
"win/window_impl.cc",
"win/window_impl.h",
]
defines = [ "GFX_IMPLEMENTATION" ]
deps = [
":gfx_export",
"//base/third_party/dynamic_annotations",
"//base:base_static",
"//base:i18n",
"//skia",
"//third_party/harfbuzz-ng",
"//third_party/libpng",
"//third_party/zlib",
"//third_party:jpeg",
"//ui/gfx/geometry",
]
public_deps = [
"//base",
"//skia",
"//third_party/icu",
]
# Android.
if (is_android) {
sources -= [
"animation/throb_animation.cc",
"display_observer.cc",
]
# TODO(jdduke): Revisit optimization after gauging benefit, crbug/419051.
if (!is_debug) {
configs -= [ "//build/config/compiler:optimize" ]
configs += [ "//build/config/compiler:optimize_max" ]
}
deps += [ ":gfx_jni_headers" ]
libs = [
"android",
"jnigraphics",
]
}
# Linux.
if (is_linux) {
configs += [ "//build/config/linux:fontconfig" ]
}
if (use_x11) {
deps += [ "//ui/gfx/x" ]
}
}
# Looking for gfx_geometry? It's //ui/gfx/geometry:geometry
source_set("test_support") {
testonly = true
sources = [
"test/fontconfig_util_linux.cc",
"test/fontconfig_util_linux.h",
"test/gfx_util.cc",
"test/gfx_util.h",
]
public_deps = [
":gfx",
]
deps = [
"//base",
"//base/test:test_support",
"//skia",
"//testing/gtest",
"//ui/gfx/geometry",
]
if (is_linux) {
configs += [ "//build/config/linux:fontconfig" ]
}
}
test("gfx_unittests") {
sources = [
"animation/animation_container_unittest.cc",
"animation/animation_unittest.cc",
"animation/multi_animation_unittest.cc",
"animation/slide_animation_unittest.cc",
"animation/tween_unittest.cc",
"codec/jpeg_codec_unittest.cc",
"codec/png_codec_unittest.cc",
"display_change_notifier_unittest.cc",
"display_unittest.cc",
"geometry/box_unittest.cc",
"geometry/cubic_bezier_unittest.cc",
"geometry/insets_unittest.cc",
"geometry/matrix3_unittest.cc",
"geometry/point3_unittest.cc",
"geometry/point_unittest.cc",
"geometry/quad_unittest.cc",
"geometry/r_tree_unittest.cc",
"geometry/rect_unittest.cc",
"geometry/safe_integer_conversions_unittest.cc",
"geometry/scroll_offset_unittest.cc",
"geometry/size_unittest.cc",
"geometry/vector2d_unittest.cc",
"geometry/vector3d_unittest.cc",
"sequential_id_generator_unittest.cc",
"skrect_conversion_unittest.cc",
"test/run_all_unittests.cc",
"transform_unittest.cc",
"transform_util_unittest.cc",
]
deps = [
":gfx",
":test_support",
"//base",
"//base/test:test_support",
"//skia",
"//third_party/icu:icuuc",
"//third_party/libpng",
"//third_party/zlib",
"//testing/gtest",
"//ui/gfx/geometry",
]
if (is_android) {
sources -= [
# Do not run display_change_notifier_unittest.cc on Android because it
# does not compile display_observer.cc
"display_change_notifier_unittest.cc",
]
deps += [
#'../../testing/android/native_test.gyp:native_test_native_code', TODO(GYP)
]
}
}
if (is_android) {
generate_jni("gfx_jni_headers") {
sources = [
"android/java/src/org/chromium/ui/gfx/BitmapHelper.java",
"android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java",
"android/java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java",
]
jni_package = "gfx"
}
}