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_android.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_observer.cc',
    156         'display_observer.h',
    157         'favicon_size.cc',
    158         'favicon_size.h',
    159         'font.cc',
    160         'font.h',
    161         'font_fallback_win.cc',
    162         'font_fallback_win.h',
    163         'font_list.cc',
    164         'font_list.h',
    165         'font_list_impl.cc',
    166         'font_list_impl.h',
    167         'font_render_params_android.cc',
    168         'font_render_params_linux.cc',
    169         'font_render_params_linux.h',
    170         'font_smoothing_win.cc',
    171         'font_smoothing_win.h',
    172         'frame_time.h',
    173         'gfx_export.h',
    174         'gfx_paths.cc',
    175         'gfx_paths.h',
    176         'gpu_memory_buffer.cc',
    177         'gpu_memory_buffer.h',
    178         'image/canvas_image_source.cc',
    179         'image/canvas_image_source.h',
    180         'image/image.cc',
    181         'image/image.h',
    182         'image/image_family.cc',
    183         'image/image_family.h',
    184         'image/image_ios.mm',
    185         'image/image_mac.mm',
    186         'image/image_png_rep.cc',
    187         'image/image_png_rep.h',
    188         'image/image_skia.cc',
    189         'image/image_skia.h',
    190         'image/image_skia_operations.cc',
    191         'image/image_skia_operations.h',
    192         'image/image_skia_rep.cc',
    193         'image/image_skia_rep.h',
    194         'image/image_skia_source.h',
    195         'image/image_skia_util_ios.h',
    196         'image/image_skia_util_ios.mm',
    197         'image/image_skia_util_mac.h',
    198         'image/image_skia_util_mac.mm',
    199         'image/image_util.cc',
    200         'image/image_util.h',
    201         'image/image_util_ios.mm',
    202         'interpolated_transform.cc',
    203         'interpolated_transform.h',
    204         'linux_font_delegate.cc',
    205         'linux_font_delegate.h',
    206         'mac/scoped_ns_disable_screen_updates.h',
    207         'native_widget_types.h',
    208         'nine_image_painter.cc',
    209         'nine_image_painter.h',
    210         'overlay_transform.h',
    211         'pango_util.cc',
    212         'pango_util.h',
    213         'path.cc',
    214         'path.h',
    215         'path_aura.cc',
    216         'path_win.cc',
    217         'path_win.h',
    218         'path_x11.cc',
    219         'path_x11.h',
    220         'platform_font.h',
    221         'platform_font_android.cc',
    222         'platform_font_ios.h',
    223         'platform_font_ios.mm',
    224         'platform_font_mac.h',
    225         'platform_font_mac.mm',
    226         'platform_font_ozone.cc',
    227         'platform_font_pango.cc',
    228         'platform_font_pango.h',
    229         'platform_font_win.cc',
    230         'platform_font_win.h',
    231         'range/range.cc',
    232         'range/range.h',
    233         'range/range_mac.mm',
    234         'range/range_win.cc',
    235         'render_text.cc',
    236         'render_text.h',
    237         'render_text_harfbuzz.cc',
    238         'render_text_harfbuzz.h',
    239         'render_text_mac.cc',
    240         'render_text_mac.h',
    241         'render_text_ozone.cc',
    242         'render_text_pango.cc',
    243         'render_text_pango.h',
    244         'render_text_win.cc',
    245         'render_text_win.h',
    246         'scoped_canvas.h',
    247         'scoped_cg_context_save_gstate_mac.h',
    248         'scoped_ns_graphics_context_save_gstate_mac.h',
    249         'scoped_ns_graphics_context_save_gstate_mac.mm',
    250         'scoped_ui_graphics_push_context_ios.h',
    251         'scoped_ui_graphics_push_context_ios.mm',
    252         'screen.cc',
    253         'screen.h',
    254         'screen_android.cc',
    255         'screen_aura.cc',
    256         'screen_ios.mm',
    257         'screen_mac.mm',
    258         'screen_win.cc',
    259         'screen_win.h',
    260         'scrollbar_size.cc',
    261         'scrollbar_size.h',
    262         'selection_model.cc',
    263         'selection_model.h',
    264         'sequential_id_generator.cc',
    265         'sequential_id_generator.h',
    266         'shadow_value.cc',
    267         'shadow_value.h',
    268         'skbitmap_operations.cc',
    269         'skbitmap_operations.h',
    270         'skia_util.cc',
    271         'skia_util.h',
    272         'switches.cc',
    273         'switches.h',
    274         'sys_color_change_listener.cc',
    275         'sys_color_change_listener.h',
    276         'text_constants.h',
    277         'text_elider.cc',
    278         'text_elider.h',
    279         'text_utils.cc',
    280         'text_utils.h',
    281         'text_utils_android.cc',
    282         'text_utils_ios.mm',
    283         'text_utils_skia.cc',
    284         'transform.cc',
    285         'transform.h',
    286         'transform_util.cc',
    287         'transform_util.h',
    288         'ui_gfx_exports.cc',
    289         'utf16_indexing.cc',
    290         'utf16_indexing.h',
    291         'vsync_provider.h',
    292         'win/dpi.cc',
    293         'win/dpi.h',
    294         'win/hwnd_util.cc',
    295         'win/hwnd_util.h',
    296         'win/scoped_set_map_mode.h',
    297         'win/singleton_hwnd.cc',
    298         'win/singleton_hwnd.h',
    299         'win/window_impl.cc',
    300         'win/window_impl.h',
    301       ],
    302       'conditions': [
    303         ['OS=="ios"', {
    304           # iOS only uses a subset of UI.
    305           'sources/': [
    306             ['exclude', '^codec/jpeg_codec\\.cc$'],
    307           ],
    308         }, {
    309           'dependencies': [
    310             '<(libjpeg_gyp_path):libjpeg',
    311           ],
    312         }],
    313         # TODO(asvitkine): Switch all platforms to use canvas_skia.cc.
    314         #                  http://crbug.com/105550
    315         ['use_canvas_skia==1', {
    316           'sources!': [
    317             'canvas_android.cc',
    318           ],
    319         }, {  # use_canvas_skia!=1
    320           'sources!': [
    321             'canvas_skia.cc',
    322           ],
    323         }],
    324         ['OS=="win"', {
    325           'sources': [
    326             'gdi_util.cc',
    327             'gdi_util.h',
    328             'icon_util.cc',
    329             'icon_util.h',
    330           ],
    331           # TODO(jschuh): C4267: http://crbug.com/167187 size_t -> int
    332           # C4324 is structure was padded due to __declspec(align()), which is
    333           # uninteresting.
    334           'msvs_disabled_warnings': [ 4267, 4324 ],
    335         }],
    336         ['OS=="android"', {
    337           'sources!': [
    338             'animation/throb_animation.cc',
    339             'display_observer.cc',
    340             'selection_model.cc',
    341           ],
    342           'dependencies': [
    343             'gfx_jni_headers',
    344           ],
    345           'link_settings': {
    346             'libraries': [
    347               '-landroid',
    348               '-ljnigraphics',
    349             ],
    350           },
    351         }],
    352         ['use_aura==0 and toolkit_views==0', {
    353           'sources!': [
    354             'nine_image_painter.cc',
    355             'nine_image_painter.h',
    356           ],
    357         }],
    358         ['OS=="android" and use_aura==0', {
    359           'sources!': [
    360             'path.cc',
    361           ],
    362         }],
    363         ['OS=="android" and use_aura==1', {
    364           'sources!': [
    365             'screen_android.cc',
    366           ],
    367         }],
    368         ['OS=="android" and android_webview_build==0', {
    369           'dependencies': [
    370             '<(DEPTH)/base/base.gyp:base_java',
    371           ],
    372         }],
    373         ['OS=="android" or OS=="ios"', {
    374           'sources!': [
    375             'render_text.cc',
    376             'render_text.h',
    377             'render_text_harfbuzz.cc',
    378             'render_text_harfbuzz.h',
    379             'text_utils_skia.cc',
    380           ],
    381         }],
    382         ['use_x11==1', {
    383           'dependencies': [
    384             '../../build/linux/system.gyp:x11',
    385             'x/gfx_x11.gyp:gfx_x11',
    386           ],
    387         }],
    388         ['use_pango==1', {
    389           'dependencies': [
    390             '<(DEPTH)/build/linux/system.gyp:pangocairo',
    391           ],
    392           'sources!': [
    393             'platform_font_ozone.cc',
    394             'render_text_ozone.cc',
    395           ],
    396         }],
    397         ['desktop_linux==1 or chromeos==1', {
    398           'dependencies': [
    399             # font_render_params_linux.cc uses fontconfig
    400             '<(DEPTH)/build/linux/system.gyp:fontconfig',
    401           ],
    402         }],
    403       ],
    404       'target_conditions': [
    405         # Need 'target_conditions' to override default filename_rules to include
    406         # the file on iOS.
    407         ['OS == "ios"', {
    408           'sources/': [
    409             ['include', '^scoped_cg_context_save_gstate_mac\\.h$'],
    410           ],
    411         }],
    412       ],
    413     },
    414     {
    415       'target_name': 'gfx_test_support',
    416       'sources': [
    417         'test/gfx_util.cc',
    418         'test/gfx_util.h',
    419         'test/ui_cocoa_test_helper.h',
    420         'test/ui_cocoa_test_helper.mm',
    421       ],
    422       'dependencies': [
    423         '../../base/base.gyp:base',
    424         '../../skia/skia.gyp:skia',
    425         '../../testing/gtest.gyp:gtest',
    426       ],
    427       'conditions': [
    428         ['OS == "mac"', {
    429           'link_settings': {
    430             'libraries': [
    431               '$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
    432             ],
    433           },
    434         }],
    435         ['OS!="ios"', {
    436           'type': 'static_library',
    437         }, {  # OS=="ios"
    438           # None of the sources in this target are built on iOS, resulting in
    439           # link errors when building targets that depend on this target
    440           # because the static library isn't found. If this target is changed
    441           # to have sources that are built on iOS, the target should be changed
    442           # to be of type static_library on all platforms.
    443           'type': 'none',
    444           # The cocoa files don't apply to iOS.
    445           'sources/': [
    446             ['exclude', 'cocoa']
    447           ],
    448         }],
    449       ],
    450     },
    451   ],
    452   'conditions': [
    453     ['OS=="android"' , {
    454      'targets': [
    455        {
    456          'target_name': 'gfx_jni_headers',
    457          'type': 'none',
    458          'sources': [
    459            '../android/java/src/org/chromium/ui/gfx/BitmapHelper.java',
    460            '../android/java/src/org/chromium/ui/gfx/DeviceDisplayInfo.java',
    461            '../android/java/src/org/chromium/ui/gfx/ViewConfigurationHelper.java',
    462          ],
    463          'variables': {
    464            'jni_gen_package': 'ui/gfx',
    465          },
    466          'includes': [ '../../build/jni_generator.gypi' ],
    467        },
    468      ],
    469     }],
    470   ],
    471 }
    472