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 'variables': { 10 'conditions': [ 11 # Enable the multi-process host on Windows by default. 12 ['OS=="win"', { 13 'remoting_multi_process%': 1, 14 }, { 15 'remoting_multi_process%': 0, 16 }], 17 ], 18 }, 19 20 'remoting_multi_process%': '<(remoting_multi_process)', 21 'remoting_rdp_session%': 1, 22 23 'remoting_localize_path': 'tools/build/remoting_localize.py', 24 25 # The |major|, |build| and |patch| versions are inherited from Chrome. 26 # Since Chrome's |minor| version is always '0', we replace it with a 27 # Chromoting-specific patch version. 28 # Note that we check both the |chrome_version_path| file and the 29 # |remoting_version_path| so that we can override the Chrome version 30 # numbers if needed. 31 'version_py_path': '../chrome/tools/build/version.py', 32 'remoting_version_path': '../remoting/VERSION', 33 'chrome_version_path': '../chrome/VERSION', 34 'version_major': 35 '<!(python <(version_py_path) -f <(chrome_version_path) -f <(remoting_version_path) -t "@MAJOR@")', 36 'version_minor': 37 '<!(python <(version_py_path) -f <(remoting_version_path) -t "@REMOTING_PATCH@")', 38 'version_short': 39 '<(version_major).<(version_minor).' 40 '<!(python <(version_py_path) -f <(chrome_version_path) -f <(remoting_version_path) -t "@BUILD@")', 41 'version_full': 42 '<(version_short).' 43 '<!(python <(version_py_path) -f <(chrome_version_path) -f <(remoting_version_path) -t "@PATCH@")', 44 45 'branding_path': '../remoting/branding_<(branding)', 46 47 'webapp_locale_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/webapp/_locales', 48 49 'host_plugin_mime_type': 'application/vnd.chromium.remoting-host', 50 51 'conditions': [ 52 # Remoting host is supported only on Windows, OSX and Linux (with X11). 53 ['OS=="win" or OS=="mac" or (OS=="linux" and chromeos==0 and use_x11==1)', { 54 'enable_remoting_host': 1, 55 }, { 56 'enable_remoting_host': 0, 57 }], 58 ['OS=="mac"', { 59 'mac_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_BUNDLE_ID@")', 60 'mac_creator': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_CREATOR@")', 61 'host_plugin_extension': 'plugin', 62 'host_plugin_prefix': '', 63 }], 64 ['os_posix == 1 and OS != "mac" and target_arch == "ia32"', { 65 # linux 32 bit 66 'host_plugin_extension': 'ia32.so', 67 'host_plugin_prefix': 'lib', 68 }], 69 ['os_posix == 1 and OS != "mac" and target_arch == "x64"', { 70 # linux 64 bit 71 'host_plugin_extension': 'x64.so', 72 'host_plugin_prefix': 'lib', 73 }], 74 ['os_posix == 1 and OS != "mac" and target_arch == "arm"', { 75 'host_plugin_extension': 'arm.so', 76 'host_plugin_prefix': 'lib', 77 }], 78 ['os_posix == 1 and OS != "mac" and target_arch == "mipsel"', { 79 'host_plugin_extension': 'mipsel.so', 80 'host_plugin_prefix': 'lib', 81 }], 82 ['OS=="win"', { 83 'host_plugin_extension': 'dll', 84 'host_plugin_prefix': '', 85 # Use auto-generated CLSIDs to make sure that the newly installed COM 86 # classes will be used during/after upgrade even if there are old 87 # instances running already. 88 # The parameter at the end is ignored, but needed to make sure that the 89 # script will be invoked separately for each CLSID. Otherwise GYP will 90 # reuse the value returned by the first invocation of the script. 91 'daemon_controller_clsid': 92 '<!(python -c "import uuid; print uuid.uuid4()" 1)', 93 'rdp_desktop_session_clsid': 94 '<!(python -c "import uuid; print uuid.uuid4()" 2)', 95 }], 96 ], 97 98 'remoting_locales': [ 99 'ar', 'bg', 'ca', 'cs', 'da', 'de', 'el', 'en', 'en-GB', 'es', 100 'es-419', 'et', 'fi', 'fil', 'fr', 'he', 'hi', 'hr', 'hu', 'id', 101 'it', 'ja', 'ko', 'lt', 'lv', 'nb', 'nl', 'pl', 'pt-BR', 'pt-PT', 102 'ro', 'ru', 'sk', 'sl', 'sr', 'sv', 'th', 'tr', 'uk', 'vi', 103 'zh-CN', 'zh-TW', 104 ], 105 'remoting_locale_files': [ 106 # Build the list of .pak files generated from remoting_strings.grd. 107 '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x ' 108 '<(PRODUCT_DIR) <(remoting_locales))', 109 ], 110 'remoting_webapp_locale_files': [ 111 # Build the list of .json files generated from remoting_strings.grd. 112 '<!@pymod_do_main(remoting_localize --locale_output ' 113 '"<(webapp_locale_dir)/@{json_suffix}/messages.json" ' 114 '--print_only <(remoting_locales))', 115 ], 116 'remoting_webapp_files': [ 117 'resources/chromoting16.webp', 118 'resources/chromoting48.webp', 119 'resources/chromoting128.webp', 120 'resources/disclosure_arrow_down.webp', 121 'resources/disclosure_arrow_right.webp', 122 'resources/host_setup_instructions.webp', 123 'resources/icon_cross.webp', 124 'resources/icon_host.webp', 125 'resources/icon_pencil.webp', 126 'resources/icon_warning.webp', 127 'resources/infographic_my_computers.webp', 128 'resources/infographic_remote_assistance.webp', 129 'resources/plus.webp', 130 'resources/reload.webp', 131 'resources/tick.webp', 132 'webapp/connection_history.css', 133 'webapp/connection_stats.css', 134 'webapp/main.css', 135 'webapp/main.html', 136 'webapp/manifest.json', 137 'webapp/menu_button.css', 138 'webapp/open_sans.css', 139 'webapp/open_sans.woff', 140 'webapp/scale-to-fit.webp', 141 'webapp/spinner.gif', 142 'webapp/toolbar.css', 143 'webapp/wcs_sandbox.html', 144 ], 145 'remoting_webapp_js_files': [ 146 'webapp/butter_bar.js', 147 'webapp/client_plugin.js', 148 'webapp/client_plugin_async.js', 149 'webapp/client_screen.js', 150 'webapp/client_session.js', 151 'webapp/clipboard.js', 152 'webapp/connection_history.js', 153 'webapp/connection_stats.js', 154 'webapp/cs_oauth2_trampoline.js', 155 'webapp/cs_third_party_auth_trampoline.js', 156 'webapp/error.js', 157 'webapp/event_handlers.js', 158 'webapp/format_iq.js', 159 'webapp/host.js', 160 'webapp/host_controller.js', 161 'webapp/host_dispatcher.js', 162 'webapp/host_list.js', 163 'webapp/host_native_messaging.js', 164 'webapp/host_screen.js', 165 'webapp/host_session.js', 166 'webapp/host_settings.js', 167 'webapp/host_setup_dialog.js', 168 'webapp/host_table_entry.js', 169 'webapp/identity.js', 170 'webapp/l10n.js', 171 'webapp/log_to_server.js', 172 'webapp/menu_button.js', 173 'webapp/oauth2.js', 174 'webapp/oauth2_api.js', 175 'webapp/paired_client_manager.js', 176 'webapp/plugin_settings.js', 177 'webapp/remoting.js', 178 'webapp/server_log_entry.js', 179 'webapp/session_connector.js', 180 'webapp/stats_accumulator.js', 181 'webapp/third_party_host_permissions.js', 182 'webapp/xhr_proxy.js', 183 'webapp/third_party_token_fetcher.js', 184 'webapp/toolbar.js', 185 'webapp/ui_mode.js', 186 'webapp/wcs.js', 187 'webapp/wcs_loader.js', 188 'webapp/wcs_sandbox_container.js', 189 'webapp/wcs_sandbox_content.js', 190 'webapp/xhr.js', 191 ], 192 'remoting_host_installer_mac_roots': [ 193 'host/installer/mac/', 194 '<(DEPTH)/chrome/installer/mac/', 195 ], 196 'remoting_host_installer_mac_files': [ 197 'host/installer/mac/do_signing.sh', 198 'host/installer/mac/do_signing.props', 199 'host/installer/mac/ChromotingHost.pkgproj', 200 'host/installer/mac/ChromotingHostService.pkgproj', 201 'host/installer/mac/ChromotingHostUninstaller.pkgproj', 202 'host/installer/mac/LaunchAgents/org.chromium.chromoting.plist', 203 'host/installer/mac/PrivilegedHelperTools/org.chromium.chromoting.me2me.sh', 204 'host/installer/mac/Config/org.chromium.chromoting.conf', 205 'host/installer/mac/Scripts/keystone_install.sh', 206 'host/installer/mac/Scripts/remoting_postflight.sh', 207 'host/installer/mac/Scripts/remoting_preflight.sh', 208 'host/installer/mac/Keystone/GoogleSoftwareUpdate.pkg', 209 '<(DEPTH)/chrome/installer/mac/pkg-dmg', 210 ], 211 'remoting_host_installer_win_roots': [ 212 'host/installer/win/', 213 ], 214 'remoting_host_installer_win_files': [ 215 'host/installer/win/chromoting.wxs', 216 'host/installer/win/parameters.json', 217 ], 218 }, 219 220 'includes': [ 221 '../chrome/js_unittest_vars.gypi', 222 ], 223 224 'target_defaults': { 225 'defines': [ 226 'BINARY_CORE=1', 227 'BINARY_DESKTOP=2', 228 'BINARY_HOST_ME2ME=3', 229 'BINARY_HOST_PLUGIN=4', 230 ], 231 'include_dirs': [ 232 '..', # Root of Chrome checkout 233 ], 234 'variables': { 235 'win_debug_RuntimeChecks': '0', 236 }, 237 'conditions': [ 238 ['OS=="mac" and mac_breakpad==1', { 239 'defines': [ 240 'REMOTING_ENABLE_BREAKPAD' 241 ], 242 }], 243 ['OS=="win" and buildtype == "Official"', { 244 'defines': [ 245 'REMOTING_ENABLE_BREAKPAD' 246 ], 247 }], 248 ['OS=="win" and remoting_multi_process != 0 and \ 249 remoting_rdp_session != 0', { 250 'defines': [ 251 'REMOTING_RDP_SESSION', 252 ], 253 }], 254 ['remoting_multi_process != 0', { 255 'defines': [ 256 'REMOTING_MULTI_PROCESS', 257 ], 258 }], 259 ], 260 }, 261 262 'conditions': [ 263 ['enable_remoting_host==1', { 264 'targets': [ 265 { 266 'target_name': 'remoting_host', 267 'type': 'static_library', 268 'variables': { 'enable_wexit_time_destructors': 1, }, 269 'dependencies': [ 270 'remoting_base', 271 'remoting_jingle_glue', 272 'remoting_protocol', 273 'remoting_resources', 274 '../crypto/crypto.gyp:crypto', 275 '../google_apis/google_apis.gyp:google_apis', 276 '../ipc/ipc.gyp:ipc', 277 '../third_party/webrtc/modules/modules.gyp:desktop_capture', 278 '../ui/events/events.gyp:dom4_keycode_converter', 279 ], 280 'defines': [ 281 'VERSION=<(version_full)', 282 ], 283 'sources': [ 284 'host/audio_capturer.cc', 285 'host/audio_capturer.h', 286 'host/audio_capturer_linux.cc', 287 'host/audio_capturer_linux.h', 288 'host/audio_capturer_mac.cc', 289 'host/audio_capturer_win.cc', 290 'host/audio_capturer_win.h', 291 'host/audio_scheduler.cc', 292 'host/audio_scheduler.h', 293 'host/audio_silence_detector.cc', 294 'host/audio_silence_detector.h', 295 'host/basic_desktop_environment.cc', 296 'host/basic_desktop_environment.h', 297 'host/capture_scheduler.cc', 298 'host/capture_scheduler.h', 299 'host/chromoting_host.cc', 300 'host/chromoting_host.h', 301 'host/chromoting_host_context.cc', 302 'host/chromoting_host_context.h', 303 'host/chromoting_messages.cc', 304 'host/chromoting_messages.h', 305 'host/chromoting_param_traits.cc', 306 'host/chromoting_param_traits.h', 307 'host/client_session.cc', 308 'host/client_session.h', 309 'host/client_session_control.h', 310 'host/clipboard.h', 311 'host/clipboard_mac.mm', 312 'host/clipboard_win.cc', 313 'host/clipboard_x11.cc', 314 'host/config_file_watcher.cc', 315 'host/config_file_watcher.h', 316 'host/config_watcher.h', 317 'host/constants_mac.cc', 318 'host/constants_mac.h', 319 'host/continue_window.cc', 320 'host/continue_window.h', 321 'host/continue_window_aura.cc', 322 'host/continue_window_gtk.cc', 323 'host/continue_window_mac.mm', 324 'host/continue_window_win.cc', 325 'host/desktop_environment.h', 326 'host/desktop_resizer.h', 327 'host/desktop_resizer_linux.cc', 328 'host/desktop_resizer_mac.cc', 329 'host/desktop_resizer_win.cc', 330 'host/desktop_session_connector.h', 331 'host/desktop_session_proxy.cc', 332 'host/desktop_session_proxy.h', 333 'host/desktop_shape_tracker.h', 334 'host/desktop_shape_tracker_mac.cc', 335 'host/desktop_shape_tracker_win.cc', 336 'host/desktop_shape_tracker_x11.cc', 337 'host/disconnect_window_aura.cc', 338 'host/disconnect_window_gtk.cc', 339 'host/disconnect_window_mac.h', 340 'host/disconnect_window_mac.mm', 341 'host/disconnect_window_win.cc', 342 'host/dns_blackhole_checker.cc', 343 'host/dns_blackhole_checker.h', 344 'host/heartbeat_sender.cc', 345 'host/heartbeat_sender.h', 346 'host/host_change_notification_listener.cc', 347 'host/host_change_notification_listener.h', 348 'host/host_config.cc', 349 'host/host_config.h', 350 'host/host_exit_codes.cc', 351 'host/host_exit_codes.h', 352 'host/host_secret.cc', 353 'host/host_secret.h', 354 'host/host_status_monitor.h', 355 'host/host_status_observer.h', 356 'host/host_status_sender.cc', 357 'host/host_status_sender.h', 358 'host/host_window.h', 359 'host/host_window_proxy.cc', 360 'host/host_window_proxy.h', 361 'host/in_memory_host_config.cc', 362 'host/in_memory_host_config.h', 363 'host/input_injector.h', 364 'host/input_injector_linux.cc', 365 'host/input_injector_mac.cc', 366 'host/input_injector_win.cc', 367 'host/ipc_audio_capturer.cc', 368 'host/ipc_audio_capturer.h', 369 'host/ipc_constants.cc', 370 'host/ipc_constants.h', 371 'host/ipc_desktop_environment.cc', 372 'host/ipc_desktop_environment.h', 373 'host/ipc_host_event_logger.cc', 374 'host/ipc_host_event_logger.h', 375 'host/ipc_input_injector.cc', 376 'host/ipc_input_injector.h', 377 'host/ipc_screen_controls.cc', 378 'host/ipc_screen_controls.h', 379 'host/ipc_util.h', 380 'host/ipc_util_posix.cc', 381 'host/ipc_util_win.cc', 382 'host/ipc_video_frame_capturer.cc', 383 'host/ipc_video_frame_capturer.h', 384 'host/it2me_desktop_environment.cc', 385 'host/it2me_desktop_environment.h', 386 'host/json_host_config.cc', 387 'host/json_host_config.h', 388 'host/linux/audio_pipe_reader.cc', 389 'host/linux/audio_pipe_reader.h', 390 'host/linux/x11_util.cc', 391 'host/linux/x11_util.h', 392 'host/linux/x_server_clipboard.cc', 393 'host/linux/x_server_clipboard.h', 394 'host/local_input_monitor.h', 395 'host/local_input_monitor_linux.cc', 396 'host/local_input_monitor_mac.mm', 397 'host/local_input_monitor_win.cc', 398 'host/log_to_server.cc', 399 'host/log_to_server.h', 400 'host/me2me_desktop_environment.cc', 401 'host/me2me_desktop_environment.h', 402 'host/mouse_clamping_filter.cc', 403 'host/mouse_clamping_filter.h', 404 'host/pairing_registry_delegate.cc', 405 'host/pairing_registry_delegate.h', 406 'host/pairing_registry_delegate_linux.cc', 407 'host/pairing_registry_delegate_linux.h', 408 'host/pairing_registry_delegate_mac.cc', 409 'host/pairing_registry_delegate_win.cc', 410 'host/pairing_registry_delegate_win.h', 411 'host/pam_authorization_factory_posix.cc', 412 'host/pam_authorization_factory_posix.h', 413 'host/pin_hash.cc', 414 'host/pin_hash.h', 415 'host/policy_hack/policy_watcher.cc', 416 'host/policy_hack/policy_watcher.h', 417 'host/policy_hack/policy_watcher_linux.cc', 418 'host/policy_hack/policy_watcher_mac.mm', 419 'host/policy_hack/policy_watcher_win.cc', 420 'host/register_support_host_request.cc', 421 'host/register_support_host_request.h', 422 'host/remote_input_filter.cc', 423 'host/remote_input_filter.h', 424 'host/resizing_host_observer.cc', 425 'host/resizing_host_observer.h', 426 'host/sas_injector.h', 427 'host/sas_injector_win.cc', 428 'host/screen_controls.h', 429 'host/screen_resolution.cc', 430 'host/screen_resolution.h', 431 'host/server_log_entry.cc', 432 'host/server_log_entry.h', 433 'host/service_urls.cc', 434 'host/service_urls.h', 435 'host/session_manager_factory.cc', 436 'host/session_manager_factory.h', 437 'host/signaling_connector.cc', 438 'host/signaling_connector.h', 439 'host/token_validator_factory_impl.cc', 440 'host/token_validator_factory_impl.h', 441 'host/usage_stats_consent.h', 442 'host/usage_stats_consent_mac.cc', 443 'host/usage_stats_consent_win.cc', 444 'host/username.cc', 445 'host/username.h', 446 'host/video_scheduler.cc', 447 'host/video_scheduler.h', 448 'host/win/com_security.cc', 449 'host/win/com_security.h', 450 'host/win/launch_process_with_token.cc', 451 'host/win/launch_process_with_token.h', 452 'host/win/omaha.cc', 453 'host/win/omaha.h', 454 'host/win/rdp_client.cc', 455 'host/win/rdp_client.h', 456 'host/win/rdp_client_window.cc', 457 'host/win/rdp_client_window.h', 458 'host/win/security_descriptor.cc', 459 'host/win/security_descriptor.h', 460 'host/win/session_desktop_environment.cc', 461 'host/win/session_desktop_environment.h', 462 'host/win/session_input_injector.cc', 463 'host/win/session_input_injector.h', 464 'host/win/window_station_and_desktop.cc', 465 'host/win/window_station_and_desktop.h', 466 'host/win/wts_terminal_monitor.cc', 467 'host/win/wts_terminal_monitor.h', 468 'host/win/wts_terminal_observer.h', 469 ], 470 'conditions': [ 471 ['OS=="linux"', { 472 'dependencies': [ 473 # Always use GTK on Linux, even for Aura builds. 474 # 475 # TODO(lambroslambrou): Once the DisconnectWindow and 476 # ContinueWindow classes have been implemented for Aura, 477 # remove this dependency. 478 '../build/linux/system.gyp:gtk', 479 ], 480 'link_settings': { 481 'libraries': [ 482 '-lX11', 483 '-lXext', 484 '-lXfixes', 485 '-lXtst', 486 '-lXi', 487 '-lXrandr', 488 '-lpam', 489 ], 490 }, 491 }, { # else OS != "linux" 492 'sources!': [ 493 'host/continue_window_aura.cc', 494 'host/disconnect_window_aura.cc', 495 ], 496 }], 497 ['OS=="mac"', { 498 'sources': [ 499 '../third_party/GTM/AppKit/GTMCarbonEvent.h', 500 '../third_party/GTM/AppKit/GTMCarbonEvent.m', 501 '../third_party/GTM/DebugUtils/GTMDebugSelectorValidation.h', 502 '../third_party/GTM/DebugUtils/GTMTypeCasting.h', 503 '../third_party/GTM/Foundation/GTMObjectSingleton.h', 504 '../third_party/GTM/GTMDefines.h', 505 ], 506 'include_dirs': [ 507 '../third_party/GTM', 508 '../third_party/GTM/AppKit', 509 '../third_party/GTM/DebugUtils', 510 '../third_party/GTM/Foundation', 511 ], 512 'link_settings': { 513 'libraries': [ 514 '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework', 515 'libpam.a', 516 ], 517 }, 518 }], 519 ['OS=="win"', { 520 'defines': [ 521 '_ATL_NO_EXCEPTIONS', 522 'ISOLATION_AWARE_ENABLED=1', 523 ], 524 'dependencies': [ 525 '../sandbox/sandbox.gyp:sandbox', 526 ], 527 'msvs_settings': { 528 'VCCLCompilerTool': { 529 # /MP conflicts with #import directive so we limit the number 530 # of processes to spawn to 1. 531 'AdditionalOptions': ['/MP1'], 532 }, 533 }, 534 }], 535 ], 536 }, # end of target 'remoting_host' 537 538 { 539 'target_name': 'remoting_native_messaging_base', 540 'type': 'static_library', 541 'variables': { 'enable_wexit_time_destructors': 1, }, 542 'dependencies': [ 543 '../base/base.gyp:base', 544 ], 545 'sources': [ 546 'host/native_messaging/native_messaging_channel.cc', 547 'host/native_messaging/native_messaging_channel.h', 548 'host/native_messaging/native_messaging_reader.cc', 549 'host/native_messaging/native_messaging_reader.h', 550 'host/native_messaging/native_messaging_writer.cc', 551 'host/native_messaging/native_messaging_writer.h', 552 ], 553 }, # end of target 'remoting_native_messaging_base' 554 555 { 556 'target_name': 'remoting_me2me_host_static', 557 'type': 'static_library', 558 'variables': { 'enable_wexit_time_destructors': 1, }, 559 'dependencies': [ 560 '../base/base.gyp:base', 561 '../base/base.gyp:base_i18n', 562 '../net/net.gyp:net', 563 '../third_party/webrtc/modules/modules.gyp:desktop_capture', 564 'remoting_base', 565 'remoting_breakpad', 566 'remoting_host', 567 'remoting_host_event_logger', 568 'remoting_host_logging', 569 'remoting_jingle_glue', 570 ], 571 'defines': [ 572 'VERSION=<(version_full)', 573 ], 574 'sources': [ 575 'host/curtain_mode.h', 576 'host/curtain_mode_linux.cc', 577 'host/curtain_mode_mac.cc', 578 'host/curtain_mode_win.cc', 579 'host/posix/signal_handler.cc', 580 'host/posix/signal_handler.h', 581 ], 582 'conditions': [ 583 ['os_posix != 1', { 584 'sources/': [ 585 ['exclude', '^host/posix/'], 586 ], 587 }], 588 ], # end of 'conditions' 589 }, # end of target 'remoting_me2me_host_static' 590 591 { 592 'target_name': 'remoting_host_setup_base', 593 'type': 'static_library', 594 'variables': { 'enable_wexit_time_destructors': 1, }, 595 'dependencies': [ 596 '../base/base.gyp:base', 597 '../google_apis/google_apis.gyp:google_apis', 598 'remoting_host', 599 ], 600 'defines': [ 601 'VERSION=<(version_full)', 602 ], 603 'sources': [ 604 'host/setup/daemon_controller.cc', 605 'host/setup/daemon_controller.h', 606 'host/setup/daemon_controller_delegate_linux.cc', 607 'host/setup/daemon_controller_delegate_linux.h', 608 'host/setup/daemon_controller_delegate_mac.h', 609 'host/setup/daemon_controller_delegate_mac.mm', 610 'host/setup/daemon_controller_delegate_win.cc', 611 'host/setup/daemon_controller_delegate_win.h', 612 'host/setup/daemon_installer_win.cc', 613 'host/setup/daemon_installer_win.h', 614 'host/setup/me2me_native_messaging_host.cc', 615 'host/setup/me2me_native_messaging_host.h', 616 'host/setup/oauth_client.cc', 617 'host/setup/oauth_client.h', 618 'host/setup/oauth_helper.cc', 619 'host/setup/oauth_helper.h', 620 'host/setup/pin_validator.cc', 621 'host/setup/pin_validator.h', 622 'host/setup/service_client.cc', 623 'host/setup/service_client.h', 624 'host/setup/test_util.cc', 625 'host/setup/test_util.h', 626 'host/setup/win/auth_code_getter.cc', 627 'host/setup/win/auth_code_getter.h', 628 ], 629 'conditions': [ 630 ['OS=="win"', { 631 'dependencies': [ 632 '../google_update/google_update.gyp:google_update', 633 'remoting_lib_idl', 634 ], 635 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 636 'msvs_disabled_warnings': [4267, ], 637 }], 638 ], 639 }, # end of target 'remoting_host_setup_base' 640 641 { 642 'target_name': 'remoting_host_plugin', 643 'type': 'loadable_module', 644 'variables': { 'enable_wexit_time_destructors': 1, }, 645 'product_extension': '<(host_plugin_extension)', 646 'product_prefix': '<(host_plugin_prefix)', 647 'defines': [ 648 'HOST_PLUGIN_MIME_TYPE=<(host_plugin_mime_type)', 649 ], 650 'dependencies': [ 651 '../base/base.gyp:base_i18n', 652 '../net/net.gyp:net', 653 '../third_party/npapi/npapi.gyp:npapi', 654 'remoting_base', 655 'remoting_host', 656 'remoting_host_event_logger', 657 'remoting_host_logging', 658 'remoting_host_setup_base', 659 'remoting_infoplist_strings', 660 'remoting_it2me_host_static', 661 'remoting_jingle_glue', 662 'remoting_resources', 663 ], 664 'sources': [ 665 'base/dispatch_win.h', 666 'host/plugin/host_log_handler.cc', 667 'host/plugin/host_log_handler.h', 668 'host/plugin/host_plugin.cc', 669 'host/plugin/host_plugin_utils.cc', 670 'host/plugin/host_plugin_utils.h', 671 'host/plugin/host_script_object.cc', 672 'host/plugin/host_script_object.h', 673 'host/win/core_resource.h', 674 ], 675 'conditions': [ 676 ['OS=="mac"', { 677 'mac_bundle': 1, 678 'xcode_settings': { 679 'CHROMIUM_BUNDLE_ID': '<(mac_bundle_id)', 680 'INFOPLIST_FILE': 'host/plugin/host_plugin-Info.plist', 681 'INFOPLIST_PREPROCESS': 'YES', 682 # TODO(maruel): Use INFOPLIST_PREFIX_HEADER to remove the need to 683 # duplicate string once 684 # http://code.google.com/p/gyp/issues/detail?id=243 is fixed. 685 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'HOST_PLUGIN_MIME_TYPE="<(host_plugin_mime_type)" VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)"', 686 }, 687 # TODO(mark): Come up with a fancier way to do this. It should 688 # only be necessary to list host_plugin-Info.plist once, not the 689 # three times it is listed here. 690 'mac_bundle_resources': [ 691 'host/disconnect_window.xib', 692 'host/plugin/host_plugin-Info.plist', 693 'resources/chromoting16.png', 694 'resources/chromoting48.png', 695 'resources/chromoting128.png', 696 '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(PRODUCT_DIR) <(remoting_locales))', 697 698 # Localized strings for 'Info.plist' 699 '<!@pymod_do_main(remoting_localize --locale_output ' 700 '"<(SHARED_INTERMEDIATE_DIR)/remoting/host_plugin_resources/@{json_suffix}.lproj/InfoPlist.strings" ' 701 '--print_only <(remoting_locales))', 702 ], 703 'mac_bundle_resources!': [ 704 'host/plugin/host_plugin-Info.plist', 705 ], 706 'conditions': [ 707 ['mac_breakpad==1', { 708 'variables': { 709 # A real .dSYM is needed for dump_syms to operate on. 710 'mac_real_dsym': 1, 711 }, 712 }], 713 ], # conditions 714 }], # OS=="mac" 715 [ 'OS=="win"', { 716 'defines': [ 717 'BINARY=BINARY_HOST_PLUGIN', 718 'ISOLATION_AWARE_ENABLED=1', 719 ], 720 'dependencies': [ 721 'remoting_lib_idl', 722 'remoting_core_resources', 723 'remoting_version_resources', 724 ], 725 'include_dirs': [ 726 '<(INTERMEDIATE_DIR)', 727 ], 728 'sources': [ 729 '<(SHARED_INTERMEDIATE_DIR)/remoting/core.rc', 730 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', 731 'host/plugin/host_plugin.def', 732 ], 733 'msvs_settings': { 734 'VCManifestTool': { 735 'EmbedManifest': 'true', 736 'AdditionalManifestFiles': [ 737 'host/win/common-controls.manifest', 738 ], 739 }, 740 }, 741 }], 742 ], 743 }, # end of target 'remoting_host_plugin' 744 { 745 'target_name': 'remoting_it2me_host_static', 746 'type': 'static_library', 747 'variables': { 'enable_wexit_time_destructors': 1, }, 748 'dependencies': [ 749 '../base/base.gyp:base_i18n', 750 '../net/net.gyp:net', 751 'remoting_base', 752 'remoting_host', 753 'remoting_host_event_logger', 754 'remoting_host_logging', 755 'remoting_infoplist_strings', 756 'remoting_jingle_glue', 757 'remoting_resources', 758 ], 759 'defines': [ 760 'VERSION=<(version_full)', 761 ], 762 'sources': [ 763 'host/it2me/it2me_host.cc', 764 'host/it2me/it2me_host.h', 765 'host/it2me/it2me_native_messaging_host.cc', 766 'host/it2me/it2me_native_messaging_host.h', 767 ], 768 }, # end of target 'remoting_it2me_host_static' 769 { 770 'target_name': 'remoting_it2me_native_messaging_host', 771 'type': 'executable', 772 'variables': { 'enable_wexit_time_destructors': 1, }, 773 'dependencies': [ 774 '../base/base.gyp:base', 775 'remoting_base', 776 'remoting_host', 777 'remoting_jingle_glue', 778 'remoting_it2me_host_static', 779 'remoting_native_messaging_base', 780 ], 781 'sources': [ 782 'host/it2me/it2me_native_messaging_host_main.cc', 783 ], 784 'conditions': [ 785 ['OS=="linux" and linux_use_tcmalloc==1', { 786 'dependencies': [ 787 '../base/allocator/allocator.gyp:allocator', 788 ], 789 }], 790 ], 791 }, # end of target 'remoting_it2me_native_messaging_host' 792 { 793 'target_name': 'remoting_infoplist_strings', 794 'type': 'none', 795 'dependencies': [ 796 'remoting_resources', 797 ], 798 'actions': [ 799 { 800 'action_name': 'generate_host_plugin_strings', 801 'inputs': [ 802 '<(remoting_localize_path)', 803 'host/plugin/host_plugin-InfoPlist.strings.jinja2', 804 ], 805 'outputs': [ 806 '<!@pymod_do_main(remoting_localize --locale_output ' 807 '"<(SHARED_INTERMEDIATE_DIR)/remoting/host_plugin_resources/@{json_suffix}.lproj/InfoPlist.strings" ' 808 '--print_only <(remoting_locales))', 809 ], 810 'action': [ 811 'python', 812 '<(remoting_localize_path)', 813 '--locale_dir', '<(webapp_locale_dir)', 814 '--template', 'host/plugin/host_plugin-InfoPlist.strings.jinja2', 815 '--locale_output', 816 '<(SHARED_INTERMEDIATE_DIR)/remoting/host_plugin_resources/@{json_suffix}.lproj/InfoPlist.strings', 817 '--encoding', 'utf-8', 818 '<@(remoting_locales)', 819 ], 820 }, 821 { 822 'action_name': 'generate_host_strings', 823 'inputs': [ 824 '<(remoting_localize_path)', 825 'host/remoting_me2me_host-InfoPlist.strings.jinja2', 826 ], 827 'outputs': [ 828 '<!@pymod_do_main(remoting_localize --locale_output ' 829 '"<(SHARED_INTERMEDIATE_DIR)/remoting/host_resources/@{json_suffix}.lproj/InfoPlist.strings" ' 830 '--print_only <(remoting_locales))', 831 ], 832 'action': [ 833 'python', 834 '<(remoting_localize_path)', 835 '--locale_dir', '<(webapp_locale_dir)', 836 '--template', 'host/remoting_me2me_host-InfoPlist.strings.jinja2', 837 '--locale_output', 838 '<(SHARED_INTERMEDIATE_DIR)/remoting/host_resources/@{json_suffix}.lproj/InfoPlist.strings', 839 '--encoding', 'utf-8', 840 '<@(remoting_locales)', 841 ], 842 }, 843 { 844 'action_name': 'generate_preference_pane_strings', 845 'inputs': [ 846 '<(remoting_localize_path)', 847 'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2', 848 ], 849 'outputs': [ 850 '<!@pymod_do_main(remoting_localize --locale_output ' 851 '"<(SHARED_INTERMEDIATE_DIR)/remoting/preference_pane_resources/@{json_suffix}.lproj/InfoPlist.strings" ' 852 '--print_only <(remoting_locales))', 853 ], 854 'action': [ 855 'python', 856 '<(remoting_localize_path)', 857 '--locale_dir', '<(webapp_locale_dir)', 858 '--template', 'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2', 859 '--locale_output', 860 '<(SHARED_INTERMEDIATE_DIR)/remoting/preference_pane_resources/@{json_suffix}.lproj/InfoPlist.strings', 861 '--encoding', 'utf-8', 862 '<@(remoting_locales)', 863 ], 864 }, 865 { 866 'action_name': 'generate_uninstaller_strings', 867 'inputs': [ 868 '<(remoting_localize_path)', 869 'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2', 870 ], 871 'outputs': [ 872 '<!@pymod_do_main(remoting_localize --locale_output ' 873 '"<(SHARED_INTERMEDIATE_DIR)/remoting/uninstaller_resources/@{json_suffix}.lproj/InfoPlist.strings" ' 874 '--print_only <(remoting_locales))', 875 ], 876 'action': [ 877 'python', 878 '<(remoting_localize_path)', 879 '--locale_dir', '<(webapp_locale_dir)', 880 '--template', 'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2', 881 '--locale_output', 882 '<(SHARED_INTERMEDIATE_DIR)/remoting/uninstaller_resources/@{json_suffix}.lproj/InfoPlist.strings', 883 '--encoding', 'utf-8', 884 '<@(remoting_locales)', 885 ], 886 }, 887 ], 888 }, # end of target 'remoting_infoplist_strings' 889 ], # end of 'targets' 890 }], # 'enable_remoting_host==1' 891 892 ['OS!="win" and enable_remoting_host==1', { 893 'conditions': [ 894 ['OS=="linux" and branding=="Chrome" and chromeos==0', { 895 'variables': { 896 'deb_cmd': 'host/installer/linux/build-deb.sh', 897 'deb_filename': 'host/installer/<!(["<(deb_cmd)", "-p", "-s", "<(DEPTH)"])', 898 'packaging_outputs': [ 899 '<(deb_filename)', 900 '<!(echo <(deb_filename) | sed -e "s/.deb$/.changes/")', 901 '<(PRODUCT_DIR)/remoting_me2me_host.debug', 902 '<(PRODUCT_DIR)/remoting_start_host.debug', 903 '<(PRODUCT_DIR)/remoting_native_messaging_host.debug', 904 ] 905 }, 906 'targets': [ 907 { 908 # Store the installer package(s) into a zip file so there is a 909 # consistent filename to reference for build archiving (i.e. in 910 # FILES.cfg). This also avoids possible conflicts with "wildcard" 911 # package handling in other build/signing scripts. 912 'target_name': 'remoting_me2me_host_archive', 913 'type': 'none', 914 'dependencies': [ 915 'remoting_me2me_host_deb_installer', 916 ], 917 'actions': [ 918 { 919 #'variables': { 920 # 'deb_cmd': 'host/installer/linux/build-deb.sh', 921 #}, 922 'action_name': 'build_linux_installer_zip', 923 'inputs': [ 924 '<@(packaging_outputs)', 925 ], 926 'outputs': [ 927 '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip', 928 ], 929 'action': [ 'zip', '-j', '-0', '<@(_outputs)', '<@(_inputs)' ], 930 }, 931 ], 932 }, 933 { 934 'target_name': 'remoting_me2me_host_deb_installer', 935 'type': 'none', 936 'dependencies': [ 937 'remoting_me2me_host', 938 'remoting_start_host', 939 'remoting_me2me_native_messaging_host', 940 'remoting_me2me_native_messaging_manifest', 941 ], 942 'actions': [ 943 { 944 'action_name': 'build_debian_package', 945 'inputs': [ 946 '<(deb_cmd)', 947 'host/installer/linux/Makefile', 948 'host/installer/linux/debian/chrome-remote-desktop.init', 949 'host/installer/linux/debian/chrome-remote-desktop.pam', 950 'host/installer/linux/debian/compat', 951 'host/installer/linux/debian/control', 952 'host/installer/linux/debian/copyright', 953 'host/installer/linux/debian/postinst', 954 'host/installer/linux/debian/preinst', 955 'host/installer/linux/debian/rules', 956 ], 957 'outputs': [ 958 '<@(packaging_outputs)', 959 ], 960 'action': [ '<(deb_cmd)', '-s', '<(DEPTH)' ], 961 }, 962 ], 963 }, 964 ], 965 }], 966 ], 967 'targets': [ 968 { 969 'target_name': 'remoting_me2me_host', 970 'type': 'executable', 971 'variables': { 'enable_wexit_time_destructors': 1, }, 972 'dependencies': [ 973 '../base/base.gyp:base', 974 '../base/base.gyp:base_i18n', 975 '../net/net.gyp:net', 976 '../third_party/webrtc/modules/modules.gyp:desktop_capture', 977 'remoting_base', 978 'remoting_breakpad', 979 'remoting_host', 980 'remoting_host_event_logger', 981 'remoting_host_logging', 982 'remoting_host_setup_base', 983 'remoting_infoplist_strings', 984 'remoting_jingle_glue', 985 'remoting_me2me_host_static', 986 ], 987 'defines': [ 988 'VERSION=<(version_full)', 989 ], 990 'sources': [ 991 'host/host_main.cc', 992 'host/host_main.h', 993 'host/remoting_me2me_host.cc', 994 ], 995 'conditions': [ 996 ['OS=="mac"', { 997 'mac_bundle': 1, 998 'variables': { 999 'host_bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_HOST_BUNDLE_ID@")', 1000 }, 1001 'xcode_settings': { 1002 'INFOPLIST_FILE': 'host/remoting_me2me_host-Info.plist', 1003 'INFOPLIST_PREPROCESS': 'YES', 1004 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(host_bundle_id)"', 1005 }, 1006 'mac_bundle_resources': [ 1007 'host/disconnect_window.xib', 1008 'host/remoting_me2me_host.icns', 1009 'host/remoting_me2me_host-Info.plist', 1010 '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(PRODUCT_DIR) <(remoting_locales))', 1011 1012 # Localized strings for 'Info.plist' 1013 '<!@pymod_do_main(remoting_localize --locale_output ' 1014 '"<(SHARED_INTERMEDIATE_DIR)/remoting/host_resources/@{json_suffix}.lproj/InfoPlist.strings" ' 1015 '--print_only <(remoting_locales))', 1016 ], 1017 'mac_bundle_resources!': [ 1018 'host/remoting_me2me_host-Info.plist', 1019 ], 1020 'conditions': [ 1021 ['mac_breakpad==1', { 1022 'variables': { 1023 # A real .dSYM is needed for dump_syms to operate on. 1024 'mac_real_dsym': 1, 1025 }, 1026 'copies': [ 1027 { 1028 'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Resources', 1029 'files': [ 1030 '<(PRODUCT_DIR)/crash_inspector', 1031 '<(PRODUCT_DIR)/crash_report_sender.app' 1032 ], 1033 }, 1034 ], 1035 'dependencies': [ 1036 '../breakpad/breakpad.gyp:dump_syms', 1037 ], 1038 'postbuilds': [ 1039 { 1040 'postbuild_name': 'Dump Symbols', 1041 'variables': { 1042 'dump_product_syms_path': 1043 'scripts/mac/dump_product_syms', 1044 }, 1045 'action': [ 1046 '<(dump_product_syms_path)', 1047 '<(version_full)', 1048 ], 1049 }, # end of postbuild 'dump_symbols' 1050 ], # end of 'postbuilds' 1051 }], # mac_breakpad==1 1052 ], # conditions 1053 }], # OS=mac 1054 ['OS=="linux" and linux_use_tcmalloc==1', { 1055 'dependencies': [ 1056 '../base/allocator/allocator.gyp:allocator', 1057 ], 1058 }], # OS=linux 1059 ], # end of 'conditions' 1060 }, # end of target 'remoting_me2me_host' 1061 { 1062 'target_name': 'remoting_me2me_native_messaging_host', 1063 'type': 'executable', 1064 'product_name': 'remoting_native_messaging_host', 1065 'variables': { 'enable_wexit_time_destructors': 1, }, 1066 'dependencies': [ 1067 '../base/base.gyp:base', 1068 'remoting_host', 1069 'remoting_host_logging', 1070 'remoting_host_setup_base', 1071 'remoting_native_messaging_base', 1072 ], 1073 'sources': [ 1074 'host/setup/me2me_native_messaging_host_main.cc', 1075 ], 1076 'conditions': [ 1077 ['OS=="linux" and linux_use_tcmalloc==1', { 1078 'dependencies': [ 1079 '../base/allocator/allocator.gyp:allocator', 1080 ], 1081 }], 1082 ], 1083 }, # end of target 'remoting_me2me_native_messaging_host' 1084 ], # end of 'targets' 1085 }], # 'OS!="win" and enable_remoting_host==1' 1086 1087 1088 ['OS=="linux" and chromeos==0 and enable_remoting_host==1', { 1089 'targets': [ 1090 # Linux breakpad processing 1091 { 1092 'target_name': 'remoting_linux_symbols', 1093 'type': 'none', 1094 'conditions': [ 1095 ['linux_dump_symbols==1', { 1096 'actions': [ 1097 { 1098 'action_name': 'dump_symbols', 1099 'variables': { 1100 'plugin_file': '<(host_plugin_prefix)remoting_host_plugin.<(host_plugin_extension)', 1101 }, 1102 'inputs': [ 1103 '<(DEPTH)/build/linux/dump_app_syms', 1104 '<(PRODUCT_DIR)/dump_syms', 1105 '<(PRODUCT_DIR)/<(plugin_file)', 1106 ], 1107 'outputs': [ 1108 '<(PRODUCT_DIR)/<(plugin_file).breakpad.<(target_arch)', 1109 ], 1110 'action': ['<(DEPTH)/build/linux/dump_app_syms', 1111 '<(PRODUCT_DIR)/dump_syms', 1112 '<(linux_strip_binary)', 1113 '<(PRODUCT_DIR)/<(plugin_file)', 1114 '<@(_outputs)'], 1115 'message': 'Dumping breakpad symbols to <(_outputs)', 1116 'process_outputs_as_sources': 1, 1117 }, 1118 ], 1119 'dependencies': [ 1120 'remoting_host_plugin', 1121 '../breakpad/breakpad.gyp:dump_syms', 1122 ], 1123 }], # 'linux_dump_symbols==1' 1124 ], # end of 'conditions' 1125 }, # end of target 'linux_symbols' 1126 { 1127 'target_name': 'remoting_start_host', 1128 'type': 'executable', 1129 'dependencies': [ 1130 'remoting_host_setup_base', 1131 ], 1132 'sources': [ 1133 'host/setup/host_starter.cc', 1134 'host/setup/host_starter.h', 1135 'host/setup/start_host.cc', 1136 ], 1137 'conditions': [ 1138 ['linux_use_tcmalloc==1', { 1139 'dependencies': [ 1140 '../base/allocator/allocator.gyp:allocator', 1141 ], 1142 }], 1143 ], 1144 }, # end of target 'remoting_start_host' 1145 ], # end of 'targets' 1146 }], # 'OS=="linux"' 1147 1148 ['OS=="mac"', { 1149 'targets': [ 1150 { 1151 'target_name': 'remoting_host_uninstaller', 1152 'type': 'executable', 1153 'mac_bundle': 1, 1154 'variables': { 1155 'bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_BUNDLE_ID@")', 1156 }, 1157 'dependencies': [ 1158 '<(DEPTH)/base/base.gyp:base', 1159 'remoting_infoplist_strings', 1160 ], 1161 'sources': [ 1162 'host/constants_mac.cc', 1163 'host/constants_mac.h', 1164 'host/installer/mac/uninstaller/remoting_uninstaller.h', 1165 'host/installer/mac/uninstaller/remoting_uninstaller.mm', 1166 'host/installer/mac/uninstaller/remoting_uninstaller_app.h', 1167 'host/installer/mac/uninstaller/remoting_uninstaller_app.mm', 1168 ], 1169 'xcode_settings': { 1170 'INFOPLIST_FILE': 'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist', 1171 'INFOPLIST_PREPROCESS': 'YES', 1172 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(bundle_id)"', 1173 }, 1174 'mac_bundle_resources': [ 1175 'host/installer/mac/uninstaller/remoting_uninstaller.icns', 1176 'host/installer/mac/uninstaller/remoting_uninstaller.xib', 1177 'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist', 1178 1179 # Localized strings for 'Info.plist' 1180 '<!@pymod_do_main(remoting_localize --locale_output ' 1181 '"<(SHARED_INTERMEDIATE_DIR)/remoting/uninstaller_resources/@{json_suffix}.lproj/InfoPlist.strings" ' 1182 '--print_only <(remoting_locales))', 1183 ], 1184 'mac_bundle_resources!': [ 1185 'host/installer/mac/uninstaller/remoting_uninstaller-Info.plist', 1186 ], 1187 }, # end of target 'remoting_host_uninstaller' 1188 1189 # This packages up the files needed for the remoting host installer so 1190 # they can be sent off to be signed. 1191 # We don't build an installer here because we don't have signed binaries. 1192 { 1193 'target_name': 'remoting_me2me_host_archive', 1194 'type': 'none', 1195 'dependencies': [ 1196 'remoting_host_prefpane', 1197 'remoting_host_uninstaller', 1198 'remoting_me2me_host', 1199 'remoting_me2me_native_messaging_host', 1200 'remoting_me2me_native_messaging_manifest', 1201 ], 1202 'variables': { 1203 'host_name': '<!(python <(version_py_path) -f <(branding_path) -t "@HOST_PLUGIN_FILE_NAME@")', 1204 'host_service_name': '<!(python <(version_py_path) -f <(branding_path) -t "@DAEMON_FILE_NAME@")', 1205 'host_uninstaller_name': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_NAME@")', 1206 'bundle_prefix': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_UNINSTALLER_BUNDLE_PREFIX@")', 1207 }, 1208 'actions': [ 1209 { 1210 'action_name': 'Zip installer files for signing', 1211 'temp_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/remoting-me2me-host', 1212 'zip_path': '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip', 1213 'variables': { 1214 'host_name_nospace': '<!(echo <(host_name) | sed "s/ //g")', 1215 'host_service_name_nospace': '<!(echo <(host_service_name) | sed "s/ //g")', 1216 'host_uninstaller_name_nospace': '<!(echo <(host_uninstaller_name) | sed "s/ //g")', 1217 }, 1218 'generated_files': [ 1219 '<(PRODUCT_DIR)/remoting_host_prefpane.prefPane', 1220 '<(PRODUCT_DIR)/remoting_me2me_host.app', 1221 '<(PRODUCT_DIR)/remoting_host_uninstaller.app', 1222 '<(PRODUCT_DIR)/remoting_native_messaging_host', 1223 '<(PRODUCT_DIR)/remoting/com.google.chrome.remote_desktop.json', 1224 ], 1225 'generated_files_dst': [ 1226 'PreferencePanes/org.chromium.chromoting.prefPane', 1227 'PrivilegedHelperTools/org.chromium.chromoting.me2me_host.app', 1228 'Applications/<(host_uninstaller_name).app', 1229 'PrivilegedHelperTools/org.chromium.chromoting.me2me_host.app/Contents/MacOS/native_messaging_host', 1230 'Config/com.google.chrome.remote_desktop.json', 1231 ], 1232 'source_files': [ 1233 '<@(remoting_host_installer_mac_files)', 1234 ], 1235 'defs': [ 1236 'VERSION=<(version_full)', 1237 'VERSION_SHORT=<(version_short)', 1238 'VERSION_MAJOR=<(version_major)', 1239 'VERSION_MINOR=<(version_minor)', 1240 'HOST_NAME=<(host_name)', 1241 'HOST_SERVICE_NAME=<(host_service_name)', 1242 'HOST_UNINSTALLER_NAME=<(host_uninstaller_name)', 1243 'HOST_PKG=<(host_name)', 1244 'HOST_SERVICE_PKG=<(host_service_name_nospace)', 1245 'HOST_UNINSTALLER_PKG=<(host_uninstaller_name_nospace)', 1246 'BUNDLE_ID_HOST=<(bundle_prefix).<(host_name_nospace)', 1247 'BUNDLE_ID_HOST_SERVICE=<(bundle_prefix).<(host_service_name_nospace)', 1248 'BUNDLE_ID_HOST_UNINSTALLER=<(bundle_prefix).<(host_uninstaller_name_nospace)', 1249 'DMG_VOLUME_NAME=<(host_name) <(version_full)', 1250 'DMG_FILE_NAME=<!(echo <(host_name) | sed "s/ //g")-<(version_full)', 1251 ], 1252 'inputs': [ 1253 'host/installer/build-installer-archive.py', 1254 '<@(_source_files)', 1255 ], 1256 'outputs': [ 1257 '<(_zip_path)', 1258 ], 1259 'action': [ 1260 'python', 1261 'host/installer/build-installer-archive.py', 1262 '<(_temp_dir)', 1263 '<(_zip_path)', 1264 '--source-file-roots', 1265 '<@(remoting_host_installer_mac_roots)', 1266 '--source-files', 1267 '<@(_source_files)', 1268 '--generated-files', 1269 '<@(_generated_files)', 1270 '--generated-files-dst', 1271 '<@(_generated_files_dst)', 1272 '--defs', 1273 '<@(_defs)', 1274 ], 1275 }, 1276 ], # actions 1277 }, # end of target 'remoting_me2me_host_archive' 1278 1279 { 1280 'target_name': 'remoting_host_prefpane', 1281 'type': 'loadable_module', 1282 'mac_bundle': 1, 1283 'product_extension': 'prefPane', 1284 'defines': [ 1285 'JSON_USE_EXCEPTION=0', 1286 ], 1287 'dependencies': [ 1288 'remoting_infoplist_strings', 1289 ], 1290 'include_dirs': [ 1291 '../third_party/jsoncpp/overrides/include/', 1292 '../third_party/jsoncpp/source/include/', 1293 '../third_party/jsoncpp/source/src/lib_json/', 1294 ], 1295 1296 # These source files are included directly, instead of adding target 1297 # dependencies, because the targets are not yet built for 64-bit on 1298 # Mac OS X - http://crbug.com/125116. 1299 # 1300 # TODO(lambroslambrou): Fix this when Chrome supports building for 1301 # Mac OS X 64-bit - http://crbug.com/128122. 1302 'sources': [ 1303 '../third_party/jsoncpp/source/src/lib_json/json_reader.cpp', 1304 '../third_party/jsoncpp/overrides/src/lib_json/json_value.cpp', 1305 '../third_party/jsoncpp/source/src/lib_json/json_writer.cpp', 1306 '../third_party/modp_b64/modp_b64.cc', 1307 'host/constants_mac.cc', 1308 'host/constants_mac.h', 1309 'host/host_config.cc', 1310 'host/mac/me2me_preference_pane.h', 1311 'host/mac/me2me_preference_pane.mm', 1312 'host/mac/me2me_preference_pane_confirm_pin.h', 1313 'host/mac/me2me_preference_pane_confirm_pin.mm', 1314 'host/mac/me2me_preference_pane_disable.h', 1315 'host/mac/me2me_preference_pane_disable.mm', 1316 ], 1317 'link_settings': { 1318 'libraries': [ 1319 '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework', 1320 '$(SDKROOT)/System/Library/Frameworks/CoreFoundation.framework', 1321 '$(SDKROOT)/System/Library/Frameworks/PreferencePanes.framework', 1322 '$(SDKROOT)/System/Library/Frameworks/Security.framework', 1323 ], 1324 }, 1325 'variables': { 1326 'bundle_id': '<!(python <(version_py_path) -f <(branding_path) -t "@MAC_PREFPANE_BUNDLE_ID@")', 1327 }, 1328 'xcode_settings': { 1329 'ARCHS': ['i386', 'x86_64'], 1330 'GCC_ENABLE_OBJC_GC': 'supported', 1331 'INFOPLIST_FILE': 'host/mac/me2me_preference_pane-Info.plist', 1332 'INFOPLIST_PREPROCESS': 'YES', 1333 'INFOPLIST_PREPROCESSOR_DEFINITIONS': 'VERSION_FULL="<(version_full)" VERSION_SHORT="<(version_short)" BUNDLE_ID="<(bundle_id)"', 1334 }, 1335 'mac_bundle_resources': [ 1336 'host/mac/me2me_preference_pane.xib', 1337 'host/mac/me2me_preference_pane_confirm_pin.xib', 1338 'host/mac/me2me_preference_pane_disable.xib', 1339 'host/mac/me2me_preference_pane-Info.plist', 1340 'resources/chromoting128.png', 1341 1342 # Localized strings for 'Info.plist' 1343 '<!@pymod_do_main(remoting_localize --locale_output ' 1344 '"<(SHARED_INTERMEDIATE_DIR)/remoting/preference_pane_resources/@{json_suffix}.lproj/InfoPlist.strings" ' 1345 '--print_only <(remoting_locales))', 1346 ], 1347 'mac_bundle_resources!': [ 1348 'host/mac/me2me_preference_pane-Info.plist', 1349 ], 1350 'conditions': [ 1351 ['mac_breakpad==1', { 1352 'variables': { 1353 # A real .dSYM is needed for dump_syms to operate on. 1354 'mac_real_dsym': 1, 1355 }, 1356 }], # 'mac_breakpad==1' 1357 ], # conditions 1358 }, # end of target 'remoting_host_prefpane' 1359 ], # end of 'targets' 1360 }], # 'OS=="mac"' 1361 1362 ['OS=="win"', { 1363 'targets': [ 1364 { 1365 'target_name': 'remoting_breakpad_tester', 1366 'type': 'executable', 1367 'variables': { 'enable_wexit_time_destructors': 1, }, 1368 'dependencies': [ 1369 '../base/base.gyp:base', 1370 'remoting_host_logging', 1371 ], 1372 'sources': [ 1373 'tools/breakpad_tester_win.cc', 1374 ], 1375 }, # end of target 'remoting_breakpad_tester' 1376 { 1377 'target_name': 'remoting_lib_idl', 1378 'type': 'static_library', 1379 'sources': [ 1380 'host/win/chromoting_lib_idl.templ', 1381 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.h', 1382 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.idl', 1383 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib_i.c', 1384 ], 1385 # This target exports a hard dependency because dependent targets may 1386 # include chromoting_lib.h, a generated header. 1387 'hard_dependency': 1, 1388 'msvs_settings': { 1389 'VCMIDLTool': { 1390 'OutputDirectory': '<(SHARED_INTERMEDIATE_DIR)/remoting/host', 1391 }, 1392 }, 1393 'direct_dependent_settings': { 1394 'include_dirs': [ 1395 '<(SHARED_INTERMEDIATE_DIR)', 1396 ], 1397 }, 1398 'rules': [ 1399 { 1400 'rule_name': 'generate_idl', 1401 'extension': 'templ', 1402 'outputs': [ 1403 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.idl', 1404 ], 1405 'action': [ 1406 'python', 1407 '<(version_py_path)', 1408 '-e', "DAEMON_CONTROLLER_CLSID='<(daemon_controller_clsid)'", 1409 '-e', "RDP_DESKTOP_SESSION_CLSID='<(rdp_desktop_session_clsid)'", 1410 '<(RULE_INPUT_PATH)', 1411 '<@(_outputs)', 1412 ], 1413 'process_outputs_as_sources': 1, 1414 'message': 'Generating <@(_outputs)', 1415 'msvs_cygwin_shell': 0, 1416 }, 1417 ], 1418 }, # end of target 'remoting_lib_idl' 1419 1420 # remoting_lib_ps builds the proxy/stub code generated by MIDL (see 1421 # remoting_lib_idl). 1422 { 1423 'target_name': 'remoting_lib_ps', 1424 'type': 'static_library', 1425 'defines': [ 1426 # Prepend 'Ps' to the MIDL-generated routines. This includes 1427 # DllGetClassObject, DllCanUnloadNow, DllRegisterServer, 1428 # DllUnregisterServer, and DllMain. 1429 'ENTRY_PREFIX=Ps', 1430 'REGISTER_PROXY_DLL', 1431 ], 1432 'dependencies': [ 1433 'remoting_lib_idl', 1434 ], 1435 'sources': [ 1436 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.dlldata.c', 1437 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib_p.c', 1438 ], 1439 }, # end of target 'remoting_lib_ps' 1440 1441 # Regenerates 'chromoting_lib.rc' (used to embed 'chromoting_lib.tlb' 1442 # into remoting_core.dll's resources) every time 1443 # 'chromoting_lib_idl.templ' changes. Making remoting_core depend on 1444 # both this and 'remoting_lib_idl' targets ensures that the resorces 1445 # are rebuilt every time the type library is updated. GYP alone is 1446 # not smart enough to figure out this dependency on its own. 1447 { 1448 'target_name': 'remoting_lib_rc', 1449 'type': 'none', 1450 'sources': [ 1451 'host/win/chromoting_lib_idl.templ', 1452 ], 1453 'hard_dependency': 1, 1454 'direct_dependent_settings': { 1455 'include_dirs': [ 1456 '<(SHARED_INTERMEDIATE_DIR)', 1457 ], 1458 }, 1459 'rules': [ 1460 { 1461 'rule_name': 'generate_rc', 1462 'extension': 'templ', 1463 'outputs': [ 1464 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.rc', 1465 ], 1466 'action': [ 1467 'echo 1 typelib "remoting/host/chromoting_lib.tlb" > <@(_outputs)', 1468 ], 1469 'message': 'Generating <@(_outputs)', 1470 'msvs_cygwin_shell': 0, 1471 }, 1472 ], 1473 }, # end of target 'remoting_lib_rc' 1474 # The only difference between |remoting_console.exe| and 1475 # |remoting_host.exe| is that the former is a console application. 1476 # |remoting_console.exe| is used for debugging purposes. 1477 { 1478 'target_name': 'remoting_console', 1479 'type': 'executable', 1480 'variables': { 'enable_wexit_time_destructors': 1, }, 1481 'defines': [ 1482 'BINARY=BINARY_HOST_ME2ME', 1483 ], 1484 'dependencies': [ 1485 'remoting_core', 1486 'remoting_version_resources', 1487 ], 1488 'sources': [ 1489 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', 1490 'host/win/entry_point.cc', 1491 ], 1492 'msvs_settings': { 1493 'VCManifestTool': { 1494 'AdditionalManifestFiles': [ 1495 'host/win/dpi_aware.manifest', 1496 ], 1497 }, 1498 'VCLinkerTool': { 1499 'EntryPointSymbol': 'HostEntryPoint', 1500 'IgnoreAllDefaultLibraries': 'true', 1501 'SubSystem': '1', # /SUBSYSTEM:CONSOLE 1502 }, 1503 }, 1504 }, # end of target 'remoting_console' 1505 { 1506 'target_name': 'remoting_core', 1507 'type': 'shared_library', 1508 'variables': { 'enable_wexit_time_destructors': 1, }, 1509 'defines' : [ 1510 '_ATL_APARTMENT_THREADED', 1511 '_ATL_CSTRING_EXPLICIT_CONSTRUCTORS', 1512 '_ATL_NO_AUTOMATIC_NAMESPACE', 1513 '_ATL_NO_EXCEPTIONS', 1514 'BINARY=BINARY_CORE', 1515 'DAEMON_CONTROLLER_CLSID="{<(daemon_controller_clsid)}"', 1516 'RDP_DESKTOP_SESSION_CLSID="{<(rdp_desktop_session_clsid)}"', 1517 'HOST_IMPLEMENTATION', 1518 'ISOLATION_AWARE_ENABLED=1', 1519 'STRICT', 1520 'VERSION=<(version_full)', 1521 ], 1522 'dependencies': [ 1523 '../base/base.gyp:base', 1524 '../base/base.gyp:base_static', 1525 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 1526 '../ipc/ipc.gyp:ipc', 1527 '../net/net.gyp:net', 1528 '../third_party/webrtc/modules/modules.gyp:desktop_capture', 1529 'remoting_base', 1530 'remoting_breakpad', 1531 'remoting_core_resources', 1532 'remoting_host', 1533 'remoting_host_event_logger', 1534 'remoting_host_logging', 1535 'remoting_host_setup_base', 1536 'remoting_lib_idl', 1537 'remoting_lib_ps', 1538 'remoting_lib_rc', 1539 'remoting_me2me_host_static', 1540 'remoting_native_messaging_base', 1541 'remoting_protocol', 1542 'remoting_version_resources', 1543 ], 1544 'sources': [ 1545 '<(SHARED_INTERMEDIATE_DIR)/remoting/core.rc', 1546 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.rc', 1547 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/remoting_host_messages.rc', 1548 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', 1549 'host/chromoting_messages.cc', 1550 'host/chromoting_messages.h', 1551 'host/config_file_watcher.cc', 1552 'host/config_file_watcher.h', 1553 'host/config_watcher.h', 1554 'host/daemon_process.cc', 1555 'host/daemon_process.h', 1556 'host/daemon_process_win.cc', 1557 'host/desktop_process.cc', 1558 'host/desktop_process.h', 1559 'host/desktop_process_main.cc', 1560 'host/desktop_session.cc', 1561 'host/desktop_session.h', 1562 'host/desktop_session_agent.cc', 1563 'host/desktop_session_agent.h', 1564 'host/desktop_session_win.cc', 1565 'host/desktop_session_win.h', 1566 'host/host_exit_codes.h', 1567 'host/host_exit_codes.cc', 1568 'host/host_export.h', 1569 'host/host_main.cc', 1570 'host/host_main.h', 1571 'host/ipc_constants.cc', 1572 'host/ipc_constants.h', 1573 'host/remoting_me2me_host.cc', 1574 'host/sas_injector.h', 1575 'host/sas_injector_win.cc', 1576 'host/setup/me2me_native_messaging_host_main.cc', 1577 'host/verify_config_window_win.cc', 1578 'host/verify_config_window_win.h', 1579 'host/win/chromoting_module.cc', 1580 'host/win/chromoting_module.h', 1581 'host/win/core.cc', 1582 'host/win/core_resource.h', 1583 'host/win/elevated_controller.cc', 1584 'host/win/elevated_controller.h', 1585 'host/win/host_service.cc', 1586 'host/win/host_service.h', 1587 'host/win/omaha.cc', 1588 'host/win/omaha.h', 1589 'host/win/rdp_desktop_session.cc', 1590 'host/win/rdp_desktop_session.h', 1591 'host/win/unprivileged_process_delegate.cc', 1592 'host/win/unprivileged_process_delegate.h', 1593 'host/win/worker_process_launcher.cc', 1594 'host/win/worker_process_launcher.h', 1595 'host/win/wts_session_process_delegate.cc', 1596 'host/win/wts_session_process_delegate.h', 1597 'host/worker_process_ipc_delegate.h', 1598 ], 1599 'msvs_settings': { 1600 'VCManifestTool': { 1601 'EmbedManifest': 'true', 1602 'AdditionalManifestFiles': [ 1603 'host/win/common-controls.manifest', 1604 ], 1605 }, 1606 'VCLinkerTool': { 1607 'AdditionalDependencies': [ 1608 'comctl32.lib', 1609 'rpcns4.lib', 1610 'rpcrt4.lib', 1611 'uuid.lib', 1612 'wtsapi32.lib', 1613 ], 1614 'AdditionalOptions': [ 1615 # Export the proxy/stub entry points. Note that the generated 1616 # routines have 'Ps' prefix to avoid conflicts with our own 1617 # DllMain(). 1618 '/EXPORT:DllGetClassObject=PsDllGetClassObject,PRIVATE', 1619 '/EXPORT:DllCanUnloadNow=PsDllCanUnloadNow,PRIVATE', 1620 '/EXPORT:DllRegisterServer=PsDllRegisterServer,PRIVATE', 1621 '/EXPORT:DllUnregisterServer=PsDllUnregisterServer,PRIVATE', 1622 ], 1623 }, 1624 }, 1625 }, # end of target 'remoting_core' 1626 { 1627 'target_name': 'remoting_core_resources', 1628 'type': 'none', 1629 'dependencies': [ 1630 'remoting_resources', 1631 ], 1632 'hard_dependency': 1, 1633 'direct_dependent_settings': { 1634 'include_dirs': [ 1635 '<(SHARED_INTERMEDIATE_DIR)', 1636 ], 1637 }, 1638 'sources': [ 1639 'host/win/core.rc.jinja2' 1640 ], 1641 'rules': [ 1642 { 1643 'rule_name': 'version', 1644 'extension': 'jinja2', 1645 'outputs': [ 1646 '<(SHARED_INTERMEDIATE_DIR)/remoting/core.rc' 1647 ], 1648 'action': [ 1649 'python', 1650 '<(remoting_localize_path)', 1651 '--locale_dir', '<(webapp_locale_dir)', 1652 '--template', '<(RULE_INPUT_PATH)', 1653 '--output', '<@(_outputs)', 1654 '<@(remoting_locales)', 1655 ], 1656 'message': 'Localizing the dialogs and strings' 1657 }, 1658 ], 1659 }, # end of target 'remoting_core_resources' 1660 { 1661 'target_name': 'remoting_desktop', 1662 'type': 'executable', 1663 'variables': { 'enable_wexit_time_destructors': 1, }, 1664 'defines': [ 1665 'BINARY=BINARY_DESKTOP', 1666 ], 1667 'dependencies': [ 1668 'remoting_core', 1669 'remoting_version_resources', 1670 ], 1671 'sources': [ 1672 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', 1673 'host/win/entry_point.cc', 1674 ], 1675 'msvs_settings': { 1676 'VCManifestTool': { 1677 'AdditionalManifestFiles': [ 1678 'host/win/dpi_aware.manifest', 1679 ], 1680 }, 1681 'VCLinkerTool': { 1682 'EnableUAC': 'true', 1683 # Add 'level="requireAdministrator" uiAccess="true"' to 1684 # the manifest only for the official builds because it requires 1685 # the binary to be signed to work. 1686 'conditions': [ 1687 ['buildtype == "Official"', { 1688 'UACExecutionLevel': 2, 1689 'UACUIAccess': 'true', 1690 }], 1691 ], 1692 'EntryPointSymbol': 'HostEntryPoint', 1693 'IgnoreAllDefaultLibraries': 'true', 1694 'SubSystem': '2', # /SUBSYSTEM:WINDOWS 1695 }, 1696 }, 1697 }, # end of target 'remoting_desktop' 1698 { 1699 'target_name': 'remoting_host_exe', 1700 'product_name': 'remoting_host', 1701 'type': 'executable', 1702 'variables': { 'enable_wexit_time_destructors': 1, }, 1703 'defines': [ 1704 'BINARY=BINARY_HOST_ME2ME', 1705 ], 1706 'dependencies': [ 1707 'remoting_core', 1708 'remoting_version_resources', 1709 ], 1710 'sources': [ 1711 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', 1712 'host/win/entry_point.cc', 1713 ], 1714 'msvs_settings': { 1715 'VCManifestTool': { 1716 'AdditionalManifestFiles': [ 1717 'host/win/dpi_aware.manifest', 1718 ], 1719 }, 1720 'VCLinkerTool': { 1721 'EntryPointSymbol': 'HostEntryPoint', 1722 'IgnoreAllDefaultLibraries': 'true', 1723 'ImportLibrary': '$(OutDir)\\lib\\remoting_host_exe.lib', 1724 'OutputFile': '$(OutDir)\\remoting_host.exe', 1725 'SubSystem': '2', # /SUBSYSTEM:WINDOWS 1726 }, 1727 }, 1728 }, # end of target 'remoting_host_exe' 1729 { 1730 'target_name': 'remoting_host_messages', 1731 'type': 'none', 1732 'dependencies': [ 1733 'remoting_resources', 1734 ], 1735 'hard_dependency': 1, 1736 'direct_dependent_settings': { 1737 'include_dirs': [ 1738 '<(SHARED_INTERMEDIATE_DIR)', 1739 ], 1740 }, 1741 'sources': [ 1742 'host/win/host_messages.mc.jinja2' 1743 ], 1744 'rules': [ 1745 { 1746 'rule_name': 'localize', 1747 'extension': 'jinja2', 1748 'outputs': [ 1749 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/remoting_host_messages.mc', 1750 ], 1751 'action': [ 1752 'python', 1753 '<(remoting_localize_path)', 1754 '--locale_dir', '<(webapp_locale_dir)', 1755 '--template', '<(RULE_INPUT_PATH)', 1756 '--output', '<@(_outputs)', 1757 '<@(remoting_locales)', 1758 ], 1759 'message': 'Localizing the event log messages' 1760 }, 1761 ], 1762 }, # end of target 'remoting_host_messages' 1763 1764 # Generates localized the version information resources for the Windows 1765 # binaries. 1766 # The substitution strings are taken from: 1767 # - build/util/LASTCHANGE - the last source code revision. 1768 # - chrome/VERSION - the major, build & patch versions. 1769 # - remoting/VERSION - the chromoting patch version (and overrides 1770 # for chrome/VERSION). 1771 # - translated webapp strings 1772 { 1773 'target_name': 'remoting_version_resources', 1774 'type': 'none', 1775 'dependencies': [ 1776 'remoting_resources', 1777 ], 1778 'hard_dependency': 1, 1779 'direct_dependent_settings': { 1780 'include_dirs': [ 1781 '<(SHARED_INTERMEDIATE_DIR)', 1782 ], 1783 }, 1784 'sources': [ 1785 'host/win/version.rc.jinja2' 1786 ], 1787 'rules': [ 1788 { 1789 'rule_name': 'version', 1790 'extension': 'jinja2', 1791 'variables': { 1792 'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE', 1793 }, 1794 'inputs': [ 1795 '<(chrome_version_path)', 1796 '<(lastchange_path)', 1797 '<(remoting_version_path)', 1798 ], 1799 'outputs': [ 1800 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', 1801 ], 1802 'action': [ 1803 'python', 1804 '<(remoting_localize_path)', 1805 '--variables', '<(chrome_version_path)', 1806 # |remoting_version_path| must be after |chrome_version_path| 1807 # because it can contain overrides for the version numbers. 1808 '--variables', '<(remoting_version_path)', 1809 '--variables', '<(lastchange_path)', 1810 '--locale_dir', '<(webapp_locale_dir)', 1811 '--template', '<(RULE_INPUT_PATH)', 1812 '--output', '<@(_outputs)', 1813 '<@(remoting_locales)', 1814 ], 1815 'message': 'Localizing the version information' 1816 }, 1817 ], 1818 }, # end of target 'remoting_version_resources' 1819 ], # end of 'targets' 1820 }], # 'OS=="win"' 1821 1822 ['OS=="android"', { 1823 'targets': [ 1824 { 1825 'target_name': 'remoting_jni_headers', 1826 'type': 'none', 1827 'sources': [ 1828 'android/java/src/org/chromium/chromoting/jni/JniInterface.java', 1829 ], 1830 'variables': { 1831 'jni_gen_package': 'remoting', 1832 }, 1833 'includes': [ '../build/jni_generator.gypi' ], 1834 }, # end of target 'remoting_jni_headers' 1835 { 1836 'target_name': 'remoting_client_jni', 1837 'type': 'shared_library', 1838 'dependencies': [ 1839 'remoting_base', 1840 'remoting_client', 1841 'remoting_jingle_glue', 1842 'remoting_jni_headers', 1843 'remoting_protocol', 1844 '../google_apis/google_apis.gyp:google_apis', 1845 ], 1846 'include_dirs': [ 1847 '<(SHARED_INTERMEDIATE_DIR)/remoting', 1848 ], 1849 'sources': [ 1850 'client/jni/android_keymap.cc', 1851 'client/jni/android_keymap.h', 1852 'client/jni/chromoting_jni_instance.cc', 1853 'client/jni/chromoting_jni_instance.h', 1854 'client/jni/chromoting_jni_onload.cc', 1855 'client/jni/chromoting_jni_runtime.cc', 1856 'client/jni/chromoting_jni_runtime.h', 1857 'client/jni/jni_frame_consumer.cc', 1858 'client/jni/jni_frame_consumer.h', 1859 ], 1860 }, # end of target 'remoting_client_jni' 1861 { 1862 'target_name': 'remoting_android_resources', 1863 'type': 'none', 1864 'copies': [ 1865 { 1866 'destination': '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/drawable', 1867 'files': [ 1868 'resources/chromoting128.png', 1869 'resources/icon_host.png', 1870 ], 1871 }, 1872 { 1873 'destination': '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/layout', 1874 'files': [ 1875 'resources/layout/main.xml', 1876 'resources/layout/host.xml', 1877 'resources/layout/pin_dialog.xml', 1878 ], 1879 }, 1880 { 1881 'destination': '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/menu', 1882 'files': [ 1883 'resources/menu/chromoting_actionbar.xml', 1884 'resources/menu/desktop_actionbar.xml', 1885 ], 1886 }, 1887 { 1888 'destination': '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res/values', 1889 'files': [ 1890 'resources/strings.xml', 1891 'resources/styles.xml', 1892 ], 1893 }, 1894 ], 1895 }, # end of target 'remoting_android_resources' 1896 { 1897 'target_name': 'remoting_apk', 1898 'type': 'none', 1899 'dependencies': [ 1900 'remoting_client_jni', 1901 'remoting_android_resources', 1902 ], 1903 'variables': { 1904 'apk_name': 'Chromoting', 1905 'android_app_version_name': '<(version_full)', 1906 'android_app_version_code': '<!(python ../build/util/lastchange.py --revision-only)', 1907 'manifest_package_name': 'org.chromium.chromoting', 1908 'native_lib_target': 'libremoting_client_jni', 1909 'java_in_dir': 'android/java', 1910 'additional_res_dirs': [ '<(SHARED_INTERMEDIATE_DIR)/remoting/android/res' ], 1911 'additional_input_paths': [ 1912 '<(PRODUCT_DIR)/obj/remoting/remoting_android_resources.actions_rules_copies.stamp', 1913 ], 1914 }, 1915 'includes': [ '../build/java_apk.gypi' ], 1916 }, # end of target 'remoting_apk' 1917 ], # end of 'targets' 1918 }], # 'OS=="android"' 1919 1920 ['OS=="android" and gtest_target_type=="shared_library"', { 1921 'targets': [ 1922 { 1923 'target_name': 'remoting_unittests_apk', 1924 'type': 'none', 1925 'dependencies': [ 1926 'remoting_unittests', 1927 ], 1928 'variables': { 1929 'test_suite_name': 'remoting_unittests', 1930 'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)remoting_unittests<(SHARED_LIB_SUFFIX)', 1931 }, 1932 'includes': [ '../build/apk_test.gypi' ], 1933 }, 1934 ], 1935 }], # 'OS=="android" and gtest_target_type=="shared_library"' 1936 1937 # The host installation is generated only if WiX is available. If 1938 # component build is used the produced installation will not work due to 1939 # missing DLLs. We build it anyway to make sure the GYP scripts are executed 1940 # by the bots. 1941 ['OS == "win" and wix_exists == "True" and sas_dll_exists == "True"', { 1942 'targets': [ 1943 { 1944 'target_name': 'remoting_host_installation', 1945 'type': 'none', 1946 'dependencies': [ 1947 'remoting_me2me_host_archive', 1948 ], 1949 'sources': [ 1950 '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip', 1951 ], 1952 'outputs': [ 1953 '<(PRODUCT_DIR)/chromoting.msi', 1954 ], 1955 'rules': [ 1956 { 1957 'rule_name': 'zip2msi', 1958 'extension': 'zip', 1959 'inputs': [ 1960 'tools/zip2msi.py', 1961 ], 1962 'outputs': [ 1963 '<(PRODUCT_DIR)/chromoting.msi', 1964 ], 1965 'msvs_cygwin_shell': 0, 1966 'action': [ 1967 'python', 'tools/zip2msi.py', 1968 '--wix_path', '<(wix_path)', 1969 '--intermediate_dir', '<(INTERMEDIATE_DIR)/installation', 1970 '<(RULE_INPUT_PATH)', 1971 '<@(_outputs)', 1972 ], 1973 'message': 'Generating <@(_outputs)', 1974 }, 1975 ], 1976 }, # end of target 'remoting_host_installation' 1977 1978 { 1979 'target_name': 'remoting_me2me_host_archive', 1980 'type': 'none', 1981 'dependencies': [ 1982 'remoting_core', 1983 'remoting_desktop', 1984 'remoting_host_exe', 1985 'remoting_me2me_native_messaging_manifest', 1986 ], 1987 'compiled_inputs': [ 1988 '<(PRODUCT_DIR)/remoting_core.dll', 1989 '<(PRODUCT_DIR)/remoting_desktop.exe', 1990 '<(PRODUCT_DIR)/remoting_host.exe', 1991 ], 1992 'compiled_inputs_dst': [ 1993 'files/remoting_core.dll', 1994 'files/remoting_desktop.exe', 1995 'files/remoting_host.exe', 1996 ], 1997 'conditions': [ 1998 ['buildtype == "Official"', { 1999 'defs': [ 2000 'OFFICIAL_BUILD=1', 2001 ], 2002 }, { # else buildtype != "Official" 2003 'defs': [ 2004 'OFFICIAL_BUILD=0', 2005 ], 2006 }], 2007 ], 2008 'defs': [ 2009 'BRANDING=<(branding)', 2010 'DAEMON_CONTROLLER_CLSID={<(daemon_controller_clsid)}', 2011 'RDP_DESKTOP_SESSION_CLSID={<(rdp_desktop_session_clsid)}', 2012 'VERSION=<(version_full)', 2013 ], 2014 'generated_files': [ 2015 '<@(_compiled_inputs)', 2016 '<(sas_dll_path)/sas.dll', 2017 '<(PRODUCT_DIR)/remoting/com.google.chrome.remote_desktop.json', 2018 'resources/chromoting.ico', 2019 ], 2020 'generated_files_dst': [ 2021 '<@(_compiled_inputs_dst)', 2022 'files/sas.dll', 2023 'files/com.google.chrome.remote_desktop.json', 2024 'files/chromoting.ico', 2025 ], 2026 'zip_path': '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip', 2027 'outputs': [ 2028 '<(_zip_path)', 2029 ], 2030 'actions': [ 2031 { 2032 'action_name': 'Zip installer files for signing', 2033 'temp_dir': '<(INTERMEDIATE_DIR)/installation', 2034 'source_files': [ 2035 '<@(remoting_host_installer_win_files)', 2036 ], 2037 'inputs': [ 2038 '<@(_compiled_inputs)', 2039 '<(sas_dll_path)/sas.dll', 2040 '<@(_source_files)', 2041 'host/installer/build-installer-archive.py', 2042 'resources/chromoting.ico', 2043 ], 2044 'outputs': [ 2045 '<(_zip_path)', 2046 ], 2047 'action': [ 2048 'python', 2049 'host/installer/build-installer-archive.py', 2050 '<(_temp_dir)', 2051 '<(_zip_path)', 2052 '--source-file-roots', 2053 '<@(remoting_host_installer_win_roots)', 2054 '--source-files', 2055 '<@(_source_files)', 2056 '--generated-files', 2057 '<@(_generated_files)', 2058 '--generated-files-dst', 2059 '<@(_generated_files_dst)', 2060 '--defs', 2061 '<@(_defs)', 2062 ], 2063 }, 2064 ], # actions 2065 }, # end of target 'remoting_me2me_host_archive' 2066 ], # end of 'targets' 2067 }], # '<(wix_path) != ""' 2068 2069 ], # end of 'conditions' 2070 2071 'targets': [ 2072 { 2073 'target_name': 'remoting_breakpad', 2074 'type': 'static_library', 2075 'variables': { 'enable_wexit_time_destructors': 1, }, 2076 'dependencies': [ 2077 '../base/base.gyp:base', 2078 ], 2079 'sources': [ 2080 'base/breakpad.h', 2081 'base/breakpad_linux.cc', 2082 'base/breakpad_mac.mm', 2083 'base/breakpad_win.cc', 2084 ], 2085 'conditions': [ 2086 ['OS=="mac"', { 2087 'dependencies': [ 2088 '../breakpad/breakpad.gyp:breakpad', 2089 ], 2090 }], 2091 ['OS=="win"', { 2092 'dependencies': [ 2093 '../breakpad/breakpad.gyp:breakpad_handler', 2094 ], 2095 }], 2096 ], 2097 }, # end of target 'remoting_breakpad' 2098 2099 { 2100 'target_name': 'remoting_client_plugin', 2101 'type': 'static_library', 2102 'variables': { 'enable_wexit_time_destructors': 1, }, 2103 'defines': [ 2104 'HAVE_STDINT_H', # Required by on2_integer.h 2105 ], 2106 'dependencies': [ 2107 'remoting_base', 2108 'remoting_client', 2109 'remoting_jingle_glue', 2110 '../net/net.gyp:net', 2111 '../ppapi/ppapi.gyp:ppapi_cpp_objects', 2112 '../third_party/webrtc/modules/modules.gyp:desktop_capture', 2113 '../ui/events/events.gyp:dom4_keycode_converter', 2114 ], 2115 'sources': [ 2116 'client/plugin/chromoting_instance.cc', 2117 'client/plugin/chromoting_instance.h', 2118 'client/plugin/normalizing_input_filter.cc', 2119 'client/plugin/delegating_signal_strategy.cc', 2120 'client/plugin/delegating_signal_strategy.h', 2121 'client/plugin/normalizing_input_filter.h', 2122 'client/plugin/normalizing_input_filter_cros.cc', 2123 'client/plugin/normalizing_input_filter_mac.cc', 2124 'client/plugin/pepper_audio_player.cc', 2125 'client/plugin/pepper_audio_player.h', 2126 'client/plugin/pepper_entrypoints.cc', 2127 'client/plugin/pepper_entrypoints.h', 2128 'client/plugin/pepper_input_handler.cc', 2129 'client/plugin/pepper_input_handler.h', 2130 'client/plugin/pepper_network_manager.cc', 2131 'client/plugin/pepper_network_manager.h', 2132 'client/plugin/pepper_packet_socket_factory.cc', 2133 'client/plugin/pepper_packet_socket_factory.h', 2134 'client/plugin/pepper_plugin_thread_delegate.cc', 2135 'client/plugin/pepper_plugin_thread_delegate.h', 2136 'client/plugin/pepper_port_allocator.cc', 2137 'client/plugin/pepper_port_allocator.h', 2138 'client/plugin/pepper_token_fetcher.cc', 2139 'client/plugin/pepper_token_fetcher.h', 2140 'client/plugin/pepper_util.cc', 2141 'client/plugin/pepper_util.h', 2142 'client/plugin/pepper_view.cc', 2143 'client/plugin/pepper_view.h', 2144 ], 2145 'conditions' : [ 2146 [ '(OS!="linux" or chromeos==0)', { 2147 'sources!': [ 2148 'client/plugin/normalizing_input_filter_cros.cc', 2149 ], 2150 }], 2151 [ 'OS=="android"', { 2152 'sources/': [ 2153 ['exclude', '^client/plugin/'], 2154 ], 2155 }], 2156 ], 2157 }, # end of target 'remoting_client_plugin' 2158 { 2159 'target_name': 'remoting_host_event_logger', 2160 'type': 'static_library', 2161 'variables': { 'enable_wexit_time_destructors': 1, }, 2162 'dependencies': [ 2163 'remoting_base', 2164 ], 2165 'sources': [ 2166 'host/host_event_logger.h', 2167 'host/host_event_logger_posix.cc', 2168 'host/host_event_logger_win.cc', 2169 ], 2170 'conditions': [ 2171 ['OS=="win"', { 2172 'dependencies': [ 2173 'remoting_host_messages', 2174 ], 2175 'output_dir': '<(SHARED_INTERMEDIATE_DIR)/remoting/host', 2176 'sources': [ 2177 '<(_output_dir)/remoting_host_messages.mc', 2178 ], 2179 'include_dirs': [ 2180 '<(_output_dir)', 2181 ], 2182 'direct_dependent_settings': { 2183 'include_dirs': [ 2184 '<(_output_dir)', 2185 ], 2186 }, 2187 'rules': [ 2188 # Rule to run the message compiler. 2189 { 2190 'rule_name': 'message_compiler', 2191 'extension': 'mc', 2192 'inputs': [ ], 2193 'outputs': [ 2194 '<(_output_dir)/remoting_host_messages.h', 2195 '<(_output_dir)/remoting_host_messages.rc', 2196 ], 2197 'msvs_cygwin_shell': 0, 2198 'action': [ 2199 'mc.exe', 2200 '-h', '<(_output_dir)', 2201 '-r', '<(_output_dir)/.', 2202 '-u', 2203 '<(RULE_INPUT_PATH)', 2204 ], 2205 'process_outputs_as_sources': 1, 2206 'message': 'Running message compiler on <(RULE_INPUT_PATH)', 2207 }, 2208 ], 2209 }], 2210 ], # end of 'conditions' 2211 }, # end of target 'remoting_host_event_logger' 2212 2213 { 2214 'target_name': 'remoting_webapp', 2215 'type': 'none', 2216 'variables': { 2217 'remoting_webapp_patch_files': [ 2218 'webapp/appsv2.patch', 2219 ], 2220 'remoting_webapp_apps_v2_js_files': [ 2221 'webapp/background.js', 2222 ], 2223 }, 2224 'dependencies': [ 2225 'remoting_resources', 2226 'remoting_host_plugin', 2227 ], 2228 'locale_files': [ 2229 '<@(remoting_webapp_locale_files)', 2230 ], 2231 'conditions': [ 2232 ['enable_remoting_host==1', { 2233 'locale_files': [ 2234 '<@(remoting_locale_files)', 2235 ], 2236 'variables': { 2237 'plugin_path': '<(PRODUCT_DIR)/<(host_plugin_prefix)remoting_host_plugin.<(host_plugin_extension)', 2238 }, 2239 }, { 2240 'variables': { 2241 'plugin_path': '', 2242 }, 2243 'dependencies!': [ 2244 'remoting_host_plugin', 2245 ], 2246 }], 2247 ], 2248 'actions': [ 2249 { 2250 'action_name': 'Build Remoting WebApp', 2251 'output_dir': '<(PRODUCT_DIR)/remoting/remoting.webapp', 2252 'zip_path': '<(PRODUCT_DIR)/remoting-webapp.zip', 2253 'inputs': [ 2254 'webapp/build-webapp.py', 2255 '<(chrome_version_path)', 2256 '<(remoting_version_path)', 2257 '<@(remoting_webapp_files)', 2258 '<@(remoting_webapp_js_files)', 2259 '<@(_locale_files)', 2260 ], 2261 'conditions': [ 2262 ['enable_remoting_host==1', { 2263 'inputs': [ 2264 '<(plugin_path)', 2265 ], 2266 }], 2267 ], 2268 'outputs': [ 2269 '<(_output_dir)', 2270 '<(_zip_path)', 2271 ], 2272 'action': [ 2273 'python', 'webapp/build-webapp.py', 2274 '<(buildtype)', 2275 '<(version_full)', 2276 '<(host_plugin_mime_type)', 2277 '<(_output_dir)', 2278 '<(_zip_path)', 2279 '<(plugin_path)', 2280 '<@(remoting_webapp_files)', 2281 '<@(remoting_webapp_js_files)', 2282 '--locales', 2283 '<@(_locale_files)', 2284 ], 2285 'msvs_cygwin_shell': 0, 2286 }, 2287 ], 2288 'target_conditions': [ 2289 # We cannot currently build the appsv2 version of WebApp on Windows as 2290 # there isn't a version of the "patch" tool available on windows. We 2291 # should remove this condition when we remove the reliance on patch. 2292 2293 # We define this in a 'target_conditions' section because 'plugin_path' 2294 # is defined in a 'conditions' section so its value is not available 2295 # when gyp processes the 'actions' in a 'conditions" section. 2296 ['OS != "win"', { 2297 'actions': [ 2298 { 2299 'action_name': 'Build Remoting WebApp V2', 2300 'output_dir': '<(PRODUCT_DIR)/remoting/remoting.webapp.v2', 2301 'zip_path': '<(PRODUCT_DIR)/remoting-webapp.v2.zip', 2302 'inputs': [ 2303 'webapp/build-webapp.py', 2304 '<(chrome_version_path)', 2305 '<(remoting_version_path)', 2306 '<@(remoting_webapp_apps_v2_js_files)', 2307 '<@(remoting_webapp_files)', 2308 '<@(remoting_webapp_js_files)', 2309 '<@(remoting_webapp_locale_files)', 2310 '<@(remoting_webapp_patch_files)', 2311 ], 2312 'conditions': [ 2313 ['enable_remoting_host==1', { 2314 'inputs': [ 2315 '<(plugin_path)', 2316 ], 2317 }], 2318 ], 2319 'outputs': [ 2320 '<(_output_dir)', 2321 '<(_zip_path)', 2322 ], 2323 'action': [ 2324 'python', 'webapp/build-webapp.py', 2325 '<(buildtype)', 2326 '<(version_full)', 2327 '<(host_plugin_mime_type)', 2328 '<(_output_dir)', 2329 '<(_zip_path)', 2330 '<(plugin_path)', 2331 '<@(remoting_webapp_apps_v2_js_files)', 2332 '<@(remoting_webapp_files)', 2333 '<@(remoting_webapp_js_files)', 2334 '--locales', 2335 '<@(remoting_webapp_locale_files)', 2336 '--patches', 2337 '<@(remoting_webapp_patch_files)', 2338 ], 2339 'msvs_cygwin_shell': 0, 2340 }, 2341 ], 2342 }], 2343 ], 2344 }, # end of target 'remoting_webapp' 2345 2346 # Generates 'me2me_native_messaging_manifest.json' to be included in the 2347 # installation. 2348 { 2349 'target_name': 'remoting_me2me_native_messaging_manifest', 2350 'type': 'none', 2351 'dependencies': [ 2352 'remoting_resources', 2353 ], 2354 'variables': { 2355 'input': 'host/setup/me2me_native_messaging_manifest.json', 2356 'output': '<(PRODUCT_DIR)/remoting/com.google.chrome.remote_desktop.json', 2357 }, 2358 'target_conditions': [ 2359 ['OS == "win" or OS == "mac" or OS == "linux"', { 2360 'conditions': [ 2361 [ 'OS == "win"', { 2362 'variables': { 2363 'me2me_native_messaging_host_path': 'remoting_host.exe', 2364 }, 2365 }], [ 'OS == "mac"', { 2366 'variables': { 2367 'me2me_native_messaging_host_path': '/Library/PrivilegedHelperTools/org.chromium.chromoting.me2me_host.app/Contents/MacOS/native_messaging_host', 2368 }, 2369 }], ['OS == "linux"', { 2370 'variables': { 2371 'me2me_native_messaging_host_path': '/opt/google/chrome-remote-desktop/native-messaging-host', 2372 }, 2373 }], ['OS != "linux" and OS != "mac" and OS != "win"', { 2374 'variables': { 2375 'me2me_native_messaging_host_path': '/opt/google/chrome-remote-desktop/native-messaging-host', 2376 }, 2377 }], 2378 ], # conditions 2379 'actions': [ 2380 { 2381 'action_name': 'generate_manifest', 2382 'inputs': [ 2383 '<(remoting_localize_path)', 2384 '<(input)', 2385 ], 2386 'outputs': [ 2387 '<(output)', 2388 ], 2389 'action': [ 2390 'python', 2391 '<(remoting_localize_path)', 2392 '--define', 'ME2ME_NATIVE_MESSAGING_HOST_PATH=<(me2me_native_messaging_host_path)', 2393 '--locale_dir', '<(webapp_locale_dir)', 2394 '--template', '<(input)', 2395 '--locale_output', 2396 '<(output)', 2397 '--encoding', 'utf-8', 2398 'en', 2399 ], 2400 }, 2401 ], # actions 2402 }, 2403 ], 2404 ], # target_conditions 2405 }, # end of target 'remoting_me2me_native_messaging_manifest' 2406 { 2407 'target_name': 'remoting_resources', 2408 'type': 'none', 2409 'variables': { 2410 'grit_out_dir': '<(SHARED_INTERMEDIATE_DIR)', 2411 'grit_resource_ids': 'resources/resource_ids', 2412 'sources': [ 2413 'base/resources_unittest.cc', 2414 'host/continue_window_mac.mm', 2415 'host/disconnect_window_mac.mm', 2416 'host/installer/mac/uninstaller/remoting_uninstaller-InfoPlist.strings.jinja2', 2417 'host/mac/me2me_preference_pane-InfoPlist.strings.jinja2', 2418 'host/plugin/host_plugin-InfoPlist.strings.jinja2', 2419 'host/win/core.rc.jinja2', 2420 'host/win/host_messages.mc.jinja2', 2421 'host/win/version.rc.jinja2', 2422 'webapp/background.js', 2423 'webapp/butter_bar.js', 2424 'webapp/client_screen.js', 2425 'webapp/error.js', 2426 'webapp/host_list.js', 2427 'webapp/host_setup_dialog.js', 2428 'webapp/host_table_entry.js', 2429 'webapp/main.html', 2430 'webapp/manifest.json', 2431 'webapp/paired_client_manager.js', 2432 'webapp/remoting.js', 2433 ], 2434 }, 2435 'actions': [ 2436 { 2437 'action_name': 'verify_resources', 2438 'inputs': [ 2439 'resources/remoting_strings.grd', 2440 'tools/verify_resources.py', 2441 '<@(sources)' 2442 ], 2443 'outputs': [ 2444 '<(PRODUCT_DIR)/remoting_resources_verified.stamp', 2445 ], 2446 'action': [ 2447 'python', 2448 'tools/verify_resources.py', 2449 '-t', '<(PRODUCT_DIR)/remoting_resources_verified.stamp', 2450 '-r', 'resources/remoting_strings.grd', 2451 '<@(sources)', 2452 ], 2453 }, 2454 { 2455 'action_name': 'remoting_strings', 2456 'variables': { 2457 'grit_grd_file': 'resources/remoting_strings.grd', 2458 }, 2459 'includes': [ '../build/grit_action.gypi' ], 2460 }, 2461 { 2462 'action_name': 'copy_locales', 2463 'variables': { 2464 'copy_output_dir%': '<(PRODUCT_DIR)', 2465 }, 2466 'inputs': [ 2467 'tools/build/remoting_copy_locales.py', 2468 '<!@pymod_do_main(remoting_copy_locales -i -p <(OS) -g <(grit_out_dir) <(remoting_locales))' 2469 ], 2470 'outputs': [ 2471 '<!@pymod_do_main(remoting_copy_locales -o -p <(OS) -x <(copy_output_dir) <(remoting_locales))' 2472 ], 2473 'action': [ 2474 'python', 2475 'tools/build/remoting_copy_locales.py', 2476 '-p', '<(OS)', 2477 '-g', '<(grit_out_dir)', 2478 '-x', '<(copy_output_dir)/.', 2479 '<@(remoting_locales)', 2480 ], 2481 # Without this, the /. in the -x command above fails, but only in VS 2482 # builds (because VS puts the command in to a batch file and then 2483 # the normalization and substitution of "...\Release\" cause the 2484 # trailing " to be escaped. 2485 'msvs_cygwin_shell': 1, 2486 } 2487 ], 2488 'includes': [ '../build/grit_target.gypi' ], 2489 }, # end of target 'remoting_resources' 2490 2491 { 2492 'target_name': 'remoting_base', 2493 'type': 'static_library', 2494 'variables': { 'enable_wexit_time_destructors': 1, }, 2495 'dependencies': [ 2496 '../base/base.gyp:base', 2497 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations', 2498 '../ui/gfx/gfx.gyp:gfx', 2499 '../ui/ui.gyp:ui', 2500 '../net/net.gyp:net', 2501 '../third_party/libvpx/libvpx.gyp:libvpx', 2502 '../third_party/libyuv/libyuv.gyp:libyuv', 2503 '../third_party/opus/opus.gyp:opus', 2504 '../third_party/protobuf/protobuf.gyp:protobuf_lite', 2505 '../media/media.gyp:media', 2506 '../media/media.gyp:shared_memory_support', 2507 'remoting_jingle_glue', 2508 'remoting_resources', 2509 'proto/chromotocol.gyp:chromotocol_proto_lib', 2510 '../third_party/webrtc/modules/modules.gyp:desktop_capture', 2511 ], 2512 'export_dependent_settings': [ 2513 '../base/base.gyp:base', 2514 '../net/net.gyp:net', 2515 '../third_party/protobuf/protobuf.gyp:protobuf_lite', 2516 'proto/chromotocol.gyp:chromotocol_proto_lib', 2517 ], 2518 # This target needs a hard dependency because dependent targets 2519 # depend on chromotocol_proto_lib for headers. 2520 'hard_dependency': 1, 2521 'sources': [ 2522 'base/auth_token_util.cc', 2523 'base/auth_token_util.h', 2524 'base/auto_thread.cc', 2525 'base/auto_thread.h', 2526 'base/auto_thread_task_runner.cc', 2527 'base/auto_thread_task_runner.h', 2528 'base/capabilities.cc', 2529 'base/capabilities.h', 2530 'base/compound_buffer.cc', 2531 'base/compound_buffer.h', 2532 'base/constants.cc', 2533 'base/constants.h', 2534 'base/plugin_thread_task_runner.cc', 2535 'base/plugin_thread_task_runner.h', 2536 'base/rate_counter.cc', 2537 'base/rate_counter.h', 2538 'base/resources.h', 2539 'base/resources_linux.cc', 2540 'base/resources_mac.cc', 2541 'base/resources_win.cc', 2542 'base/rsa_key_pair.cc', 2543 'base/rsa_key_pair.h', 2544 'base/running_average.cc', 2545 'base/running_average.h', 2546 'base/scoped_sc_handle_win.h', 2547 'base/socket_reader.cc', 2548 'base/socket_reader.h', 2549 'base/typed_buffer.h', 2550 'base/url_request_context.cc', 2551 'base/url_request_context.h', 2552 'base/util.cc', 2553 'base/util.h', 2554 'base/vlog_net_log.cc', 2555 'base/vlog_net_log.h', 2556 'codec/audio_decoder.cc', 2557 'codec/audio_decoder.h', 2558 'codec/audio_decoder_opus.cc', 2559 'codec/audio_decoder_opus.h', 2560 'codec/audio_decoder_verbatim.cc', 2561 'codec/audio_decoder_verbatim.h', 2562 'codec/audio_encoder.h', 2563 'codec/audio_encoder_opus.cc', 2564 'codec/audio_encoder_opus.h', 2565 'codec/audio_encoder_verbatim.cc', 2566 'codec/audio_encoder_verbatim.h', 2567 'codec/scoped_vpx_codec.cc', 2568 'codec/scoped_vpx_codec.h', 2569 'codec/video_decoder.h', 2570 'codec/video_decoder_verbatim.cc', 2571 'codec/video_decoder_verbatim.h', 2572 'codec/video_decoder_vpx.cc', 2573 'codec/video_decoder_vpx.h', 2574 'codec/video_encoder.h', 2575 'codec/video_encoder_verbatim.cc', 2576 'codec/video_encoder_verbatim.h', 2577 'codec/video_encoder_vpx.cc', 2578 'codec/video_encoder_vpx.h', 2579 ], 2580 }, # end of target 'remoting_base' 2581 2582 { 2583 'target_name': 'remoting_host_logging', 2584 'type': 'static_library', 2585 'variables': { 'enable_wexit_time_destructors': 1, }, 2586 'dependencies': [ 2587 '../base/base.gyp:base', 2588 ], 2589 'sources': [ 2590 'host/branding.cc', 2591 'host/branding.h', 2592 'host/logging.h', 2593 'host/logging_posix.cc', 2594 'host/logging_win.cc', 2595 ], 2596 }, # end of target 'remoting_host_logging' 2597 2598 { 2599 'target_name': 'remoting_client', 2600 'type': 'static_library', 2601 'variables': { 'enable_wexit_time_destructors': 1, }, 2602 'dependencies': [ 2603 'remoting_base', 2604 'remoting_jingle_glue', 2605 'remoting_protocol', 2606 '../third_party/libyuv/libyuv.gyp:libyuv', 2607 '../third_party/webrtc/modules/modules.gyp:desktop_capture', 2608 ], 2609 'sources': [ 2610 'client/audio_decode_scheduler.cc', 2611 'client/audio_decode_scheduler.h', 2612 'client/audio_player.cc', 2613 'client/audio_player.h', 2614 'client/chromoting_client.cc', 2615 'client/chromoting_client.h', 2616 'client/chromoting_stats.cc', 2617 'client/chromoting_stats.h', 2618 'client/client_config.cc', 2619 'client/client_config.h', 2620 'client/client_context.cc', 2621 'client/client_context.h', 2622 'client/client_user_interface.h', 2623 'client/frame_consumer.h', 2624 'client/frame_consumer_proxy.cc', 2625 'client/frame_consumer_proxy.h', 2626 'client/frame_producer.h', 2627 'client/key_event_mapper.cc', 2628 'client/key_event_mapper.h', 2629 'client/rectangle_update_decoder.cc', 2630 'client/rectangle_update_decoder.h', 2631 ], 2632 }, # end of target 'remoting_client' 2633 2634 { 2635 'target_name': 'remoting_jingle_glue', 2636 'type': 'static_library', 2637 'variables': { 'enable_wexit_time_destructors': 1, }, 2638 'dependencies': [ 2639 '../base/base.gyp:base', 2640 '../jingle/jingle.gyp:jingle_glue', 2641 '../jingle/jingle.gyp:notifier', 2642 '../third_party/libjingle/libjingle.gyp:libjingle', 2643 ], 2644 'export_dependent_settings': [ 2645 '../third_party/libjingle/libjingle.gyp:libjingle', 2646 ], 2647 'sources': [ 2648 'jingle_glue/chromium_port_allocator.cc', 2649 'jingle_glue/chromium_port_allocator.h', 2650 'jingle_glue/chromium_socket_factory.cc', 2651 'jingle_glue/chromium_socket_factory.h', 2652 'jingle_glue/iq_sender.cc', 2653 'jingle_glue/iq_sender.h', 2654 'jingle_glue/jingle_info_request.cc', 2655 'jingle_glue/jingle_info_request.h', 2656 'jingle_glue/network_settings.h', 2657 'jingle_glue/signal_strategy.h', 2658 'jingle_glue/xmpp_signal_strategy.cc', 2659 'jingle_glue/xmpp_signal_strategy.h', 2660 ], 2661 }, # end of target 'remoting_jingle_glue' 2662 2663 { 2664 'target_name': 'remoting_protocol', 2665 'type': 'static_library', 2666 'variables': { 'enable_wexit_time_destructors': 1, }, 2667 'dependencies': [ 2668 'remoting_base', 2669 'remoting_jingle_glue', 2670 '../crypto/crypto.gyp:crypto', 2671 '../jingle/jingle.gyp:jingle_glue', 2672 '../net/net.gyp:net', 2673 ], 2674 'export_dependent_settings': [ 2675 'remoting_jingle_glue', 2676 ], 2677 'sources': [ 2678 'protocol/audio_reader.cc', 2679 'protocol/audio_reader.h', 2680 'protocol/audio_stub.h', 2681 'protocol/audio_writer.cc', 2682 'protocol/audio_writer.h', 2683 'protocol/auth_util.cc', 2684 'protocol/auth_util.h', 2685 'protocol/authentication_method.cc', 2686 'protocol/authentication_method.h', 2687 'protocol/authenticator.cc', 2688 'protocol/authenticator.h', 2689 'protocol/buffered_socket_writer.cc', 2690 'protocol/buffered_socket_writer.h', 2691 'protocol/channel_authenticator.h', 2692 'protocol/channel_dispatcher_base.cc', 2693 'protocol/channel_dispatcher_base.h', 2694 'protocol/channel_multiplexer.cc', 2695 'protocol/channel_multiplexer.h', 2696 'protocol/client_control_dispatcher.cc', 2697 'protocol/client_control_dispatcher.h', 2698 'protocol/client_event_dispatcher.cc', 2699 'protocol/client_event_dispatcher.h', 2700 'protocol/client_stub.h', 2701 'protocol/clipboard_echo_filter.cc', 2702 'protocol/clipboard_echo_filter.h', 2703 'protocol/clipboard_filter.cc', 2704 'protocol/clipboard_filter.h', 2705 'protocol/clipboard_stub.h', 2706 'protocol/clipboard_thread_proxy.cc', 2707 'protocol/clipboard_thread_proxy.h', 2708 'protocol/connection_to_client.cc', 2709 'protocol/connection_to_client.h', 2710 'protocol/connection_to_host.cc', 2711 'protocol/connection_to_host.h', 2712 'protocol/content_description.cc', 2713 'protocol/content_description.h', 2714 'protocol/errors.h', 2715 'protocol/host_control_dispatcher.cc', 2716 'protocol/host_control_dispatcher.h', 2717 'protocol/host_event_dispatcher.cc', 2718 'protocol/host_event_dispatcher.h', 2719 'protocol/host_stub.h', 2720 'protocol/input_event_tracker.cc', 2721 'protocol/input_event_tracker.h', 2722 'protocol/input_filter.cc', 2723 'protocol/input_filter.h', 2724 'protocol/input_stub.h', 2725 'protocol/it2me_host_authenticator_factory.cc', 2726 'protocol/it2me_host_authenticator_factory.h', 2727 'protocol/jingle_messages.cc', 2728 'protocol/jingle_messages.h', 2729 'protocol/jingle_session.cc', 2730 'protocol/jingle_session.h', 2731 'protocol/jingle_session_manager.cc', 2732 'protocol/jingle_session_manager.h', 2733 'protocol/libjingle_transport_factory.cc', 2734 'protocol/libjingle_transport_factory.h', 2735 'protocol/me2me_host_authenticator_factory.cc', 2736 'protocol/me2me_host_authenticator_factory.h', 2737 'protocol/message_decoder.cc', 2738 'protocol/message_decoder.h', 2739 'protocol/message_reader.cc', 2740 'protocol/message_reader.h', 2741 'protocol/mouse_input_filter.cc', 2742 'protocol/mouse_input_filter.h', 2743 'protocol/name_value_map.h', 2744 'protocol/negotiating_authenticator_base.cc', 2745 'protocol/negotiating_authenticator_base.h', 2746 'protocol/negotiating_client_authenticator.cc', 2747 'protocol/negotiating_client_authenticator.h', 2748 'protocol/negotiating_host_authenticator.cc', 2749 'protocol/negotiating_host_authenticator.h', 2750 'protocol/pairing_authenticator_base.cc', 2751 'protocol/pairing_authenticator_base.h', 2752 'protocol/pairing_client_authenticator.cc', 2753 'protocol/pairing_client_authenticator.h', 2754 'protocol/pairing_host_authenticator.cc', 2755 'protocol/pairing_host_authenticator.h', 2756 'protocol/pairing_registry.cc', 2757 'protocol/pairing_registry.h', 2758 'protocol/protobuf_video_reader.cc', 2759 'protocol/protobuf_video_reader.h', 2760 'protocol/protobuf_video_writer.cc', 2761 'protocol/protobuf_video_writer.h', 2762 'protocol/session.h', 2763 'protocol/session_config.cc', 2764 'protocol/session_config.h', 2765 'protocol/session_manager.h', 2766 'protocol/ssl_hmac_channel_authenticator.cc', 2767 'protocol/ssl_hmac_channel_authenticator.h', 2768 'protocol/transport.cc', 2769 'protocol/transport.h', 2770 'protocol/util.cc', 2771 'protocol/util.h', 2772 'protocol/third_party_authenticator_base.cc', 2773 'protocol/third_party_authenticator_base.h', 2774 'protocol/third_party_client_authenticator.cc', 2775 'protocol/third_party_client_authenticator.h', 2776 'protocol/third_party_host_authenticator.cc', 2777 'protocol/third_party_host_authenticator.h', 2778 'protocol/v2_authenticator.cc', 2779 'protocol/v2_authenticator.h', 2780 'protocol/video_reader.cc', 2781 'protocol/video_reader.h', 2782 'protocol/video_stub.h', 2783 'protocol/video_writer.cc', 2784 'protocol/video_writer.h', 2785 ], 2786 }, # end of target 'remoting_protocol' 2787 2788 # Remoting unit tests 2789 { 2790 'target_name': 'remoting_unittests', 2791 'type': '<(gtest_target_type)', 2792 'dependencies': [ 2793 '../base/base.gyp:base', 2794 '../base/base.gyp:base_i18n', 2795 '../base/base.gyp:test_support_base', 2796 '../ipc/ipc.gyp:ipc', 2797 '../net/net.gyp:net_test_support', 2798 '../ppapi/ppapi.gyp:ppapi_cpp', 2799 '../testing/gmock.gyp:gmock', 2800 '../testing/gtest.gyp:gtest', 2801 '../ui/gfx/gfx.gyp:gfx', 2802 '../ui/ui.gyp:ui', 2803 'remoting_base', 2804 'remoting_breakpad', 2805 'remoting_client', 2806 'remoting_client_plugin', 2807 'remoting_host', 2808 'remoting_host_event_logger', 2809 'remoting_host_setup_base', 2810 'remoting_it2me_host_static', 2811 'remoting_jingle_glue', 2812 'remoting_native_messaging_base', 2813 'remoting_protocol', 2814 'remoting_resources', 2815 '../third_party/webrtc/modules/modules.gyp:desktop_capture', 2816 ], 2817 'defines': [ 2818 'VERSION=<(version_full)', 2819 ], 2820 'include_dirs': [ 2821 '../testing/gmock/include', 2822 ], 2823 'sources': [ 2824 '../chrome/test/base/run_all_remoting_unittests.cc', 2825 'base/auth_token_util_unittest.cc', 2826 'base/auto_thread_task_runner_unittest.cc', 2827 'base/auto_thread_unittest.cc', 2828 'base/breakpad_win_unittest.cc', 2829 'base/capabilities_unittest.cc', 2830 'base/compound_buffer_unittest.cc', 2831 'base/rate_counter_unittest.cc', 2832 'base/resources_unittest.cc', 2833 'base/rsa_key_pair_unittest.cc', 2834 'base/running_average_unittest.cc', 2835 'base/test_rsa_key_pair.h', 2836 'base/typed_buffer_unittest.cc', 2837 'base/util_unittest.cc', 2838 'client/audio_player_unittest.cc', 2839 'client/key_event_mapper_unittest.cc', 2840 'client/plugin/normalizing_input_filter_cros_unittest.cc', 2841 'client/plugin/normalizing_input_filter_mac_unittest.cc', 2842 'codec/audio_encoder_opus_unittest.cc', 2843 'codec/codec_test.cc', 2844 'codec/codec_test.h', 2845 'codec/video_decoder_vpx_unittest.cc', 2846 'codec/video_encoder_verbatim_unittest.cc', 2847 'codec/video_encoder_vpx_unittest.cc', 2848 'host/audio_silence_detector_unittest.cc', 2849 'host/branding.cc', 2850 'host/branding.h', 2851 'host/capture_scheduler_unittest.cc', 2852 'host/chromoting_host_context_unittest.cc', 2853 'host/chromoting_host_unittest.cc', 2854 'host/client_session_unittest.cc', 2855 'host/config_file_watcher_unittest.cc', 2856 'host/daemon_process.cc', 2857 'host/daemon_process.h', 2858 'host/daemon_process_unittest.cc', 2859 'host/desktop_process.cc', 2860 'host/desktop_process.h', 2861 'host/desktop_process_unittest.cc', 2862 'host/desktop_session.cc', 2863 'host/desktop_session.h', 2864 'host/desktop_shape_tracker_unittest.cc', 2865 'host/desktop_session_agent.cc', 2866 'host/desktop_session_agent.h', 2867 'host/heartbeat_sender_unittest.cc', 2868 'host/host_status_sender_unittest.cc', 2869 'host/host_change_notification_listener_unittest.cc', 2870 'host/host_mock_objects.cc', 2871 'host/host_mock_objects.h', 2872 'host/host_status_monitor_fake.h', 2873 'host/ipc_desktop_environment_unittest.cc', 2874 'host/it2me/it2me_native_messaging_host_unittest.cc', 2875 'host/json_host_config_unittest.cc', 2876 'host/linux/x_server_clipboard_unittest.cc', 2877 'host/local_input_monitor_unittest.cc', 2878 'host/log_to_server_unittest.cc', 2879 'host/native_messaging/native_messaging_reader_unittest.cc', 2880 'host/native_messaging/native_messaging_writer_unittest.cc', 2881 'host/pairing_registry_delegate_linux_unittest.cc', 2882 'host/pairing_registry_delegate_win_unittest.cc', 2883 'host/pin_hash_unittest.cc', 2884 'host/policy_hack/fake_policy_watcher.cc', 2885 'host/policy_hack/fake_policy_watcher.h', 2886 'host/policy_hack/mock_policy_callback.cc', 2887 'host/policy_hack/mock_policy_callback.h', 2888 'host/policy_hack/policy_watcher_unittest.cc', 2889 'host/register_support_host_request_unittest.cc', 2890 'host/remote_input_filter_unittest.cc', 2891 'host/resizing_host_observer_unittest.cc', 2892 'host/screen_capturer_fake.cc', 2893 'host/screen_capturer_fake.h', 2894 'host/screen_resolution_unittest.cc', 2895 'host/server_log_entry_unittest.cc', 2896 'host/setup/me2me_native_messaging_host_unittest.cc', 2897 'host/setup/oauth_helper_unittest.cc', 2898 'host/setup/pin_validator_unittest.cc', 2899 'host/token_validator_factory_impl_unittest.cc', 2900 'host/video_scheduler_unittest.cc', 2901 'host/win/rdp_client_unittest.cc', 2902 'host/win/worker_process_launcher.cc', 2903 'host/win/worker_process_launcher.h', 2904 'host/win/worker_process_launcher_unittest.cc', 2905 'jingle_glue/chromium_socket_factory_unittest.cc', 2906 'jingle_glue/fake_signal_strategy.cc', 2907 'jingle_glue/fake_signal_strategy.h', 2908 'jingle_glue/iq_sender_unittest.cc', 2909 'jingle_glue/mock_objects.cc', 2910 'jingle_glue/mock_objects.h', 2911 'protocol/authenticator_test_base.cc', 2912 'protocol/authenticator_test_base.h', 2913 'protocol/buffered_socket_writer_unittest.cc', 2914 'protocol/channel_multiplexer_unittest.cc', 2915 'protocol/clipboard_echo_filter_unittest.cc', 2916 'protocol/clipboard_filter_unittest.cc', 2917 'protocol/connection_tester.cc', 2918 'protocol/connection_tester.h', 2919 'protocol/connection_to_client_unittest.cc', 2920 'protocol/content_description_unittest.cc', 2921 'protocol/fake_authenticator.cc', 2922 'protocol/fake_authenticator.h', 2923 'protocol/fake_session.cc', 2924 'protocol/fake_session.h', 2925 'protocol/input_event_tracker_unittest.cc', 2926 'protocol/input_filter_unittest.cc', 2927 'protocol/jingle_messages_unittest.cc', 2928 'protocol/jingle_session_unittest.cc', 2929 'protocol/message_decoder_unittest.cc', 2930 'protocol/message_reader_unittest.cc', 2931 'protocol/mouse_input_filter_unittest.cc', 2932 'protocol/negotiating_authenticator_unittest.cc', 2933 'protocol/pairing_registry_unittest.cc', 2934 'protocol/ppapi_module_stub.cc', 2935 'protocol/protocol_mock_objects.cc', 2936 'protocol/protocol_mock_objects.h', 2937 'protocol/ssl_hmac_channel_authenticator_unittest.cc', 2938 'protocol/third_party_authenticator_unittest.cc', 2939 'protocol/v2_authenticator_unittest.cc', 2940 ], 2941 'conditions': [ 2942 [ 'OS=="win"', { 2943 'defines': [ 2944 '_ATL_NO_EXCEPTIONS', 2945 ], 2946 'include_dirs': [ 2947 '../breakpad/src', 2948 ], 2949 'link_settings': { 2950 'libraries': [ 2951 '-lrpcrt4.lib', 2952 '-lwtsapi32.lib', 2953 ], 2954 }, 2955 }], 2956 [ 'OS=="mac" or (OS=="linux" and chromeos==0)', { 2957 # Javascript unittests are disabled on CrOS because they cause 2958 # valgrind and test errors. 2959 # 2960 # Javascript unittests are disabled on Windows because they add a 2961 # dependency on 'common_constants' which (only on Windows) requires 2962 # additional dependencies: 2963 # '../content/content.gyp:content_common', 2964 # 'installer_util', 2965 # These targets are defined in .gypi files that would need to be 2966 # included here: 2967 # '../chrome/chrome_common.gypi', 2968 # '../chrome/chrome_installer.gypi', 2969 # '../chrome/chrome_installer_util.gypi', 2970 # But we can't do that because ninja will complain about multiple 2971 # target definitions. 2972 # TODO(garykac): Move installer_util into a proper .gyp file so that 2973 # it can be included in multiple .gyp files. 2974 'includes': [ 2975 '../chrome/js_unittest_rules.gypi', 2976 ], 2977 'dependencies': [ 2978 '../chrome/common_constants.gyp:common_constants', 2979 '../v8/tools/gyp/v8.gyp:v8', 2980 ], 2981 'sources': [ 2982 '../chrome/test/base/v8_unit_test.cc', 2983 '../chrome/test/base/v8_unit_test.h', 2984 'webapp/browser_globals.gtestjs', 2985 'webapp/all_js_load.gtestjs', 2986 'webapp/format_iq.gtestjs', 2987 '<@(remoting_webapp_js_files)', 2988 ], 2989 }], 2990 ['OS=="android" and gtest_target_type=="shared_library"', { 2991 'dependencies': [ 2992 '../testing/android/native_test.gyp:native_test_native_code', 2993 ], 2994 }], 2995 [ '(OS!="linux" or chromeos==0)', { 2996 'sources!': [ 2997 'client/plugin/normalizing_input_filter_cros_unittest.cc', 2998 ], 2999 }], 3000 ['enable_remoting_host == 0', { 3001 'dependencies!': [ 3002 'remoting_host', 3003 'remoting_host_setup_base', 3004 'remoting_it2me_host_static', 3005 'remoting_native_messaging_base', 3006 ], 3007 'sources/': [ 3008 ['exclude', '^codec/'], 3009 ['exclude', '^host/'], 3010 ['exclude', '^base/resources_unittest\\.cc$'], 3011 ] 3012 }], 3013 ['toolkit_uses_gtk == 1', { 3014 'dependencies': [ 3015 # Needed for the following #include chain: 3016 # base/run_all_unittests.cc 3017 # ../base/test_suite.h 3018 # gtk/gtk.h 3019 '../build/linux/system.gyp:gtk', 3020 '../build/linux/system.gyp:ssl', 3021 ], 3022 'conditions': [ 3023 [ 'linux_use_tcmalloc==1', { 3024 'dependencies': [ 3025 '../base/allocator/allocator.gyp:allocator', 3026 ], 3027 }, 3028 ], 3029 ], 3030 }], # end of 'toolkit_uses_gtk == 1' 3031 ], # end of 'conditions' 3032 }, # end of target 'remoting_unittests' 3033 ], # end of targets 3034 } 3035