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