1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
5 import("//build/config/ui.gni")
8 import("//build/config/android/config.gni")
9 import("//build/config/android/rules.gni")
12 # Several targets want to include this header file, and some of them are
13 # child dependencies of "gfx". Therefore, we separate it out here so multiple
14 # targets can all have a dependency for header checking purposes without
15 # creating circular dependencies.
16 source_set("gfx_export") {
24 "android/device_display_info.cc",
25 "android/device_display_info.h",
26 "android/gfx_jni_registrar.cc",
27 "android/gfx_jni_registrar.h",
28 "android/java_bitmap.cc",
29 "android/java_bitmap.h",
30 "android/scroller.cc",
32 "android/shared_device_display_info.cc",
33 "android/shared_device_display_info.h",
34 "android/view_configuration.cc",
35 "android/view_configuration.h",
36 "animation/animation.cc",
37 "animation/animation.h",
38 "animation/animation_container.cc",
39 "animation/animation_container.h",
40 "animation/animation_container_element.h",
41 "animation/animation_container_observer.h",
42 "animation/animation_delegate.h",
43 "animation/linear_animation.cc",
44 "animation/linear_animation.h",
45 "animation/multi_animation.cc",
46 "animation/multi_animation.h",
47 "animation/slide_animation.cc",
48 "animation/slide_animation.h",
49 "animation/throb_animation.cc",
50 "animation/throb_animation.h",
58 "canvas_notimplemented.cc",
60 "canvas_paint_mac.mm",
61 "canvas_paint_win.cc",
64 "canvas_skia_paint.h",
65 "codec/jpeg_codec.cc",
73 "color_profile_mac.mm",
74 "color_profile_win.cc",
79 "display_change_notifier.cc",
80 "display_change_notifier.h",
81 "display_observer.cc",
88 "font_fallback_linux.cc",
89 "font_fallback_mac.cc",
90 "font_fallback_win.cc",
91 "font_fallback_win.h",
96 "font_render_params.cc",
97 "font_render_params.h",
98 "font_render_params_android.cc",
99 "font_render_params_linux.cc",
100 "font_render_params_mac.cc",
101 "font_render_params_win.cc",
107 "gpu_memory_buffer.cc",
108 "gpu_memory_buffer.h",
111 "image/canvas_image_source.cc",
112 "image/canvas_image_source.h",
115 "image/image_family.cc",
116 "image/image_family.h",
117 "image/image_ios.mm",
118 "image/image_mac.mm",
119 "image/image_png_rep.cc",
120 "image/image_png_rep.h",
121 "image/image_skia.cc",
122 "image/image_skia.h",
123 "image/image_skia_operations.cc",
124 "image/image_skia_operations.h",
125 "image/image_skia_rep.cc",
126 "image/image_skia_rep.h",
127 "image/image_skia_source.h",
128 "image/image_skia_util_ios.h",
129 "image/image_skia_util_ios.mm",
130 "image/image_skia_util_mac.h",
131 "image/image_skia_util_mac.mm",
132 "image/image_util.cc",
133 "image/image_util.h",
134 "image/image_util_ios.mm",
135 "interpolated_transform.cc",
136 "interpolated_transform.h",
137 "linux_font_delegate.cc",
138 "linux_font_delegate.h",
139 "mac/coordinate_conversion.h",
140 "mac/coordinate_conversion.mm",
141 "mac/scoped_ns_disable_screen_updates.h",
142 "native_widget_types.h",
143 "nine_image_painter.cc",
144 "nine_image_painter.h",
153 "platform_font_android.cc",
154 "platform_font_ios.h",
155 "platform_font_ios.mm",
156 "platform_font_mac.h",
157 "platform_font_mac.mm",
158 "platform_font_win.cc",
159 "platform_font_win.h",
162 "range/range_mac.mm",
163 "range/range_win.cc",
165 "scoped_cg_context_save_gstate_mac.h",
166 "scoped_ns_graphics_context_save_gstate_mac.h",
167 "scoped_ns_graphics_context_save_gstate_mac.mm",
168 "scoped_ui_graphics_push_context_ios.h",
169 "scoped_ui_graphics_push_context_ios.mm",
180 "selection_model.cc",
182 "sequential_id_generator.cc",
183 "sequential_id_generator.h",
186 "skbitmap_operations.cc",
187 "skbitmap_operations.h",
192 "sys_color_change_listener.cc",
193 "sys_color_change_listener.h",
199 "text_utils_android.cc",
213 "win/scoped_set_map_mode.h",
214 "win/singleton_hwnd.cc",
215 "win/singleton_hwnd.h",
216 "win/window_impl.cc",
220 defines = [ "GFX_IMPLEMENTATION" ]
225 "//base:base_static",
226 "//base/third_party/dynamic_annotations",
228 "//third_party/harfbuzz-ng",
229 "//third_party/libpng",
230 "//third_party/zlib",
239 # Text rendering conditions (complicated so separated out).
240 if (is_android || is_ios) {
241 # We don't support RenderText on these platforms.
243 # These text rendering files are supported everywhere text rendering is.
247 "render_text_harfbuzz.cc",
248 "render_text_harfbuzz.h",
249 "text_utils_skia.cc",
251 # These are the "native" rendering routines, only one should apply.
253 sources += [ "render_text_win.cc" ]
255 sources += [ "render_text_mac.cc" ]
256 } else if (use_pango) {
257 sources += [ "render_text_pango.cc" ]
258 } else if (use_ozone) {
259 sources += [ "render_text_ozone.cc" ]
266 "codec/jpeg_codec.cc",
267 "codec/jpeg_codec.h",
270 deps += [ "//third_party:jpeg" ]
276 "animation/throb_animation.cc",
278 "display_observer.cc",
279 "selection_model.cc",
283 sources -= [ "screen_android.cc" ]
285 sources -= [ "path.cc" ]
288 # TODO(GYP) re-enable when base_java exists.
289 #if (!is_android_webview_build) {
290 # deps += [ "//base:base_java" ]
293 deps += [ ":gfx_jni_headers" ]
299 sources -= [ "canvas_notimplemented.cc" ]
305 "/wd4267", # TODO(jschuh): C4267: http://crbug.com/167187 size_t -> int.
306 "/wd4324", # Structure was padded due to __declspec(align()), which is
320 configs += [ "//build/config/linux:fontconfig" ]
326 "platform_font_ozone.cc",
332 "nine_image_painter.cc",
333 "nine_image_painter.h",
353 "platform_font_pango.cc",
354 "platform_font_pango.h",
356 configs += [ "//build/config/linux:pangocairo" ]
358 if (use_pango && use_ozone) {
360 "platform_font_ozone.cc",
365 # Looking for gfx_geometry? It's //ui/gfx/geometry:geometry
367 source_set("test_support") {
370 "image/image_unittest_util.cc",
371 "image/image_unittest_util.h",
372 "image/image_unittest_util_ios.mm",
373 "image/image_unittest_util_mac.mm",
374 "test/fontconfig_util_linux.cc",
375 "test/fontconfig_util_linux.h",
378 "test/ui_cocoa_test_helper.h",
379 "test/ui_cocoa_test_helper.mm",
388 "//base/test:test_support",
395 # The cocoa files don't apply to iOS.
397 "test/ui_cocoa_test_helper.h",
398 "test/ui_cocoa_test_helper.mm",
402 configs += [ "//build/config/linux:fontconfig" ]
406 test("gfx_unittests") {
409 "image/image_skia_unittest.cc",
410 "image/image_unittest.cc",
411 "screen_unittest.cc",
412 "test/run_all_unittests.cc",
413 "text_elider_unittest.cc",
414 "text_utils_unittest.cc",
419 "animation/animation_container_unittest.cc",
420 "animation/animation_unittest.cc",
421 "animation/multi_animation_unittest.cc",
422 "animation/slide_animation_unittest.cc",
423 "animation/tween_unittest.cc",
425 "break_list_unittest.cc",
426 "canvas_unittest.cc",
427 "canvas_unittest_mac.mm",
428 "codec/jpeg_codec_unittest.cc",
429 "codec/png_codec_unittest.cc",
430 "color_analysis_unittest.cc",
431 "color_utils_unittest.cc",
432 "display_change_notifier_unittest.cc",
433 "display_unittest.cc",
434 "font_list_unittest.cc",
435 "geometry/box_unittest.cc",
436 "geometry/cubic_bezier_unittest.cc",
437 "geometry/insets_unittest.cc",
438 "geometry/matrix3_unittest.cc",
439 "geometry/point_unittest.cc",
440 "geometry/point3_unittest.cc",
441 "geometry/quad_unittest.cc",
442 "geometry/r_tree_unittest.cc",
443 "geometry/rect_unittest.cc",
444 "geometry/safe_integer_conversions_unittest.cc",
445 "geometry/size_unittest.cc",
446 "geometry/vector2d_unittest.cc",
447 "geometry/vector3d_unittest.cc",
448 "mac/coordinate_conversion_unittest.mm",
449 "platform_font_mac_unittest.mm",
450 "range/range_mac_unittest.mm",
451 "range/range_unittest.cc",
452 "range/range_win_unittest.cc",
453 "render_text_unittest.cc",
454 "sequential_id_generator_unittest.cc",
455 "shadow_value_unittest.cc",
456 "skbitmap_operations_unittest.cc",
457 "skrect_conversion_unittest.cc",
458 "transform_util_unittest.cc",
459 "utf16_indexing_unittest.cc",
467 "//base/test:test_support",
469 "//third_party/icu:icuuc",
470 "//third_party/libpng",
471 "//third_party/zlib",
475 "//ui/resources:ui_test_pak",
480 "font_render_params_linux_unittest.cc",
481 "platform_font_pango_unittest.cc",
484 "//build/config/linux:pangocairo",
485 "//build/config/linux:pangoft2",
489 if (!is_mac && !is_ios) {
491 "transform_unittest.cc",
492 "interpolated_transform_unittest.cc",
496 if (use_ozone && !use_pango) {
498 "canvas_unittest.cc",
499 "font_list_unittest.cc",
501 "render_text_unittest.cc",
502 "text_elider_unittest.cc",
508 # Do not run display_change_notifier_unittest.cc on Android because it
509 # does not compile display_observer.cc
510 "display_change_notifier_unittest.cc",
514 #'../../testing/android/native_test.gyp:native_test_native_code', TODO(GYP)
518 if (is_android || is_ios) {
520 "render_text_unittest.cc",
526 "screen_unittest.cc",
532 "color_profile_win_unittest.cc",
533 "font_fallback_win_unittest.cc",
534 "icon_util_unittest.cc",
535 "icon_util_unittests.rc",
536 "platform_font_win_unittest.cc",
540 "/DELAYLOAD:d2d1.dll",
541 "/DELAYLOAD:d3d10_1.dll",
551 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
552 cflags = [ "/wd4267" ]
557 generate_jni("gfx_jni_headers") {
559 "../android/java/src/org/chromium/ui/gfx/BitmapHelper.java",
560 "../android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java",
561 "../android/java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java",