text: # Copyright (c) 2012 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.
  
  {
    'variables': {
      'chromium_code': 1,
    },
    'targets': [
      {
        'target_name': 'message_center',
        'type': '<(component)',
        'dependencies': [
          '../../base/base.gyp:base',
          '../../base/base.gyp:base_i18n',
          '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
          '../../skia/skia.gyp:skia',
          '../../url/url.gyp:url_lib',
          '../base/strings/ui_strings.gyp:ui_strings',
          '../gfx/gfx.gyp:gfx',
          '../resources/ui_resources.gyp:ui_resources',
          '../ui.gyp:ui',
        ],
        'defines': [
          'MESSAGE_CENTER_IMPLEMENTATION',
        ],
        'sources': [
          'cocoa/notification_controller.h',
          'cocoa/notification_controller.mm',
          'cocoa/popup_collection.h',
          'cocoa/popup_collection.mm',
          'cocoa/popup_controller.h',
          'cocoa/popup_controller.mm',
          'cocoa/settings_controller.h',
          'cocoa/settings_controller.mm',
          'cocoa/settings_entry_view.h',
          'cocoa/settings_entry_view.mm',
          'cocoa/status_item_view.h',
          'cocoa/status_item_view.mm',
          'cocoa/tray_controller.h',
          'cocoa/tray_controller.mm',
          'cocoa/tray_view_controller.h',
          'cocoa/tray_view_controller.mm',
          'dummy_message_center.cc',
          'message_center.cc',
          'message_center.h',
          'message_center_export.h',
          'notification_delegate.cc',
          'notification_delegate.h',
          'message_center_impl.cc',
          'message_center_impl.h',
          'message_center_observer.h',
          'message_center_style.cc',
          'message_center_style.h',
          'message_center_switches.cc',
          'message_center_switches.h',
          'message_center_tray.cc',
          'message_center_tray.h',
          'message_center_tray_delegate.h',
          'message_center_types.h',
          'message_center_util.cc',
          'message_center_util.h',
          'notification.cc',
          'notification.h',
          'notification_blocker.cc',
          'notification_blocker.h',
          'notification_list.cc',
          'notification_list.h',
          'notification_types.cc',
          'notification_types.h',
          'notifier_settings.cc',
          'notifier_settings.h',
          'views/bounded_label.cc',
          'views/bounded_label.h',
          'views/group_view.cc',
          'views/group_view.h',
          'views/constants.h',
          'views/message_bubble_base.cc',
          'views/message_bubble_base.h',
          'views/message_center_controller.h',
          'views/message_center_bubble.cc',
          'views/message_center_bubble.h',
          'views/message_center_button_bar.cc',
          'views/message_center_button_bar.h',
          'views/message_center_view.cc',
          'views/message_center_view.h',
          'views/message_popup_collection.cc',
          'views/message_popup_collection.h',
          'views/message_view.cc',
          'views/message_view.h',
          'views/notifier_settings_view.cc',
          'views/notifier_settings_view.h',
          'views/notification_button.cc',
          'views/notification_button.h',
          'views/notification_view.cc',
          'views/notification_view.h',
          'views/padded_button.cc',
          'views/padded_button.h',
          'views/proportional_image_view.cc',
          'views/proportional_image_view.h',
          'views/toast_contents_view.cc',
          'views/toast_contents_view.h',
        ],
        # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
        'msvs_disabled_warnings': [ 4267, ],
        'conditions': [
          # This condition is for Windows 8 Metro mode support.  We need to
          # specify a particular desktop during widget creation in that case.
          # This is done using the desktop aura native widget framework.
          ['use_ash==1 and OS=="win"', {
            'dependencies': [
              '../aura/aura.gyp:aura',
            ],
          }],
          ['toolkit_views==1', {
            'dependencies': [
              '../events/events.gyp:events',
              '../views/views.gyp:views',
            ],
          }, {
            'sources/': [
              ['exclude', 'views/'],
            ],
          }],
          ['use_ash==0', {
            'sources!': [
              'views/message_bubble_base.cc',
              'views/message_bubble_base.h',
              'views/message_center_bubble.cc',
              'views/message_center_bubble.h',
              'views/message_popup_bubble.cc',
              'views/message_popup_bubble.h',
            ],
          }],
          ['OS=="mac"', {
            'dependencies': [
              '../ui.gyp:ui_cocoa_third_party_toolkits',
            ],
            'include_dirs': [
              '../../third_party/GTM',
            ],
          }],
          ['toolkit_views==1', {
            'dependencies': [
              '../compositor/compositor.gyp:compositor',
            ],
          }],
          ['notifications==0', {  # Android and iOS.
            'sources/': [
              # Exclude everything except dummy impl.
              ['exclude', '\\.(cc|mm)$'],
              ['include', '^dummy_message_center\\.cc$'],
              ['include', '^message_center_switches\\.cc$'],
            ],
          }, {  # notifications==1
            'sources!': [ 'dummy_message_center.cc' ],
          }],
        ],
      },  # target_name: message_center
      {
        'target_name': 'message_center_test_support',
        'type': 'static_library',
        'dependencies': [
          '../../base/base.gyp:base',
          '../../base/base.gyp:test_support_base',
          '../../skia/skia.gyp:skia',
          '../gfx/gfx.gyp:gfx',
          '../ui.gyp:ui',
          'message_center',
        ],
        'sources': [
          'fake_message_center.h',
          'fake_message_center.cc',
          'fake_notifier_settings_provider.h',
          'fake_notifier_settings_provider.cc',
        ],
      },  # target_name: message_center_test_support
      {
        'target_name': 'message_center_unittests',
        'type': 'executable',
        'dependencies': [
          '../../base/base.gyp:base',
          '../../base/base.gyp:test_support_base',
          '../../chrome/chrome_resources.gyp:packed_resources',
          '../../skia/skia.gyp:skia',
          '../../testing/gtest.gyp:gtest',
          '../../url/url.gyp:url_lib',
          '../../url/url.gyp:url_lib',
          '../gfx/gfx.gyp:gfx',
          '../resources/ui_resources.gyp:ui_resources',
          '../ui.gyp:ui',
          '../ui_unittests.gyp:run_ui_unittests',
          'message_center',
          'message_center_test_support',
        ],
        'sources': [
          'cocoa/notification_controller_unittest.mm',
          'cocoa/popup_collection_unittest.mm',
          'cocoa/popup_controller_unittest.mm',
          'cocoa/settings_controller_unittest.mm',
          'cocoa/status_item_view_unittest.mm',
          'cocoa/tray_controller_unittest.mm',
          'cocoa/tray_view_controller_unittest.mm',
          'message_center_tray_unittest.cc',
          'message_center_impl_unittest.cc',
          'notification_list_unittest.cc',
          'test/run_all_unittests.cc',
        ],
        'conditions': [
          ['desktop_linux == 1 or chromeos == 1 or OS=="ios"', {
           'dependencies': [
             '../base/strings/ui_strings.gyp:ui_unittest_strings',
           ],
          }],
          ['OS=="mac"', {
            'dependencies': [
              '../ui_unittests.gyp:ui_test_support',
            ],
          }],
          ['toolkit_views==1', {
            'dependencies': [
              # Compositor is needed by message_center_view_unittest.cc
              # and for the fonts used by bounded_label_unittest.cc.
              '../compositor/compositor.gyp:compositor',
              '../views/views.gyp:views',
              '../views/views.gyp:views_test_support',
            ],
            'sources': [
              'views/bounded_label_unittest.cc',
              'views/message_center_view_unittest.cc',
              'views/message_popup_collection_unittest.cc',
              'views/notifier_settings_view_unittest.cc',
            ],
          }],
          ['notifications==0', {  # Android and iOS.
            'sources/': [
              # Exclude everything except main().
              ['exclude', '\\.(cc|mm)$'],
              ['include', '^test/run_all_unittests\\.cc$'],
            ],
          }],
          # See http://crbug.com/162998#c4 for why this is needed.
          ['OS=="linux" and linux_use_tcmalloc==1', {
            'dependencies': [
              '../../base/allocator/allocator.gyp:allocator',
            ],
          }],
        ],
      },  # target_name: message_center_unittests
    ],
  }
  