blob: 07de9ac588f8221838c7a51ed60e1e220d2eb8b0 [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",
"native_widget_types.h",
"sequential_id_generator.cc",
"sequential_id_generator.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:i18n",
"//base:base_static",
"//base/third_party/dynamic_annotations",
"//skia",
"//third_party/harfbuzz-ng",
"//third_party/libpng",
"//third_party/zlib",
"//ui/gfx/geometry",
]
public_deps = [
"//base",
"//skia",
"//third_party/icu",
]
# iOS.
if (is_ios) {
sources -= [
"codec/jpeg_codec.cc",
"codec/jpeg_codec.h",
]
} else {
deps += [ "//third_party:jpeg" ]
}
# Android.
if (is_android) {
sources -= [
"animation/throb_animation.cc",
"display_observer.cc",
]
# TODO(GYP) re-enable when base_java exists.
#if (!is_android_webview_build) {
# deps += [ "//base:base_java" ]
#}
# 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",
]
}
# Windows.
if (is_win) {
cflags = [
"/wd4267", # TODO(jschuh): C4267: http://crbug.com/167187 size_t -> int.
"/wd4324", # Structure was padded due to __declspec(align()), which is
# uninteresting.
]
}
# Linux.
if (is_linux) {
configs += [ "//build/config/linux:fontconfig" ]
}
}
# 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",
"test/ui_cocoa_test_helper.h",
"test/ui_cocoa_test_helper.mm",
]
public_deps = [
":gfx",
]
deps = [
"//base",
"//base/test:test_support",
"//skia",
"//testing/gtest",
"//ui/gfx/geometry",
]
if (is_ios) {
# The cocoa files don't apply to iOS.
sources -= [
"test/ui_cocoa_test_helper.h",
"test/ui_cocoa_test_helper.mm",
]
}
if (is_linux) {
configs += [ "//build/config/linux:fontconfig" ]
}
}
test("gfx_unittests") {
sources = [
"test/run_all_unittests.cc",
]
if (!is_ios) {
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/point_unittest.cc",
"geometry/point3_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",
"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/base",
"//ui/gfx/geometry",
]
if (!is_mac && !is_ios) {
sources += [ "transform_unittest.cc" ]
}
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_win) {
sources += [ "font_fallback_win_unittest.cc" ]
ldflags = [
"/DELAYLOAD:d2d1.dll",
"/DELAYLOAD:d3d10_1.dll",
]
libs = [
"d2d1.lib",
"d3d10_1.lib",
"imm32.lib",
"oleacc.lib",
]
# TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
cflags = [ "/wd4267" ]
}
}
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"
}
}