# 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") if (is_android) { import("//build/config/android/config.gni") import("//build/config/android/rules.gni") } if (use_ozone) { import("//ui/ozone/ozone.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/scroller.cc", "android/scroller.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", "blit.cc", "blit.h", "break_list.h", "canvas.cc", "canvas.h", "canvas_android.cc", "canvas_paint_mac.h", "canvas_paint_mac.mm", "canvas_paint_win.cc", "canvas_paint_win.h", "canvas_skia.cc", "canvas_skia_paint.h", "codec/jpeg_codec.cc", "codec/jpeg_codec.h", "codec/png_codec.cc", "codec/png_codec.h", "color_analysis.cc", "color_analysis.h", "color_profile.cc", "color_profile.h", "color_profile_mac.mm", "color_profile_win.cc", "color_utils.cc", "color_utils.h", "display.cc", "display.h", "display_observer.cc", "display_observer.h", "favicon_size.cc", "favicon_size.h", "font.cc", "font.h", "font_fallback_win.cc", "font_fallback_win.h", "font_list.cc", "font_list.h", "font_list_impl.cc", "font_list_impl.h", "font_render_params_android.cc", "font_render_params_linux.cc", "font_render_params_linux.h", "font_smoothing_win.cc", "font_smoothing_win.h", "frame_time.h", "gdi_util.cc", "gdi_util.h", "gfx_paths.cc", "gfx_paths.h", "gpu_memory_buffer.cc", "gpu_memory_buffer.h", "icon_util.cc", "icon_util.h", "image/canvas_image_source.cc", "image/canvas_image_source.h", "image/image.cc", "image/image.h", "image/image_family.cc", "image/image_family.h", "image/image_ios.mm", "image/image_mac.mm", "image/image_png_rep.cc", "image/image_png_rep.h", "image/image_skia.cc", "image/image_skia.h", "image/image_skia_operations.cc", "image/image_skia_operations.h", "image/image_skia_rep.cc", "image/image_skia_rep.h", "image/image_skia_source.h", "image/image_skia_util_ios.h", "image/image_skia_util_ios.mm", "image/image_skia_util_mac.h", "image/image_skia_util_mac.mm", "image/image_util.cc", "image/image_util.h", "image/image_util_ios.mm", "interpolated_transform.cc", "interpolated_transform.h", "linux_font_delegate.cc", "linux_font_delegate.h", "mac/scoped_ns_disable_screen_updates.h", "native_widget_types.h", "nine_image_painter.cc", "nine_image_painter.h", "path.cc", "path.h", "path_aura.cc", "path_win.cc", "path_win.h", "path_x11.cc", "path_x11.h", "platform_font.h", "platform_font_android.cc", "platform_font_ios.h", "platform_font_ios.mm", "platform_font_mac.h", "platform_font_mac.mm", "platform_font_win.cc", "platform_font_win.h", "range/range.cc", "range/range.h", "range/range_mac.mm", "range/range_win.cc", "scoped_canvas.h", "scoped_cg_context_save_gstate_mac.h", "scoped_ns_graphics_context_save_gstate_mac.h", "scoped_ns_graphics_context_save_gstate_mac.mm", "scoped_ui_graphics_push_context_ios.h", "scoped_ui_graphics_push_context_ios.mm", "screen.cc", "screen.h", "screen_android.cc", "screen_aura.cc", "screen_ios.mm", "screen_mac.mm", "screen_win.cc", "screen_win.h", "scrollbar_size.cc", "scrollbar_size.h", "selection_model.cc", "selection_model.h", "sequential_id_generator.cc", "sequential_id_generator.h", "shadow_value.cc", "shadow_value.h", "skbitmap_operations.cc", "skbitmap_operations.h", "skia_util.cc", "skia_util.h", "switches.cc", "switches.h", "sys_color_change_listener.cc", "sys_color_change_listener.h", "text_constants.h", "text_elider.cc", "text_elider.h", "text_utils.cc", "text_utils.h", "text_utils_android.cc", "text_utils_ios.mm", "transform.cc", "transform.h", "transform_util.cc", "transform_util.h", "ui_gfx_exports.cc", "utf16_indexing.cc", "utf16_indexing.h", "vsync_provider.h", "win/dpi.cc", "win/dpi.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", "//base:i18n", "//base:base_static", "//base/third_party/dynamic_annotations", "//skia", "//third_party/harfbuzz-ng", "//third_party/icu:icui18n", "//third_party/icu:icuuc", "//third_party/libpng", "//third_party/zlib", "//ui/gfx/geometry", ] # Text rendering conditions (complicated so separated out). if (is_android || is_ios) { # We don't support RenderText on these platforms. } else { # These text rendering files are supported everywhere text rendering is. sources += [ "render_text.cc", "render_text.h", "render_text_harfbuzz.cc", "render_text_harfbuzz.h", "text_utils_skia.cc", ] # These are the "native" rendering routines, only one should apply. if (is_win) { sources += [ "render_text_win.cc" ] } else if (is_mac) { sources += [ "render_text_mac.cc" ] } else if (use_pango) { sources += [ "render_text_pango.cc" ] } else if (use_ozone) { sources += [ "render_text_ozone.cc" ] } } # 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", "canvas_skia.cc", "display_observer.cc", "selection_model.cc", ] if (use_aura) { sources -= [ "screen_android.cc" ] } else { sources -= [ "path.cc" ] } # TODO(GYP) re-enable when base_java exists. #if (!is_android_webview_build) { # deps += [ "//base:base_java" ] #} 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. ] } else { sources -= [ "gdi_util.cc", "gdi_util.h", "icon_util.cc", "icon_util.h", ] } # Linux. if (is_linux) { configs += [ "//build/config/linux:fontconfig" ] } # Ozone stuff. if (use_ozone) { sources += [ "platform_font_ozone.cc", "ozone/impl/file_surface_factory.cc", "ozone/impl/file_surface_factory.h", "ozone/surface_factory_ozone.cc", "ozone/surface_factory_ozone.h", "ozone/surface_ozone.h", "ozone/overlay_candidates_ozone.cc", "ozone/overlay_candidates_ozone.h", ] } if (!use_aura) { sources -= [ "nine_image_painter.cc", "nine_image_painter.h", "path_aura.cc", "screen_aura.cc", ] } if (use_x11) { deps += [ ":gfx_x11", ] } else { sources -= [ "path_x11.cc", ] } if (use_pango) { sources += [ "pango_util.cc", "pango_util.h", "platform_font_pango.cc", "platform_font_pango.h", ] configs += [ "//build/config/linux:pangocairo" ] } } # Looking for gfx_geometry? It's //ui/gfx/geometry:geometry source_set("gfx_test_support") { sources = [ "test/gfx_util.cc", "test/gfx_util.h", "test/ui_cocoa_test_helper.h", "test/ui_cocoa_test_helper.mm", ] deps = [ "//base", "//base/test:test_support", "//skia", "//testing/gtest", ] if (is_ios) { # The cocoa files don't apply to iOS. sources -= [ "test/ui_cocoa_test_helper.h", "test/ui_cocoa_test_helper.mm", ] } } test("gfx_unittests") { sources = [ "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/rect_unittest.cc", "geometry/safe_integer_conversions_unittest.cc", "geometry/size_unittest.cc", "geometry/vector2d_unittest.cc", "geometry/vector3d_unittest.cc", "range/range_unittest.cc", ] deps = [ ":gfx", "//base", "//base/test:run_all_unittests", "//base/test:run_all_unittests", "//testing/gtest", "//ui/gfx/geometry", ] } 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" } } if (use_x11) { component("gfx_x11") { sources = [ "x/x11_atom_cache.cc", "x/x11_atom_cache.h", "x/x11_connection.cc", "x/x11_connection.h", "x/x11_error_tracker.cc", "x/x11_error_tracker.h", "x/x11_switches.cc", "x/x11_switches.h", "x/x11_types.cc", "x/x11_types.h", ] defines = [ "GFX_IMPLEMENTATION" ] configs += [ "//build/config/linux:x11" ] deps = [ ":gfx_export", "//base" ] } }