1 # Copyright (c) 2012 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': 'message_center', 12 'type': '<(component)', 13 'dependencies': [ 14 '../../base/base.gyp:base', 15 '../../base/base.gyp:base_i18n', 16 '../../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 17 '../../skia/skia.gyp:skia', 18 '../../url/url.gyp:url_lib', 19 '../base/ui_base.gyp:ui_base', 20 '../gfx/gfx.gyp:gfx', 21 '../gfx/gfx.gyp:gfx_geometry', 22 '../resources/ui_resources.gyp:ui_resources', 23 '../strings/ui_strings.gyp:ui_strings', 24 ], 25 'defines': [ 26 'MESSAGE_CENTER_IMPLEMENTATION', 27 ], 28 'sources': [ 29 'cocoa/notification_controller.h', 30 'cocoa/notification_controller.mm', 31 'cocoa/opaque_views.h', 32 'cocoa/opaque_views.mm', 33 'cocoa/popup_collection.h', 34 'cocoa/popup_collection.mm', 35 'cocoa/popup_controller.h', 36 'cocoa/popup_controller.mm', 37 'cocoa/settings_controller.h', 38 'cocoa/settings_controller.mm', 39 'cocoa/settings_entry_view.h', 40 'cocoa/settings_entry_view.mm', 41 'cocoa/status_item_view.h', 42 'cocoa/status_item_view.mm', 43 'cocoa/tray_controller.h', 44 'cocoa/tray_controller.mm', 45 'cocoa/tray_view_controller.h', 46 'cocoa/tray_view_controller.mm', 47 'dummy_message_center.cc', 48 'message_center.cc', 49 'message_center.h', 50 'message_center_export.h', 51 'notification_delegate.cc', 52 'notification_delegate.h', 53 'message_center_impl.cc', 54 'message_center_impl.h', 55 'message_center_observer.h', 56 'message_center_style.cc', 57 'message_center_style.h', 58 'message_center_tray.cc', 59 'message_center_tray.h', 60 'message_center_tray_delegate.h', 61 'message_center_types.h', 62 'notification.cc', 63 'notification.h', 64 'notification_blocker.cc', 65 'notification_blocker.h', 66 'notification_list.cc', 67 'notification_list.h', 68 'notification_types.cc', 69 'notification_types.h', 70 'notifier_settings.cc', 71 'notifier_settings.h', 72 'views/bounded_label.cc', 73 'views/bounded_label.h', 74 'views/constants.h', 75 'views/message_bubble_base.cc', 76 'views/message_bubble_base.h', 77 'views/message_center_controller.h', 78 'views/message_center_bubble.cc', 79 'views/message_center_bubble.h', 80 'views/message_center_button_bar.cc', 81 'views/message_center_button_bar.h', 82 'views/message_center_view.cc', 83 'views/message_center_view.h', 84 'views/message_popup_collection.cc', 85 'views/message_popup_collection.h', 86 'views/message_view.cc', 87 'views/message_view.h', 88 'views/message_view_context_menu_controller.cc', 89 'views/message_view_context_menu_controller.h', 90 'views/notifier_settings_view.cc', 91 'views/notifier_settings_view.h', 92 'views/notification_button.cc', 93 'views/notification_button.h', 94 'views/notification_view.cc', 95 'views/notification_view.h', 96 'views/padded_button.cc', 97 'views/padded_button.h', 98 'views/proportional_image_view.cc', 99 'views/proportional_image_view.h', 100 'views/toast_contents_view.cc', 101 'views/toast_contents_view.h', 102 ], 103 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 104 'msvs_disabled_warnings': [ 4267, ], 105 'conditions': [ 106 # This condition is for Windows 8 Metro mode support. We need to 107 # specify a particular desktop during widget creation in that case. 108 # This is done using the desktop aura native widget framework. 109 ['use_ash==1 and OS=="win"', { 110 'dependencies': [ 111 '../aura/aura.gyp:aura', 112 ], 113 }], 114 ['toolkit_views==1', { 115 'dependencies': [ 116 '../events/events.gyp:events', 117 '../views/views.gyp:views', 118 '../compositor/compositor.gyp:compositor', 119 ], 120 }, { 121 'sources/': [ 122 ['exclude', 'views/'], 123 ], 124 }], 125 ['use_ash==0', { 126 'sources!': [ 127 'views/message_bubble_base.cc', 128 'views/message_bubble_base.h', 129 'views/message_center_bubble.cc', 130 'views/message_center_bubble.h', 131 'views/message_popup_bubble.cc', 132 'views/message_popup_bubble.h', 133 ], 134 }], 135 # iOS disables notifications altogether, Android implements its own 136 # notification UI manager instead of deferring to the message center. 137 ['notifications==0 or OS=="android"', { 138 'sources/': [ 139 # Exclude everything except dummy impl. 140 ['exclude', '\\.(cc|mm)$'], 141 ['include', '^dummy_message_center\\.cc$'], 142 ['include', '^message_center_switches\\.cc$'], 143 ], 144 }, { # notifications==1 145 'sources!': [ 'dummy_message_center.cc' ], 146 }], 147 # Include a minimal set of files required for notifications on Android. 148 ['OS=="android"', { 149 'sources/': [ 150 ['include', '^notification\\.cc$'], 151 ['include', '^notification_delegate\\.cc$'], 152 ['include', '^notifier_settings\\.cc$'], 153 ], 154 }], 155 ], 156 }, # target_name: message_center 157 { 158 'target_name': 'message_center_test_support', 159 'type': 'static_library', 160 'dependencies': [ 161 '../../base/base.gyp:base', 162 '../../base/base.gyp:test_support_base', 163 '../../skia/skia.gyp:skia', 164 '../base/ui_base.gyp:ui_base', 165 '../gfx/gfx.gyp:gfx', 166 '../gfx/gfx.gyp:gfx_geometry', 167 'message_center', 168 ], 169 'sources': [ 170 'fake_message_center.h', 171 'fake_message_center.cc', 172 'fake_message_center_tray_delegate.h', 173 'fake_message_center_tray_delegate.cc', 174 'fake_notifier_settings_provider.h', 175 'fake_notifier_settings_provider.cc', 176 ], 177 }, # target_name: message_center_test_support 178 { 179 'target_name': 'message_center_unittests', 180 'type': 'executable', 181 'dependencies': [ 182 '../../base/base.gyp:base', 183 '../../base/base.gyp:test_support_base', 184 '../../skia/skia.gyp:skia', 185 '../../testing/gtest.gyp:gtest', 186 '../../url/url.gyp:url_lib', 187 '../base/ui_base.gyp:ui_base', 188 '../gfx/gfx.gyp:gfx', 189 '../gfx/gfx.gyp:gfx_geometry', 190 '../resources/ui_resources.gyp:ui_resources', 191 '../resources/ui_resources.gyp:ui_test_pak', 192 'message_center', 193 'message_center_test_support', 194 ], 195 'sources': [ 196 'cocoa/notification_controller_unittest.mm', 197 'cocoa/popup_collection_unittest.mm', 198 'cocoa/popup_controller_unittest.mm', 199 'cocoa/settings_controller_unittest.mm', 200 'cocoa/status_item_view_unittest.mm', 201 'cocoa/tray_controller_unittest.mm', 202 'cocoa/tray_view_controller_unittest.mm', 203 'message_center_tray_unittest.cc', 204 'message_center_impl_unittest.cc', 205 'notification_delegate_unittest.cc', 206 'notification_list_unittest.cc', 207 'test/run_all_unittests.cc', 208 ], 209 'conditions': [ 210 ['OS=="mac"', { 211 'dependencies': [ 212 '../gfx/gfx.gyp:gfx_test_support', 213 ], 214 }], 215 ['toolkit_views==1', { 216 'dependencies': [ 217 # Compositor is needed by message_center_view_unittest.cc 218 # and for the fonts used by bounded_label_unittest.cc. 219 '../compositor/compositor.gyp:compositor', 220 '../views/views.gyp:views', 221 '../views/views.gyp:views_test_support', 222 ], 223 'sources': [ 224 'views/bounded_label_unittest.cc', 225 'views/message_center_view_unittest.cc', 226 'views/message_popup_collection_unittest.cc', 227 'views/notification_view_unittest.cc', 228 'views/notifier_settings_view_unittest.cc', 229 ], 230 }], 231 ['notifications==0', { # Android and iOS. 232 'sources/': [ 233 # Exclude everything except main(). 234 ['exclude', '\\.(cc|mm)$'], 235 ['include', '^test/run_all_unittests\\.cc$'], 236 ], 237 }], 238 # See http://crbug.com/162998#c4 for why this is needed. 239 ['OS=="linux" and use_allocator!="none"', { 240 'dependencies': [ 241 '../../base/allocator/allocator.gyp:allocator', 242 ], 243 }], 244 ], 245 }, # target_name: message_center_unittests 246 ], 247 } 248