Home | History | Annotate | Download | only in gfx
      1 # Copyright (c) 2013 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.
      4 
      5 {
      6   'variables': {
      7     'chromium_code': 1,
      8   },
      9   'targets': [
     10     {
     11       'target_name': 'gfx_geometry',
     12       'type': '<(component)',
     13       'dependencies': [
     14         '<(DEPTH)/base/base.gyp:base',
     15       ],
     16       'defines': [
     17         'GFX_IMPLEMENTATION',
     18       ],
     19       'sources': [
     20         'geometry/box_f.cc',
     21         'geometry/box_f.h',
     22         'geometry/cubic_bezier.h',
     23         'geometry/cubic_bezier.cc',
     24         'geometry/insets.cc',
     25         'geometry/insets.h',
     26         'geometry/insets_base.h',
     27         'geometry/insets_f.cc',
     28         'geometry/insets_f.h',
     29         'geometry/matrix3_f.cc',
     30         'geometry/matrix3_f.h',
     31         'geometry/point.cc',
     32         'geometry/point.h',
     33         'geometry/point3_f.cc',
     34         'geometry/point3_f.h',
     35         'geometry/point_base.h',
     36         'geometry/point_conversions.cc',
     37         'geometry/point_conversions.h',
     38         'geometry/point_f.cc',
     39         'geometry/point_f.h',
     40         'geometry/quad_f.cc',
     41         'geometry/quad_f.h',
     42         'geometry/rect.cc',
     43         'geometry/rect.h',
     44         'geometry/rect_base.h',
     45         'geometry/rect_base_impl.h',
     46         'geometry/rect_conversions.cc',
     47         'geometry/rect_conversions.h',
     48         'geometry/rect_f.cc',
     49         'geometry/rect_f.h',
     50         'geometry/r_tree.h',
     51         'geometry/r_tree_base.cc',
     52         'geometry/r_tree_base.h',
     53         'geometry/safe_integer_conversions.h',
     54         'geometry/size.cc',
     55         'geometry/size.h',
     56         'geometry/size_base.h',
     57         'geometry/size_conversions.cc',
     58         'geometry/size_conversions.h',
     59         'geometry/size_f.cc',
     60         'geometry/size_f.h',
     61         'geometry/vector2d.cc',
     62         'geometry/vector2d.h',
     63         'geometry/vector2d_conversions.cc',
     64         'geometry/vector2d_conversions.h',
     65         'geometry/vector2d_f.cc',
     66         'geometry/vector2d_f.h',
     67         'geometry/vector3d_f.cc',
     68         'geometry/vector3d_f.h',
     69       ],
     70     },
     71     {
     72       'target_name': 'gfx',
     73       'type': '<(component)',
     74       'dependencies': [
     75         '<(DEPTH)/base/base.gyp:base',
     76         '<(DEPTH)/base/base.gyp:base_i18n',
     77         '<(DEPTH)/base/base.gyp:base_static',
     78         '<(DEPTH)/base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
     79         '<(DEPTH)/skia/skia.gyp:skia',
     80         '<(DEPTH)/third_party/harfbuzz-ng/harfbuzz.gyp:harfbuzz-ng',
     81         '<(DEPTH)/third_party/icu/icu.gyp:icui18n',
     82         '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
     83         '<(DEPTH)/third_party/libpng/libpng.gyp:libpng',
     84         '<(DEPTH)/third_party/zlib/zlib.gyp:zlib',
     85         'gfx_geometry',
     86       ],
     87       # text_elider.h includes ICU headers.
     88       'export_dependent_settings': [
     89         '<(DEPTH)/skia/skia.gyp:skia',
     90         '<(DEPTH)/third_party/icu/icu.gyp:icui18n',
     91         '<(DEPTH)/third_party/icu/icu.gyp:icuuc',
     92       ],
     93       'defines': [
     94         'GFX_IMPLEMENTATION',
     95       ],
     96       'include_dirs': [
     97         '<(DEPTH)/third_party/icu/source/common'
     98       ],
     99       'sources': [
    100         'android/device_display_info.cc',
    101         'android/device_display_info.h',
    102         'android/gfx_jni_registrar.cc',
    103         'android/gfx_jni_registrar.h',
    104         'android/java_bitmap.cc',
    105         'android/java_bitmap.h',
    106         'android/scroller.cc',
    107         'android/scroller.h',
    108         'android/shared_device_display_info.cc',
    109         'android/shared_device_display_info.h',
    110         'android/view_configuration.cc',
    111         'android/view_configuration.h',
    112         'animation/animation.cc',
    113         'animation/animation.h',
    114         'animation/animation_container.cc',
    115         'animation/animation_container.h',
    116         'animation/animation_container_element.h',
    117         'animation/animation_container_observer.h',
    118         'animation/animation_delegate.h',
    119         'animation/linear_animation.cc',
    120         'animation/linear_animation.h',
    121         'animation/multi_animation.cc',
    122         'animation/multi_animation.h',
    123         'animation/slide_animation.cc',
    124         'animation/slide_animation.h',
    125         'animation/throb_animation.cc',
    126         'animation/throb_animation.h',
    127         'animation/tween.cc',
    128         'animation/tween.h',
    129         'blit.cc',
    130         'blit.h',
    131         'break_list.h',
    132         'canvas.cc',
    133         'canvas.h',
    134         'canvas_notimplemented.cc',
    135         'canvas_paint_mac.h',
    136         'canvas_paint_mac.mm',
    137         'canvas_paint_win.cc',
    138         'canvas_paint_win.h',
    139         'canvas_skia.cc',
    140         'canvas_skia_paint.h',
    141         'codec/jpeg_codec.cc',
    142         'codec/jpeg_codec.h',
    143         'codec/png_codec.cc',
    144         'codec/png_codec.h',
    145         'color_analysis.cc',
    146         'color_analysis.h',
    147         'color_profile.cc',
    148         'color_profile.h',
    149         'color_profile_mac.mm',
    150         'color_profile_win.cc',
    151         'color_utils.cc',
    152         'color_utils.h',
    153         'display.cc',
    154         'display.h',
    155         'display_change_notifier.cc',
    156         'display_change_notifier.h',
    157         'display_observer.cc',
    158         'display_observer.h',
    159         'favicon_size.cc',
    160         'favicon_size.h',
    161         'font.cc',
    162         'font.h',
    163         'font_fallback.h',
    164         'font_fallback_linux.cc',
    165         'font_fallback_mac.cc',
    166         'font_fallback_win.cc',
    167         'font_fallback_win.h',
    168         'font_list.cc',
    169         'font_list.h',
    170         'font_list_impl.cc',
    171         'font_list_impl.h',
    172         'font_render_params.cc',
    173         'font_render_params.h',
    174         'font_render_params_android.cc',
    175         'font_render_params_linux.cc',
    176         'font_render_params_mac.cc',
    177         'font_render_params_win.cc',
    178         'frame_time.h',
    179         'gfx_export.h',
    180         'gfx_paths.cc',
    181         'gfx_paths.h',
    182         'gpu_memory_buffer.cc',
    183         'gpu_memory_buffer.h',
    184         'image/canvas_image_source.cc',
    185         'image/canvas_image_source.h',
    186         'image/image.cc',
    187         'image/image.h',
    188         'image/image_family.cc',
    189         'image/image_family.h',
    190         'image/image_ios.mm',
    191         'image/image_mac.mm',
    192         'image/image_png_rep.cc',
    193         'image/image_png_rep.h',
    194         'image/image_skia.cc',
    195         'image/image_skia.h',
    196         'image/image_skia_operations.cc',
    197         'image/image_skia_operations.h',
    198         'image/image_skia_rep.cc',
    199         'image/image_skia_rep.h',
    200         'image/image_skia_source.h',
    201         'image/image_skia_util_ios.h',
    202         'image/image_skia_util_ios.mm',
    203         'image/image_skia_util_mac.h',
    204         'image/image_skia_util_mac.mm',
    205         'image/image_util.cc',
    206         'image/image_util.h',
    207         'image/image_util_ios.mm',
    208         'interpolated_transform.cc',
    209         'interpolated_transform.h',
    210         'linux_font_delegate.cc',
    211         'linux_font_delegate.h',
    212         'mac/coordinate_conversion.h',
    213         'mac/coordinate_conversion.mm',
    214         'mac/scoped_ns_disable_screen_updates.h',
    215         'native_widget_types.h',
    216         'nine_image_painter.cc',
    217         'nine_image_painter.h',
    218         'overlay_transform.h',
    219         'pango_util.cc',
    220         'pango_util.h',
    221         'path.cc',
    222         'path.h',
    223         'path_aura.cc',
    224         'path_win.cc',
    225         'path_win.h',
    226         'path_x11.cc',
    227         'path_x11.h',
    228         'platform_font.h',
    229         'platform_font_android.cc',
    230         'platform_font_ios.h',
    231         'platform_font_ios.mm',
    232         'platform_font_mac.h',
    233         'platform_font_mac.mm',
    234         'platform_font_ozone.cc',
    235         'platform_font_pango.cc',
    236         'platform_font_pango.h',
    237         'platform_font_win.cc',
    238         'platform_font_win.h',
    239         'range/range.cc',
    240         'range/range.h',
    241         'range/range_mac.mm',
    242         'range/range_win.cc',
    243         'render_text.cc',
    244         'render_text.h',
    245         'render_text_harfbuzz.cc',
    246         'render_text_harfbuzz.h',
    247         'render_text_mac.cc',
    248         'render_text_mac.h',
    249         'render_text_ozone.cc',
    250         'render_text_pango.cc',
    251         'render_text_pango.h',
    252         'render_text_win.cc',
    253         'render_text_win.h',
    254         'scoped_canvas.h',
    255         'scoped_cg_context_save_gstate_mac.h',
    256         'scoped_ns_graphics_context_save_gstate_mac.h',
    257         'scoped_ns_graphics_context_save_gstate_mac.mm',
    258         'scoped_ui_graphics_push_context_ios.h',
    259         'scoped_ui_graphics_push_context_ios.mm',
    260         'screen.cc',
    261         'screen.h',
    262         'screen_android.cc',
    263         'screen_aura.cc',
    264         'screen_ios.mm',
    265         'screen_mac.mm',
    266         'screen_win.cc',
    267         'screen_win.h',
    268         'scrollbar_size.cc',
    269         'scrollbar_size.h',
    270         'selection_model.cc',
    271         'selection_model.h',
    272         'sequential_id_generator.cc',
    273         'sequential_id_generator.h',
    274         'shadow_value.cc',
    275         'shadow_value.h',
    276         'skbitmap_operations.cc',
    277         'skbitmap_operations.h',
    278         'skia_util.cc',
    279         'skia_util.h',
    280         'switches.cc',
    281         'switches.h',
    282         'sys_color_change_listener.cc',
    283         'sys_color_change_listener.h',
    284         'text_constants.h',
    285         'text_elider.cc',
    286         'text_elider.h',
    287         'text_utils.cc',
    288         'text_utils.h',
    289         'text_utils_android.cc',
    290         'text_utils_ios.mm',
    291         'text_utils_skia.cc',
    292         'transform.cc',
    293         'transform.h',
    294         'transform_util.cc',
    295         'transform_util.h',
    296         'ui_gfx_exports.cc',
    297         'utf16_indexing.cc',
    298         'utf16_indexing.h',
    299         'vsync_provider.h',
    300         'win/dpi.cc',
    301         'win/dpi.h',
    302         'win/hwnd_util.cc',
    303         'win/hwnd_util.h',
    304         'win/scoped_set_map_mode.h',
    305         'win/singleton_hwnd.cc',
    306         'win/singleton_hwnd.h',
    307         'win/window_impl.cc',
    308         'win/window_impl.h',
    309       ],
    310       'conditions': [
    311         ['OS=="ios"', {
    312           'dependencies': [
    313             '<(DEPTH)/ui/ios/ui_ios.gyp:ui_ios',
    314           ],
    315           # iOS only uses a subset of UI.
    316           'sources/': [
    317             ['exclude', '^codec/jpeg_codec\\.cc$'],
    318           ],
    319         }, {
    320           'dependencies': [
    321             '<(libjpeg_gyp_path):libjpeg',
    322           ],
    323         }],
    324         # TODO(asvitkine): Switch all platforms to use canvas_skia.cc.
    325         #                  http://crbug.com/105550
    326         ['use_canvas_skia==1', {
    327           'sources!': [
    328             'canvas_notimplemented.cc',
    329           ],
    330         }, {  # use_canvas_skia!=1
    331           'sources!': [
    332             'canvas_skia.cc',
    333           ],
    334         }],
    335         ['OS=="win"', {
    336           'sources': [
    337             'gdi_util.cc',
    338             'gdi_util.h',
    339             'icon_util.cc',
    340             'icon_util.h',
    341           ],
    342           # TODO(jschuh): C4267: http://crbug.com/167187 size_t -> int
    343           # C4324 is structure was padded due to __declspec(align()), which is
    344           # uninteresting.
    345           'msvs_disabled_warnings': [ 4267, 4324 ],
    346         }],
    347         ['OS=="android"', {
    348           'sources!': [
    349             'animation/throb_animation.cc',
    350             'display_observer.cc',
    351             'selection_model.cc',
    352           ],
    353           'dependencies': [
    354             'gfx_jni_headers',
    355           ],
    356           'link_settings': {
    357             'libraries': [
    358               '-landroid',
    359               '-ljnigraphics',
    360             ],
    361           },
    362         }],
    363         ['use_aura==0 and toolkit_views==0', {
    364           'sources!': [
    365             'nine_image_painter.cc',
    366             'nine_image_painter.h',
    367           ],
    368         }],
    369         ['OS=="android" and use_aura==0', {
    370           'sources!': [
    371             'path.cc',
    372           ],
    373         }],
    374         ['OS=="android" and use_aura==1', {
    375           'sources!': [
    376             'screen_android.cc',
    377           ],
    378         }],
    379         ['OS=="android" and android_webview_build==0', {
    380           'dependencies': [
    381             '<(DEPTH)/base/base.gyp:base_java',
    382           ],
    383         }],
    384         ['OS=="android" or OS=="ios"', {
    385           'sources!': [
    386             'render_text.cc',
    387             'render_text.h',
    388             'render_text_harfbuzz.cc',
    389             'render_text_harfbuzz.h',
    390             'text_utils_skia.cc',
    391           ],
    392         }],
    393         ['use_x11==1', {
    394           'dependencies': [
    395             '../../build/linux/system.gyp:x11',
    396             'x/gfx_x11.gyp:gfx_x11',
    397           ],
    398         }],
    399         ['use_pango==1', {
    400           'dependencies': [
    401             '<(DEPTH)/build/linux/system.gyp:pangocairo',
    402           ],
    403           'sources!': [
    404             'platform_font_ozone.cc',
    405             'render_text_ozone.cc',
    406           ],
    407         }],
    408         ['desktop_linux==1 or chromeos==1', {
    409           'dependencies': [
    410             # font_render_params_linux.cc uses fontconfig
    411             '<(DEPTH)/build/linux/system.gyp:fontconfig',
    412           ],
    413         }],
    414       ],
    415       'target_conditions': [
    416         # Need 'target_conditions' to override default filename_rules to include
    417         # the file on iOS.
    418         ['OS == "ios"', {
    419           'sources/': [
    420             ['include', '^scoped_cg_context_save_gstate_mac\\.h$'],
    421           ],
    422         }],
    423       ],
    424     },
    425     {
    426       'target_name': 'gfx_test_support',
    427       'type': 'static_library',
    428       'sources': [
    429         'image/image_unittest_util.cc',
    430         'image/image_unittest_util.h',
    431         'image/image_unittest_util_ios.mm',
    432         'image/image_unittest_util_mac.mm',
    433         'test/fontconfig_util_linux.cc',
    434         'test/fontconfig_util_linux.h',
    435         'test/gfx_util.cc',
    436         'test/gfx_util.h',
    437         'test/ui_cocoa_test_helper.h',
    438         'test/ui_cocoa_test_helper.mm',
    439       ],
    440       'dependencies': [
    441         '../../base/base.gyp:base',
    442         '../../skia/skia.gyp:skia',
    443         '../../testing/gtest.gyp:gtest',
    444       ],
    445       'conditions': [
    446         ['OS == "mac"', {
    447           'link_settings': {
    448             'libraries': [
    449               '$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
    450             ],
    451           },
    452         }],
    453         ['OS=="ios"', {
    454           # The cocoa files don't apply to iOS.
    455           'sources/': [
    456             ['exclude', 'cocoa']
    457           ],
    458         }],
    459         ['OS=="linux"', {
    460           'dependencies': [
    461             '../../build/linux/system.gyp:fontconfig',
    462           ],
    463         }],
    464       ],
    465     },
    466   ],
    467   'conditions': [
    468     ['OS=="android"' , {
    469      'targets': [
    470        {
    471          'target_name': 'gfx_jni_headers',
    472          'type': 'none',
    473          'sources': [
    474            '../android/java/src/org/chromium/ui/gfx/BitmapHelper.java',
    475            '../android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java',
    476            '../android/java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java',
    477          ],
    478          'variables': {
    479            'jni_gen_package': 'ui/gfx',
    480          },
    481          'includes': [ '../../build/jni_generator.gypi' ],
    482        },
    483      ],
    484     }],
    485   ],
    486 }
    487