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")
6 import("//testing/test.gni")
9 import("//build/config/android/config.gni")
10 import("//build/config/android/rules.gni")
13 # Several targets want to include this header file, and some of them are
14 # child dependencies of "gfx". Therefore, we separate it out here so multiple
15 # targets can all have a dependency for header checking purposes without
16 # creating circular dependencies.
17 source_set("gfx_export") {
23 vector_icons_cc_file = "$target_gen_dir/vector_icons.cc"
24 vector_icons_h_file = "$target_gen_dir/vector_icons2.h"
28 "android/device_display_info.cc",
29 "android/device_display_info.h",
30 "android/gfx_jni_registrar.cc",
31 "android/gfx_jni_registrar.h",
32 "android/java_bitmap.cc",
33 "android/java_bitmap.h",
34 "android/shared_device_display_info.cc",
35 "android/shared_device_display_info.h",
36 "android/view_configuration.cc",
37 "android/view_configuration.h",
38 "animation/animation.cc",
39 "animation/animation.h",
40 "animation/animation_container.cc",
41 "animation/animation_container.h",
42 "animation/animation_container_element.h",
43 "animation/animation_container_observer.h",
44 "animation/animation_delegate.h",
45 "animation/linear_animation.cc",
46 "animation/linear_animation.h",
47 "animation/multi_animation.cc",
48 "animation/multi_animation.h",
49 "animation/slide_animation.cc",
50 "animation/slide_animation.h",
51 "animation/throb_animation.cc",
52 "animation/throb_animation.h",
60 "canvas_notimplemented.cc",
62 "canvas_paint_mac.mm",
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.mm",
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",
106 "gpu_memory_buffer.cc",
107 "gpu_memory_buffer.h",
112 "image/canvas_image_source.cc",
113 "image/canvas_image_source.h",
116 "image/image_family.cc",
117 "image/image_family.h",
118 "image/image_ios.mm",
119 "image/image_mac.mm",
120 "image/image_png_rep.cc",
121 "image/image_png_rep.h",
122 "image/image_skia.cc",
123 "image/image_skia.h",
124 "image/image_skia_operations.cc",
125 "image/image_skia_operations.h",
126 "image/image_skia_rep.cc",
127 "image/image_skia_rep.h",
128 "image/image_skia_source.h",
129 "image/image_skia_util_ios.h",
130 "image/image_skia_util_ios.mm",
131 "image/image_skia_util_mac.h",
132 "image/image_skia_util_mac.mm",
133 "image/image_util.cc",
134 "image/image_util.h",
135 "image/image_util_ios.mm",
136 "interpolated_transform.cc",
137 "interpolated_transform.h",
138 "linux_font_delegate.cc",
139 "linux_font_delegate.h",
140 "mac/coordinate_conversion.h",
141 "mac/coordinate_conversion.mm",
142 "mac/nswindow_frame_controls.h",
143 "mac/nswindow_frame_controls.mm",
144 "mac/scoped_ns_disable_screen_updates.h",
145 "native_widget_types.h",
146 "nine_image_painter.cc",
147 "nine_image_painter.h",
157 "platform_font_android.cc",
158 "platform_font_ios.h",
159 "platform_font_ios.mm",
160 "platform_font_linux.cc",
161 "platform_font_linux.h",
162 "platform_font_mac.h",
163 "platform_font_mac.mm",
164 "platform_font_win.cc",
165 "platform_font_win.h",
170 "range/range_mac.mm",
171 "range/range_win.cc",
173 "scoped_cg_context_save_gstate_mac.h",
174 "scoped_ns_graphics_context_save_gstate_mac.h",
175 "scoped_ns_graphics_context_save_gstate_mac.mm",
176 "scoped_ui_graphics_push_context_ios.h",
177 "scoped_ui_graphics_push_context_ios.mm",
188 "selection_model.cc",
190 "sequential_id_generator.cc",
191 "sequential_id_generator.h",
194 "skbitmap_operations.cc",
195 "skbitmap_operations.h",
200 "sys_color_change_listener.cc",
201 "sys_color_change_listener.h",
207 "text_utils_android.cc",
216 "vector_icons_public.h",
218 "win/direct_write.cc",
219 "win/direct_write.h",
224 "win/scoped_set_map_mode.h",
225 "win/singleton_hwnd.cc",
226 "win/singleton_hwnd.h",
227 "win/singleton_hwnd_observer.cc",
228 "win/singleton_hwnd_observer.h",
229 "win/window_impl.cc",
233 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
234 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
236 defines = [ "GFX_IMPLEMENTATION" ]
242 "//base:base_static",
243 "//base/third_party/dynamic_annotations",
245 "//third_party/harfbuzz-ng",
246 "//third_party/libpng",
247 "//third_party/zlib",
256 # Text rendering conditions (complicated so separated out).
257 if (use_aura || is_mac) {
258 # Mac doesn't use RenderTextHarfBuzz by default yet.
260 "harfbuzz_font_skia.cc",
261 "harfbuzz_font_skia.h",
264 "render_text_harfbuzz.cc",
265 "render_text_harfbuzz.h",
266 "render_text_mac.cc",
268 "text_utils_skia.cc",
271 # We don't support RenderText on these platforms.
274 if (is_android && use_aura) {
276 "platform_font_android.cc",
277 "text_utils_android.cc",
279 set_sources_assignment_filter([])
280 sources += [ "platform_font_linux.cc" ]
281 set_sources_assignment_filter(sources_assignment_filter)
287 "codec/jpeg_codec.cc",
288 "codec/jpeg_codec.h",
291 deps += [ "//third_party:jpeg" ]
298 "canvas_notimplemented.cc",
301 sources += [ "font_fallback_android.cc" ]
304 "animation/throb_animation.cc",
307 "selection_model.cc",
312 configs -= [ "//build/config/compiler:optimize" ]
313 configs += [ "//build/config/compiler:optimize_max" ]
325 sources -= [ "canvas_notimplemented.cc" ]
329 if (use_aura || (!is_ios && !is_android)) {
331 "paint_vector_icon.cc",
332 "paint_vector_icon.h",
333 "vector_icons_public.h",
334 vector_icons_cc_file,
337 deps += [ ":aggregate_vector_icons" ]
342 cflags = [ "/wd4324" ] # Structure was padded due to __declspec(align()), which is
350 "sys_color_change_listener.cc",
351 "sys_color_change_listener.h",
357 configs += [ "//build/config/linux:fontconfig" ]
362 # Robust JPEG decoding for the login screen.
364 "chromeos/codec/jpeg_codec_robust_slow.cc",
365 "chromeos/codec/jpeg_codec_robust_slow.h",
367 deps += [ "//third_party/libjpeg" ]
371 sources -= [ "screen_aura.cc" ]
372 if (!toolkit_views) {
374 "nine_image_painter.cc",
375 "nine_image_painter.h",
381 deps += [ "//ui/gfx/x" ]
382 configs += [ "//build/config/linux:x11" ]
384 sources -= [ "path_x11.cc" ]
388 configs += [ "//build/config/linux:pangocairo" ]
392 # GYP version: ui/gfx/gfx.gyp:aggregate_vector_icons
393 action("aggregate_vector_icons") {
394 script = "vector_icons/aggregate_vector_icons.py"
399 vector_icons_cc_file,
404 "--working_directory=" + rebase_path("vector_icons/"),
405 "--output_cc=" + rebase_path(vector_icons_cc_file, root_build_dir),
406 "--output_h=" + rebase_path(vector_icons_h_file, root_build_dir),
410 # Looking for gfx_geometry? It's //ui/gfx/geometry:geometry
412 source_set("test_support") {
415 "image/image_unittest_util.cc",
416 "image/image_unittest_util.h",
417 "image/image_unittest_util_ios.mm",
418 "image/image_unittest_util_mac.mm",
419 "test/fontconfig_util_linux.cc",
420 "test/fontconfig_util_linux.h",
423 "test/test_screen.cc",
424 "test/test_screen.h",
425 "test/ui_cocoa_test_helper.h",
426 "test/ui_cocoa_test_helper.mm",
435 "//base/test:test_support",
442 # The cocoa files don't apply to iOS.
444 "test/ui_cocoa_test_helper.h",
445 "test/ui_cocoa_test_helper.mm",
449 configs += [ "//build/config/linux:fontconfig" ]
453 test("gfx_unittests") {
455 "font_render_params_linux_unittest.cc",
457 "image/image_family_unittest.cc",
458 "image/image_ios_unittest.mm",
459 "image/image_skia_unittest.cc",
460 "image/image_unittest.cc",
461 "platform_font_linux_unittest.cc",
462 "screen_unittest.cc",
463 "test/run_all_unittests.cc",
464 "text_elider_unittest.cc",
465 "text_utils_unittest.cc",
470 "animation/animation_container_unittest.cc",
471 "animation/animation_unittest.cc",
472 "animation/multi_animation_unittest.cc",
473 "animation/slide_animation_unittest.cc",
474 "animation/tween_unittest.cc",
476 "break_list_unittest.cc",
477 "canvas_unittest.cc",
478 "canvas_unittest_mac.mm",
479 "codec/jpeg_codec_unittest.cc",
480 "codec/png_codec_unittest.cc",
481 "color_analysis_unittest.cc",
482 "color_profile_mac_unittest.mm",
483 "color_utils_unittest.cc",
484 "display_change_notifier_unittest.cc",
485 "display_unittest.cc",
486 "font_fallback_mac_unittest.cc",
487 "font_list_unittest.cc",
488 "geometry/box_unittest.cc",
489 "geometry/cubic_bezier_unittest.cc",
490 "geometry/insets_unittest.cc",
491 "geometry/matrix3_unittest.cc",
492 "geometry/point3_unittest.cc",
493 "geometry/point_unittest.cc",
494 "geometry/quad_unittest.cc",
495 "geometry/rect_unittest.cc",
496 "geometry/safe_integer_conversions_unittest.cc",
497 "geometry/scroll_offset_unittest.cc",
498 "geometry/size_unittest.cc",
499 "geometry/vector2d_unittest.cc",
500 "geometry/vector3d_unittest.cc",
501 "image/image_mac_unittest.mm",
502 "image/image_util_unittest.cc",
503 "mac/coordinate_conversion_unittest.mm",
504 "nine_image_painter_unittest.cc",
505 "platform_font_mac_unittest.mm",
506 "range/range_mac_unittest.mm",
507 "range/range_unittest.cc",
508 "range/range_win_unittest.cc",
509 "render_text_unittest.cc",
510 "sequential_id_generator_unittest.cc",
511 "shadow_value_unittest.cc",
512 "skbitmap_operations_unittest.cc",
513 "skrect_conversion_unittest.cc",
514 "transform_util_unittest.cc",
515 "utf16_indexing_unittest.cc",
519 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
520 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
526 "//base/test:test_support",
528 "//third_party/icu:icuuc",
529 "//third_party/libpng",
530 "//third_party/zlib",
534 "//ui/resources:ui_test_pak",
537 if (!is_mac && !is_ios) {
539 "interpolated_transform_unittest.cc",
540 "transform_unittest.cc",
546 # Do not run display_change_notifier_unittest.cc on Android because it
547 # does not compile display_observer.cc
548 "display_change_notifier_unittest.cc",
552 if (is_android || is_ios) {
553 sources -= [ "render_text_unittest.cc" ]
557 sources -= [ "screen_unittest.cc" ]
559 sources -= [ "nine_image_painter_unittest.cc" ]
563 sources += [ "chromeos/codec/jpeg_codec_robust_slow_unittest.cc" ]
568 "color_profile_win_unittest.cc",
569 "font_fallback_win_unittest.cc",
570 "icon_util_unittest.cc",
571 "icon_util_unittests.rc",
572 "path_win_unittest.cc",
573 "platform_font_win_unittest.cc",
577 "/DELAYLOAD:d2d1.dll",
578 "/DELAYLOAD:d3d10_1.dll",
591 generate_jni("gfx_jni_headers") {
593 "../android/java/src/org/chromium/ui/gfx/BitmapHelper.java",
594 "../android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java",
595 "../android/java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java",