OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 { | 5 { |
6 'variables': { | 6 'variables': { |
7 'remoting_host_installer_win_roots': [ | 7 'remoting_host_installer_win_roots': [ |
8 'host/installer/win/', | 8 'host/installer/win/', |
9 ], | 9 ], |
10 'remoting_host_installer_win_files': [ | 10 'remoting_host_installer_win_files': [ |
11 'host/installer/win/chromoting.wxs', | 11 'host/installer/win/chromoting.wxs', |
12 'host/installer/win/parameters.json', | 12 'host/installer/win/parameters.json', |
13 ], | 13 ], |
14 }, | 14 }, # end of 'variables' |
| 15 |
| 16 'targets': [ |
| 17 { |
| 18 'target_name': 'remoting_breakpad_tester', |
| 19 'type': 'executable', |
| 20 'variables': { 'enable_wexit_time_destructors': 1, }, |
| 21 'dependencies': [ |
| 22 '../base/base.gyp:base', |
| 23 'remoting_host', |
| 24 ], |
| 25 'sources': [ |
| 26 'tools/breakpad_tester_win.cc', |
| 27 ], |
| 28 }, # end of target 'remoting_breakpad_tester' |
| 29 { |
| 30 'target_name': 'remoting_lib_idl', |
| 31 'type': 'static_library', |
| 32 'sources': [ |
| 33 'host/win/chromoting_lib_idl.templ', |
| 34 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.h', |
| 35 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.idl', |
| 36 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib_i.c', |
| 37 ], |
| 38 # This target exports a hard dependency because dependent targets may |
| 39 # include chromoting_lib.h, a generated header. |
| 40 'hard_dependency': 1, |
| 41 'msvs_settings': { |
| 42 'VCMIDLTool': { |
| 43 'OutputDirectory': '<(SHARED_INTERMEDIATE_DIR)/remoting/host', |
| 44 }, |
| 45 }, |
| 46 'direct_dependent_settings': { |
| 47 'include_dirs': [ |
| 48 '<(SHARED_INTERMEDIATE_DIR)', |
| 49 ], |
| 50 }, |
| 51 'rules': [ |
| 52 { |
| 53 'rule_name': 'generate_idl', |
| 54 'extension': 'templ', |
| 55 'outputs': [ |
| 56 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.idl', |
| 57 ], |
| 58 'action': [ |
| 59 'python', '<(version_py_path)', |
| 60 '-e', "DAEMON_CONTROLLER_CLSID='<(daemon_controller_clsid)'", |
| 61 '-e', "RDP_DESKTOP_SESSION_CLSID='<(rdp_desktop_session_clsid)'", |
| 62 '<(RULE_INPUT_PATH)', |
| 63 '<@(_outputs)', |
| 64 ], |
| 65 'process_outputs_as_sources': 1, |
| 66 'message': 'Generating <@(_outputs)', |
| 67 }, |
| 68 ], |
| 69 }, # end of target 'remoting_lib_idl' |
| 70 |
| 71 # remoting_lib_ps builds the proxy/stub code generated by MIDL (see |
| 72 # remoting_lib_idl). |
| 73 { |
| 74 'target_name': 'remoting_lib_ps', |
| 75 'type': 'static_library', |
| 76 'defines': [ |
| 77 # Prepend 'Ps' to the MIDL-generated routines. This includes |
| 78 # DllGetClassObject, DllCanUnloadNow, DllRegisterServer, |
| 79 # DllUnregisterServer, and DllMain. |
| 80 'ENTRY_PREFIX=Ps', |
| 81 'REGISTER_PROXY_DLL', |
| 82 ], |
| 83 'dependencies': [ |
| 84 'remoting_lib_idl', |
| 85 ], |
| 86 'sources': [ |
| 87 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.dlldata.c', |
| 88 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib_p.c', |
| 89 ], |
| 90 }, # end of target 'remoting_lib_ps' |
| 91 |
| 92 # Regenerates 'chromoting_lib.rc' (used to embed 'chromoting_lib.tlb' |
| 93 # into remoting_core.dll's resources) every time |
| 94 # 'chromoting_lib_idl.templ' changes. Making remoting_core depend on |
| 95 # both this and 'remoting_lib_idl' targets ensures that the resorces |
| 96 # are rebuilt every time the type library is updated. GYP alone is |
| 97 # not smart enough to figure out this dependency on its own. |
| 98 { |
| 99 'target_name': 'remoting_lib_rc', |
| 100 'type': 'none', |
| 101 'sources': [ |
| 102 'host/win/chromoting_lib_idl.templ', |
| 103 ], |
| 104 'hard_dependency': 1, |
| 105 'direct_dependent_settings': { |
| 106 'include_dirs': [ |
| 107 '<(SHARED_INTERMEDIATE_DIR)', |
| 108 ], |
| 109 }, |
| 110 'rules': [ |
| 111 { |
| 112 'rule_name': 'generate_rc', |
| 113 'extension': 'templ', |
| 114 'outputs': [ |
| 115 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.rc', |
| 116 ], |
| 117 'action': [ |
| 118 'echo 1 typelib "remoting/host/chromoting_lib.tlb" > <@(_outputs)', |
| 119 ], |
| 120 'message': 'Generating <@(_outputs)', |
| 121 }, |
| 122 ], |
| 123 }, # end of target 'remoting_lib_rc' |
| 124 # The only difference between |remoting_console.exe| and |
| 125 # |remoting_host.exe| is that the former is a console application. |
| 126 # |remoting_console.exe| is used for debugging purposes. |
| 127 { |
| 128 'target_name': 'remoting_console', |
| 129 'type': 'executable', |
| 130 'variables': { 'enable_wexit_time_destructors': 1, }, |
| 131 'defines': [ |
| 132 'BINARY=BINARY_HOST_ME2ME', |
| 133 ], |
| 134 'dependencies': [ |
| 135 'remoting_core', |
| 136 'remoting_windows_resources', |
| 137 ], |
| 138 'sources': [ |
| 139 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', |
| 140 'host/win/entry_point.cc', |
| 141 ], |
| 142 'msvs_settings': { |
| 143 'VCManifestTool': { |
| 144 'AdditionalManifestFiles': [ |
| 145 'host/win/dpi_aware.manifest', |
| 146 ], |
| 147 }, |
| 148 'VCLinkerTool': { |
| 149 'EntryPointSymbol': 'HostEntryPoint', |
| 150 'IgnoreAllDefaultLibraries': 'true', |
| 151 'SubSystem': '1', # /SUBSYSTEM:CONSOLE |
| 152 }, |
| 153 }, |
| 154 }, # end of target 'remoting_console' |
| 155 { |
| 156 'target_name': 'remoting_core', |
| 157 'type': 'shared_library', |
| 158 'variables': { 'enable_wexit_time_destructors': 1, }, |
| 159 'defines' : [ |
| 160 '_ATL_APARTMENT_THREADED', |
| 161 '_ATL_CSTRING_EXPLICIT_CONSTRUCTORS', |
| 162 '_ATL_NO_AUTOMATIC_NAMESPACE', |
| 163 '_ATL_NO_EXCEPTIONS', |
| 164 'BINARY=BINARY_CORE', |
| 165 'DAEMON_CONTROLLER_CLSID="{<(daemon_controller_clsid)}"', |
| 166 'RDP_DESKTOP_SESSION_CLSID="{<(rdp_desktop_session_clsid)}"', |
| 167 'HOST_IMPLEMENTATION', |
| 168 'ISOLATION_AWARE_ENABLED=1', |
| 169 'STRICT', |
| 170 'VERSION=<(version_full)', |
| 171 ], |
| 172 'dependencies': [ |
| 173 '../base/base.gyp:base', |
| 174 '../base/base.gyp:base_static', |
| 175 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic
_annotations', |
| 176 '../ipc/ipc.gyp:ipc', |
| 177 '../net/net.gyp:net', |
| 178 '../third_party/webrtc/modules/modules.gyp:desktop_capture', |
| 179 'remoting_base', |
| 180 'remoting_breakpad', |
| 181 'remoting_host', |
| 182 'remoting_host_setup_base', |
| 183 'remoting_it2me_host_static', |
| 184 'remoting_lib_idl', |
| 185 'remoting_lib_ps', |
| 186 'remoting_lib_rc', |
| 187 'remoting_me2me_host_static', |
| 188 'remoting_native_messaging_base', |
| 189 'remoting_protocol', |
| 190 'remoting_windows_resources', |
| 191 ], |
| 192 'sources': [ |
| 193 '<(SHARED_INTERMEDIATE_DIR)/remoting/core.rc', |
| 194 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.rc', |
| 195 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/remoting_host_messages.rc', |
| 196 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', |
| 197 'host/desktop_process_main.cc', |
| 198 'host/host_main.cc', |
| 199 'host/host_main.h', |
| 200 'host/it2me/it2me_native_messaging_host_main.cc', |
| 201 'host/it2me/it2me_native_messaging_host_main.h', |
| 202 'host/setup/me2me_native_messaging_host_main.cc', |
| 203 'host/setup/me2me_native_messaging_host_main.h', |
| 204 'host/verify_config_window_win.cc', |
| 205 'host/verify_config_window_win.h', |
| 206 'host/win/chromoting_module.cc', |
| 207 'host/win/chromoting_module.h', |
| 208 'host/win/core.cc', |
| 209 'host/win/core_resource.h', |
| 210 'host/win/elevated_controller.cc', |
| 211 'host/win/elevated_controller.h', |
| 212 'host/win/host_service.cc', |
| 213 'host/win/host_service.h', |
| 214 'host/win/omaha.cc', |
| 215 'host/win/omaha.h', |
| 216 'host/win/rdp_desktop_session.cc', |
| 217 'host/win/rdp_desktop_session.h', |
| 218 'host/win/unprivileged_process_delegate.cc', |
| 219 'host/win/unprivileged_process_delegate.h', |
| 220 'host/win/worker_process_launcher.cc', |
| 221 'host/win/worker_process_launcher.h', |
| 222 'host/win/wts_session_process_delegate.cc', |
| 223 'host/win/wts_session_process_delegate.h', |
| 224 'host/worker_process_ipc_delegate.h', |
| 225 ], |
| 226 'msvs_settings': { |
| 227 'VCManifestTool': { |
| 228 'EmbedManifest': 'true', |
| 229 'AdditionalManifestFiles': [ |
| 230 'host/win/common-controls.manifest', |
| 231 ], |
| 232 }, |
| 233 'VCLinkerTool': { |
| 234 'AdditionalDependencies': [ |
| 235 'comctl32.lib', |
| 236 'rpcns4.lib', |
| 237 'rpcrt4.lib', |
| 238 'uuid.lib', |
| 239 'wtsapi32.lib', |
| 240 ], |
| 241 'AdditionalOptions': [ |
| 242 # Export the proxy/stub entry points. Note that the generated |
| 243 # routines have 'Ps' prefix to avoid conflicts with our own |
| 244 # DllMain(). |
| 245 '/EXPORT:DllGetClassObject=PsDllGetClassObject,PRIVATE', |
| 246 '/EXPORT:DllCanUnloadNow=PsDllCanUnloadNow,PRIVATE', |
| 247 '/EXPORT:DllRegisterServer=PsDllRegisterServer,PRIVATE', |
| 248 '/EXPORT:DllUnregisterServer=PsDllUnregisterServer,PRIVATE', |
| 249 ], |
| 250 }, |
| 251 'conditions': [ |
| 252 ['clang==1', { |
| 253 # atlapp.h contains a global "using namespace WTL;". |
| 254 # TODO: Remove once remoting/host/verify_config_window_win.h no |
| 255 # longer depends on atlapp.h, http://crbug.com/5027 |
| 256 'VCCLCompilerTool': { |
| 257 'AdditionalOptions': ['-Wno-header-hygiene'], |
| 258 }, |
| 259 }], |
| 260 ], |
| 261 }, |
| 262 }, # end of target 'remoting_core' |
| 263 { |
| 264 'target_name': 'remoting_desktop', |
| 265 'type': 'executable', |
| 266 'variables': { 'enable_wexit_time_destructors': 1, }, |
| 267 'defines': [ |
| 268 'BINARY=BINARY_DESKTOP', |
| 269 ], |
| 270 'dependencies': [ |
| 271 'remoting_core', |
| 272 'remoting_windows_resources', |
| 273 ], |
| 274 'sources': [ |
| 275 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', |
| 276 'host/win/entry_point.cc', |
| 277 ], |
| 278 'msvs_settings': { |
| 279 'VCManifestTool': { |
| 280 'AdditionalManifestFiles': [ |
| 281 'host/win/dpi_aware.manifest', |
| 282 ], |
| 283 }, |
| 284 'VCLinkerTool': { |
| 285 'EnableUAC': 'true', |
| 286 # Add 'level="requireAdministrator" uiAccess="true"' to |
| 287 # the manifest only for the official builds because it requires |
| 288 # the binary to be signed to work. |
| 289 'conditions': [ |
| 290 ['buildtype == "Official"', { |
| 291 'UACExecutionLevel': 2, |
| 292 'UACUIAccess': 'true', |
| 293 }], |
| 294 ], |
| 295 'EntryPointSymbol': 'HostEntryPoint', |
| 296 'IgnoreAllDefaultLibraries': 'true', |
| 297 'SubSystem': '2', # /SUBSYSTEM:WINDOWS |
| 298 }, |
| 299 }, |
| 300 }, # end of target 'remoting_desktop' |
| 301 { |
| 302 'target_name': 'remoting_me2me_host', |
| 303 'product_name': 'remoting_host', |
| 304 'type': 'executable', |
| 305 'variables': { 'enable_wexit_time_destructors': 1, }, |
| 306 'defines': [ |
| 307 'BINARY=BINARY_HOST_ME2ME', |
| 308 ], |
| 309 'dependencies': [ |
| 310 'remoting_core', |
| 311 'remoting_windows_resources', |
| 312 ], |
| 313 'sources': [ |
| 314 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', |
| 315 'host/win/entry_point.cc', |
| 316 ], |
| 317 'msvs_settings': { |
| 318 'VCManifestTool': { |
| 319 'AdditionalManifestFiles': [ |
| 320 'host/win/dpi_aware.manifest', |
| 321 ], |
| 322 }, |
| 323 'VCLinkerTool': { |
| 324 'EntryPointSymbol': 'HostEntryPoint', |
| 325 'IgnoreAllDefaultLibraries': 'true', |
| 326 'OutputFile': '$(OutDir)\\remoting_host.exe', |
| 327 'SubSystem': '2', # /SUBSYSTEM:WINDOWS |
| 328 }, |
| 329 }, |
| 330 }, # end of target 'remoting_me2me_host' |
| 331 { |
| 332 'target_name': 'remoting_me2me_native_messaging_host', |
| 333 'type': 'executable', |
| 334 'product_name': 'remoting_native_messaging_host', |
| 335 'variables': { 'enable_wexit_time_destructors': 1, }, |
| 336 'defines' : [ |
| 337 'BINARY=BINARY_NATIVE_MESSAGING_HOST', |
| 338 ], |
| 339 'dependencies': [ |
| 340 'remoting_core', |
| 341 'remoting_windows_resources', |
| 342 ], |
| 343 'sources': [ |
| 344 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', |
| 345 'host/setup/me2me_native_messaging_host_entry_point.cc', |
| 346 ], |
| 347 'msvs_settings': { |
| 348 'VCLinkerTool': { |
| 349 'IgnoreAllDefaultLibraries': 'true', |
| 350 'SubSystem': '1', # /SUBSYSTEM:CONSOLE |
| 351 }, |
| 352 }, |
| 353 }, # end of target 'remoting_me2me_native_messaging_host' |
| 354 { |
| 355 'target_name': 'remoting_it2me_native_messaging_host', |
| 356 'type': 'executable', |
| 357 'product_name': 'remote_assistance_host', |
| 358 'variables': { 'enable_wexit_time_destructors': 1, }, |
| 359 'dependencies': [ |
| 360 'remoting_core', |
| 361 'remoting_windows_resources', |
| 362 ], |
| 363 'sources': [ |
| 364 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', |
| 365 'host/it2me/it2me_native_messaging_host_entry_point.cc', |
| 366 ], |
| 367 'defines' : [ |
| 368 'BINARY=BINARY_REMOTE_ASSISTANCE_HOST', |
| 369 ], |
| 370 'msvs_settings': { |
| 371 'VCManifestTool': { |
| 372 'EmbedManifest': 'true', |
| 373 'AdditionalManifestFiles': [ |
| 374 'host/win/common-controls.manifest', |
| 375 'host/win/dpi_aware.manifest', |
| 376 ], |
| 377 }, |
| 378 'VCLinkerTool': { |
| 379 'IgnoreAllDefaultLibraries': 'true', |
| 380 'SubSystem': '1', # /SUBSYSTEM:CONSOLE |
| 381 'AdditionalDependencies': [ |
| 382 'comctl32.lib', |
| 383 ], |
| 384 }, |
| 385 }, |
| 386 }, # end of target 'remoting_it2me_native_messaging_host' |
| 387 { |
| 388 'target_name': 'remoting_host_messages', |
| 389 'type': 'none', |
| 390 'dependencies': [ |
| 391 'remoting_resources', |
| 392 ], |
| 393 'hard_dependency': 1, |
| 394 'direct_dependent_settings': { |
| 395 'include_dirs': [ |
| 396 '<(SHARED_INTERMEDIATE_DIR)', |
| 397 ], |
| 398 }, |
| 399 'sources': [ |
| 400 'host/win/host_messages.mc.jinja2' |
| 401 ], |
| 402 'rules': [ |
| 403 { |
| 404 'rule_name': 'localize', |
| 405 'extension': 'jinja2', |
| 406 'outputs': [ |
| 407 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/remoting_host_messages.mc'
, |
| 408 ], |
| 409 'action': [ |
| 410 'python', '<(remoting_localize_path)', |
| 411 '--locale_dir', '<(webapp_locale_dir)', |
| 412 '--template', '<(RULE_INPUT_PATH)', |
| 413 '--output', '<@(_outputs)', |
| 414 '--encoding', 'utf-16', |
| 415 '<@(remoting_locales)', |
| 416 ], |
| 417 'message': 'Localizing the event log messages' |
| 418 }, |
| 419 ], |
| 420 }, # end of target 'remoting_host_messages' |
| 421 |
| 422 # Generates localized resources for the Windows binaries. |
| 423 # The substitution strings are taken from: |
| 424 # - build/util/LASTCHANGE - the last source code revision. There is |
| 425 # no explicit dependency on this file to avoid rebuilding the host |
| 426 # after unrelated changes. |
| 427 # - chrome/VERSION - the major, build & patch versions. |
| 428 # - remoting/VERSION - the chromoting patch version (and overrides |
| 429 # for chrome/VERSION). |
| 430 # - translated webapp strings |
| 431 { |
| 432 'target_name': 'remoting_windows_resources', |
| 433 'type': 'none', |
| 434 'dependencies': [ |
| 435 'remoting_resources', |
| 436 ], |
| 437 'hard_dependency': 1, |
| 438 'direct_dependent_settings': { |
| 439 'include_dirs': [ |
| 440 '<(SHARED_INTERMEDIATE_DIR)', |
| 441 ], |
| 442 }, |
| 443 'sources': [ |
| 444 'host/win/core.rc.jinja2', |
| 445 'host/win/version.rc.jinja2', |
| 446 ], |
| 447 'rules': [ |
| 448 { |
| 449 'rule_name': 'version', |
| 450 'extension': 'jinja2', |
| 451 'variables': { |
| 452 'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE', |
| 453 }, |
| 454 'inputs': [ |
| 455 '<(chrome_version_path)', |
| 456 '<(remoting_version_path)', |
| 457 ], |
| 458 'outputs': [ |
| 459 '<(SHARED_INTERMEDIATE_DIR)/remoting/<(RULE_INPUT_ROOT)', |
| 460 ], |
| 461 'action': [ |
| 462 'python', '<(remoting_localize_path)', |
| 463 '--variables', '<(chrome_version_path)', |
| 464 # |remoting_version_path| must be after |chrome_version_path| |
| 465 # because it can contain overrides for the version numbers. |
| 466 '--variables', '<(remoting_version_path)', |
| 467 '--variables', '<(lastchange_path)', |
| 468 '--locale_dir', '<(webapp_locale_dir)', |
| 469 '--template', '<(RULE_INPUT_PATH)', |
| 470 '--output', '<@(_outputs)', |
| 471 '--encoding', 'utf-16', |
| 472 '<@(remoting_locales)', |
| 473 ], |
| 474 'message': 'Localizing the version information' |
| 475 }, |
| 476 ], |
| 477 }, # end of target 'remoting_windows_resources' |
| 478 ], # end of 'targets' |
15 | 479 |
16 'conditions': [ | 480 'conditions': [ |
17 ['OS=="win"', { | |
18 'targets': [ | |
19 { | |
20 'target_name': 'remoting_breakpad_tester', | |
21 'type': 'executable', | |
22 'variables': { 'enable_wexit_time_destructors': 1, }, | |
23 'dependencies': [ | |
24 '../base/base.gyp:base', | |
25 'remoting_host', | |
26 ], | |
27 'sources': [ | |
28 'tools/breakpad_tester_win.cc', | |
29 ], | |
30 }, # end of target 'remoting_breakpad_tester' | |
31 { | |
32 'target_name': 'remoting_lib_idl', | |
33 'type': 'static_library', | |
34 'sources': [ | |
35 'host/win/chromoting_lib_idl.templ', | |
36 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.h', | |
37 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.idl', | |
38 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib_i.c', | |
39 ], | |
40 # This target exports a hard dependency because dependent targets may | |
41 # include chromoting_lib.h, a generated header. | |
42 'hard_dependency': 1, | |
43 'msvs_settings': { | |
44 'VCMIDLTool': { | |
45 'OutputDirectory': '<(SHARED_INTERMEDIATE_DIR)/remoting/host', | |
46 }, | |
47 }, | |
48 'direct_dependent_settings': { | |
49 'include_dirs': [ | |
50 '<(SHARED_INTERMEDIATE_DIR)', | |
51 ], | |
52 }, | |
53 'rules': [ | |
54 { | |
55 'rule_name': 'generate_idl', | |
56 'extension': 'templ', | |
57 'outputs': [ | |
58 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.idl', | |
59 ], | |
60 'action': [ | |
61 'python', '<(version_py_path)', | |
62 '-e', "DAEMON_CONTROLLER_CLSID='<(daemon_controller_clsid)'", | |
63 '-e', "RDP_DESKTOP_SESSION_CLSID='<(rdp_desktop_session_clsid)'"
, | |
64 '<(RULE_INPUT_PATH)', | |
65 '<@(_outputs)', | |
66 ], | |
67 'process_outputs_as_sources': 1, | |
68 'message': 'Generating <@(_outputs)', | |
69 }, | |
70 ], | |
71 }, # end of target 'remoting_lib_idl' | |
72 | |
73 # remoting_lib_ps builds the proxy/stub code generated by MIDL (see | |
74 # remoting_lib_idl). | |
75 { | |
76 'target_name': 'remoting_lib_ps', | |
77 'type': 'static_library', | |
78 'defines': [ | |
79 # Prepend 'Ps' to the MIDL-generated routines. This includes | |
80 # DllGetClassObject, DllCanUnloadNow, DllRegisterServer, | |
81 # DllUnregisterServer, and DllMain. | |
82 'ENTRY_PREFIX=Ps', | |
83 'REGISTER_PROXY_DLL', | |
84 ], | |
85 'dependencies': [ | |
86 'remoting_lib_idl', | |
87 ], | |
88 'sources': [ | |
89 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.dlldata.c', | |
90 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib_p.c', | |
91 ], | |
92 }, # end of target 'remoting_lib_ps' | |
93 | |
94 # Regenerates 'chromoting_lib.rc' (used to embed 'chromoting_lib.tlb' | |
95 # into remoting_core.dll's resources) every time | |
96 # 'chromoting_lib_idl.templ' changes. Making remoting_core depend on | |
97 # both this and 'remoting_lib_idl' targets ensures that the resorces | |
98 # are rebuilt every time the type library is updated. GYP alone is | |
99 # not smart enough to figure out this dependency on its own. | |
100 { | |
101 'target_name': 'remoting_lib_rc', | |
102 'type': 'none', | |
103 'sources': [ | |
104 'host/win/chromoting_lib_idl.templ', | |
105 ], | |
106 'hard_dependency': 1, | |
107 'direct_dependent_settings': { | |
108 'include_dirs': [ | |
109 '<(SHARED_INTERMEDIATE_DIR)', | |
110 ], | |
111 }, | |
112 'rules': [ | |
113 { | |
114 'rule_name': 'generate_rc', | |
115 'extension': 'templ', | |
116 'outputs': [ | |
117 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.rc', | |
118 ], | |
119 'action': [ | |
120 'echo 1 typelib "remoting/host/chromoting_lib.tlb" > <@(_outputs
)', | |
121 ], | |
122 'message': 'Generating <@(_outputs)', | |
123 }, | |
124 ], | |
125 }, # end of target 'remoting_lib_rc' | |
126 # The only difference between |remoting_console.exe| and | |
127 # |remoting_host.exe| is that the former is a console application. | |
128 # |remoting_console.exe| is used for debugging purposes. | |
129 { | |
130 'target_name': 'remoting_console', | |
131 'type': 'executable', | |
132 'variables': { 'enable_wexit_time_destructors': 1, }, | |
133 'defines': [ | |
134 'BINARY=BINARY_HOST_ME2ME', | |
135 ], | |
136 'dependencies': [ | |
137 'remoting_core', | |
138 'remoting_windows_resources', | |
139 ], | |
140 'sources': [ | |
141 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', | |
142 'host/win/entry_point.cc', | |
143 ], | |
144 'msvs_settings': { | |
145 'VCManifestTool': { | |
146 'AdditionalManifestFiles': [ | |
147 'host/win/dpi_aware.manifest', | |
148 ], | |
149 }, | |
150 'VCLinkerTool': { | |
151 'EntryPointSymbol': 'HostEntryPoint', | |
152 'IgnoreAllDefaultLibraries': 'true', | |
153 'SubSystem': '1', # /SUBSYSTEM:CONSOLE | |
154 }, | |
155 }, | |
156 }, # end of target 'remoting_console' | |
157 { | |
158 'target_name': 'remoting_core', | |
159 'type': 'shared_library', | |
160 'variables': { 'enable_wexit_time_destructors': 1, }, | |
161 'defines' : [ | |
162 '_ATL_APARTMENT_THREADED', | |
163 '_ATL_CSTRING_EXPLICIT_CONSTRUCTORS', | |
164 '_ATL_NO_AUTOMATIC_NAMESPACE', | |
165 '_ATL_NO_EXCEPTIONS', | |
166 'BINARY=BINARY_CORE', | |
167 'DAEMON_CONTROLLER_CLSID="{<(daemon_controller_clsid)}"', | |
168 'RDP_DESKTOP_SESSION_CLSID="{<(rdp_desktop_session_clsid)}"', | |
169 'HOST_IMPLEMENTATION', | |
170 'ISOLATION_AWARE_ENABLED=1', | |
171 'STRICT', | |
172 'VERSION=<(version_full)', | |
173 ], | |
174 'dependencies': [ | |
175 '../base/base.gyp:base', | |
176 '../base/base.gyp:base_static', | |
177 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dyn
amic_annotations', | |
178 '../ipc/ipc.gyp:ipc', | |
179 '../net/net.gyp:net', | |
180 '../third_party/webrtc/modules/modules.gyp:desktop_capture', | |
181 'remoting_base', | |
182 'remoting_breakpad', | |
183 'remoting_host', | |
184 'remoting_host_setup_base', | |
185 'remoting_it2me_host_static', | |
186 'remoting_lib_idl', | |
187 'remoting_lib_ps', | |
188 'remoting_lib_rc', | |
189 'remoting_me2me_host_static', | |
190 'remoting_native_messaging_base', | |
191 'remoting_protocol', | |
192 'remoting_windows_resources', | |
193 ], | |
194 'sources': [ | |
195 '<(SHARED_INTERMEDIATE_DIR)/remoting/core.rc', | |
196 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/chromoting_lib.rc', | |
197 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/remoting_host_messages.rc'
, | |
198 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', | |
199 'host/desktop_process_main.cc', | |
200 'host/host_main.cc', | |
201 'host/host_main.h', | |
202 'host/it2me/it2me_native_messaging_host_main.cc', | |
203 'host/it2me/it2me_native_messaging_host_main.h', | |
204 'host/setup/me2me_native_messaging_host_main.cc', | |
205 'host/setup/me2me_native_messaging_host_main.h', | |
206 'host/verify_config_window_win.cc', | |
207 'host/verify_config_window_win.h', | |
208 'host/win/chromoting_module.cc', | |
209 'host/win/chromoting_module.h', | |
210 'host/win/core.cc', | |
211 'host/win/core_resource.h', | |
212 'host/win/elevated_controller.cc', | |
213 'host/win/elevated_controller.h', | |
214 'host/win/host_service.cc', | |
215 'host/win/host_service.h', | |
216 'host/win/omaha.cc', | |
217 'host/win/omaha.h', | |
218 'host/win/rdp_desktop_session.cc', | |
219 'host/win/rdp_desktop_session.h', | |
220 'host/win/unprivileged_process_delegate.cc', | |
221 'host/win/unprivileged_process_delegate.h', | |
222 'host/win/worker_process_launcher.cc', | |
223 'host/win/worker_process_launcher.h', | |
224 'host/win/wts_session_process_delegate.cc', | |
225 'host/win/wts_session_process_delegate.h', | |
226 'host/worker_process_ipc_delegate.h', | |
227 ], | |
228 'msvs_settings': { | |
229 'VCManifestTool': { | |
230 'EmbedManifest': 'true', | |
231 'AdditionalManifestFiles': [ | |
232 'host/win/common-controls.manifest', | |
233 ], | |
234 }, | |
235 'VCLinkerTool': { | |
236 'AdditionalDependencies': [ | |
237 'comctl32.lib', | |
238 'rpcns4.lib', | |
239 'rpcrt4.lib', | |
240 'uuid.lib', | |
241 'wtsapi32.lib', | |
242 ], | |
243 'AdditionalOptions': [ | |
244 # Export the proxy/stub entry points. Note that the generated | |
245 # routines have 'Ps' prefix to avoid conflicts with our own | |
246 # DllMain(). | |
247 '/EXPORT:DllGetClassObject=PsDllGetClassObject,PRIVATE', | |
248 '/EXPORT:DllCanUnloadNow=PsDllCanUnloadNow,PRIVATE', | |
249 '/EXPORT:DllRegisterServer=PsDllRegisterServer,PRIVATE', | |
250 '/EXPORT:DllUnregisterServer=PsDllUnregisterServer,PRIVATE', | |
251 ], | |
252 }, | |
253 'conditions': [ | |
254 ['clang==1', { | |
255 # atlapp.h contains a global "using namespace WTL;". | |
256 # TODO: Remove once remoting/host/verify_config_window_win.h no | |
257 # longer depends on atlapp.h, http://crbug.com/5027 | |
258 'VCCLCompilerTool': { | |
259 'AdditionalOptions': ['-Wno-header-hygiene'], | |
260 }, | |
261 }], | |
262 ], | |
263 }, | |
264 }, # end of target 'remoting_core' | |
265 { | |
266 'target_name': 'remoting_desktop', | |
267 'type': 'executable', | |
268 'variables': { 'enable_wexit_time_destructors': 1, }, | |
269 'defines': [ | |
270 'BINARY=BINARY_DESKTOP', | |
271 ], | |
272 'dependencies': [ | |
273 'remoting_core', | |
274 'remoting_windows_resources', | |
275 ], | |
276 'sources': [ | |
277 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', | |
278 'host/win/entry_point.cc', | |
279 ], | |
280 'msvs_settings': { | |
281 'VCManifestTool': { | |
282 'AdditionalManifestFiles': [ | |
283 'host/win/dpi_aware.manifest', | |
284 ], | |
285 }, | |
286 'VCLinkerTool': { | |
287 'EnableUAC': 'true', | |
288 # Add 'level="requireAdministrator" uiAccess="true"' to | |
289 # the manifest only for the official builds because it requires | |
290 # the binary to be signed to work. | |
291 'conditions': [ | |
292 ['buildtype == "Official"', { | |
293 'UACExecutionLevel': 2, | |
294 'UACUIAccess': 'true', | |
295 }], | |
296 ], | |
297 'EntryPointSymbol': 'HostEntryPoint', | |
298 'IgnoreAllDefaultLibraries': 'true', | |
299 'SubSystem': '2', # /SUBSYSTEM:WINDOWS | |
300 }, | |
301 }, | |
302 }, # end of target 'remoting_desktop' | |
303 { | |
304 'target_name': 'remoting_me2me_host', | |
305 'product_name': 'remoting_host', | |
306 'type': 'executable', | |
307 'variables': { 'enable_wexit_time_destructors': 1, }, | |
308 'defines': [ | |
309 'BINARY=BINARY_HOST_ME2ME', | |
310 ], | |
311 'dependencies': [ | |
312 'remoting_core', | |
313 'remoting_windows_resources', | |
314 ], | |
315 'sources': [ | |
316 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', | |
317 'host/win/entry_point.cc', | |
318 ], | |
319 'msvs_settings': { | |
320 'VCManifestTool': { | |
321 'AdditionalManifestFiles': [ | |
322 'host/win/dpi_aware.manifest', | |
323 ], | |
324 }, | |
325 'VCLinkerTool': { | |
326 'EntryPointSymbol': 'HostEntryPoint', | |
327 'IgnoreAllDefaultLibraries': 'true', | |
328 'OutputFile': '$(OutDir)\\remoting_host.exe', | |
329 'SubSystem': '2', # /SUBSYSTEM:WINDOWS | |
330 }, | |
331 }, | |
332 }, # end of target 'remoting_me2me_host' | |
333 { | |
334 'target_name': 'remoting_me2me_native_messaging_host', | |
335 'type': 'executable', | |
336 'product_name': 'remoting_native_messaging_host', | |
337 'variables': { 'enable_wexit_time_destructors': 1, }, | |
338 'defines' : [ | |
339 'BINARY=BINARY_NATIVE_MESSAGING_HOST', | |
340 ], | |
341 'dependencies': [ | |
342 'remoting_core', | |
343 'remoting_windows_resources', | |
344 ], | |
345 'sources': [ | |
346 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', | |
347 'host/setup/me2me_native_messaging_host_entry_point.cc', | |
348 ], | |
349 'msvs_settings': { | |
350 'VCLinkerTool': { | |
351 'IgnoreAllDefaultLibraries': 'true', | |
352 'SubSystem': '1', # /SUBSYSTEM:CONSOLE | |
353 }, | |
354 }, | |
355 }, # end of target 'remoting_me2me_native_messaging_host' | |
356 { | |
357 'target_name': 'remoting_it2me_native_messaging_host', | |
358 'type': 'executable', | |
359 'product_name': 'remote_assistance_host', | |
360 'variables': { 'enable_wexit_time_destructors': 1, }, | |
361 'dependencies': [ | |
362 'remoting_core', | |
363 'remoting_windows_resources', | |
364 ], | |
365 'sources': [ | |
366 '<(SHARED_INTERMEDIATE_DIR)/remoting/version.rc', | |
367 'host/it2me/it2me_native_messaging_host_entry_point.cc', | |
368 ], | |
369 'defines' : [ | |
370 'BINARY=BINARY_REMOTE_ASSISTANCE_HOST', | |
371 ], | |
372 'msvs_settings': { | |
373 'VCManifestTool': { | |
374 'EmbedManifest': 'true', | |
375 'AdditionalManifestFiles': [ | |
376 'host/win/common-controls.manifest', | |
377 'host/win/dpi_aware.manifest', | |
378 ], | |
379 }, | |
380 'VCLinkerTool': { | |
381 'IgnoreAllDefaultLibraries': 'true', | |
382 'SubSystem': '1', # /SUBSYSTEM:CONSOLE | |
383 'AdditionalDependencies': [ | |
384 'comctl32.lib', | |
385 ], | |
386 }, | |
387 }, | |
388 }, # end of target 'remoting_it2me_native_messaging_host' | |
389 { | |
390 'target_name': 'remoting_host_messages', | |
391 'type': 'none', | |
392 'dependencies': [ | |
393 'remoting_resources', | |
394 ], | |
395 'hard_dependency': 1, | |
396 'direct_dependent_settings': { | |
397 'include_dirs': [ | |
398 '<(SHARED_INTERMEDIATE_DIR)', | |
399 ], | |
400 }, | |
401 'sources': [ | |
402 'host/win/host_messages.mc.jinja2' | |
403 ], | |
404 'rules': [ | |
405 { | |
406 'rule_name': 'localize', | |
407 'extension': 'jinja2', | |
408 'outputs': [ | |
409 '<(SHARED_INTERMEDIATE_DIR)/remoting/host/remoting_host_messages
.mc', | |
410 ], | |
411 'action': [ | |
412 'python', '<(remoting_localize_path)', | |
413 '--locale_dir', '<(webapp_locale_dir)', | |
414 '--template', '<(RULE_INPUT_PATH)', | |
415 '--output', '<@(_outputs)', | |
416 '--encoding', 'utf-16', | |
417 '<@(remoting_locales)', | |
418 ], | |
419 'message': 'Localizing the event log messages' | |
420 }, | |
421 ], | |
422 }, # end of target 'remoting_host_messages' | |
423 | |
424 # Generates localized resources for the Windows binaries. | |
425 # The substitution strings are taken from: | |
426 # - build/util/LASTCHANGE - the last source code revision. There is | |
427 # no explicit dependency on this file to avoid rebuilding the host | |
428 # after unrelated changes. | |
429 # - chrome/VERSION - the major, build & patch versions. | |
430 # - remoting/VERSION - the chromoting patch version (and overrides | |
431 # for chrome/VERSION). | |
432 # - translated webapp strings | |
433 { | |
434 'target_name': 'remoting_windows_resources', | |
435 'type': 'none', | |
436 'dependencies': [ | |
437 'remoting_resources', | |
438 ], | |
439 'hard_dependency': 1, | |
440 'direct_dependent_settings': { | |
441 'include_dirs': [ | |
442 '<(SHARED_INTERMEDIATE_DIR)', | |
443 ], | |
444 }, | |
445 'sources': [ | |
446 'host/win/core.rc.jinja2', | |
447 'host/win/version.rc.jinja2', | |
448 ], | |
449 'rules': [ | |
450 { | |
451 'rule_name': 'version', | |
452 'extension': 'jinja2', | |
453 'variables': { | |
454 'lastchange_path': '<(DEPTH)/build/util/LASTCHANGE', | |
455 }, | |
456 'inputs': [ | |
457 '<(chrome_version_path)', | |
458 '<(remoting_version_path)', | |
459 ], | |
460 'outputs': [ | |
461 '<(SHARED_INTERMEDIATE_DIR)/remoting/<(RULE_INPUT_ROOT)', | |
462 ], | |
463 'action': [ | |
464 'python', '<(remoting_localize_path)', | |
465 '--variables', '<(chrome_version_path)', | |
466 # |remoting_version_path| must be after |chrome_version_path| | |
467 # because it can contain overrides for the version numbers. | |
468 '--variables', '<(remoting_version_path)', | |
469 '--variables', '<(lastchange_path)', | |
470 '--locale_dir', '<(webapp_locale_dir)', | |
471 '--template', '<(RULE_INPUT_PATH)', | |
472 '--output', '<@(_outputs)', | |
473 '--encoding', 'utf-16', | |
474 '<@(remoting_locales)', | |
475 ], | |
476 'message': 'Localizing the version information' | |
477 }, | |
478 ], | |
479 }, # end of target 'remoting_windows_resources' | |
480 ], # end of 'targets' | |
481 }], # 'OS=="win"' | |
482 | |
483 # The host installation is generated only if WiX is available. If | 481 # The host installation is generated only if WiX is available. If |
484 # component build is used the produced installation will not work due to | 482 # component build is used the produced installation will not work due to |
485 # missing DLLs. We build it anyway to make sure the GYP scripts are executed | 483 # missing DLLs. We build it anyway to make sure the GYP scripts are executed |
486 # by the bots. | 484 # by the bots. |
487 ['OS == "win" and wix_exists == "True" and sas_dll_exists == "True"', { | 485 ['wix_exists == "True" and sas_dll_exists == "True"', { |
488 'targets': [ | 486 'targets': [ |
489 { | 487 { |
490 'target_name': 'remoting_host_installation', | 488 'target_name': 'remoting_host_installation', |
491 'type': 'none', | 489 'type': 'none', |
492 'dependencies': [ | 490 'dependencies': [ |
493 'remoting_me2me_host_archive', | 491 'remoting_me2me_host_archive', |
494 ], | 492 ], |
495 'sources': [ | 493 'sources': [ |
496 '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip', | 494 '<(PRODUCT_DIR)/remoting-me2me-host-<(OS).zip', |
497 ], | 495 ], |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
608 '--source-file-roots', '<@(remoting_host_installer_win_roots)', | 606 '--source-file-roots', '<@(remoting_host_installer_win_roots)', |
609 '--source-files', '<@(_source_files)', | 607 '--source-files', '<@(_source_files)', |
610 '--generated-files', '<@(_generated_files)', | 608 '--generated-files', '<@(_generated_files)', |
611 '--generated-files-dst', '<@(_generated_files_dst)', | 609 '--generated-files-dst', '<@(_generated_files_dst)', |
612 '--defs', '<@(_defs)', | 610 '--defs', '<@(_defs)', |
613 ], | 611 ], |
614 }, | 612 }, |
615 ], # actions | 613 ], # actions |
616 }, # end of target 'remoting_me2me_host_archive' | 614 }, # end of target 'remoting_me2me_host_archive' |
617 ], # end of 'targets' | 615 ], # end of 'targets' |
618 }], # '<(wix_path) != ""' | 616 }, { |
| 617 # Dummy targets for when Wix is not available. |
| 618 'targets': [ |
| 619 { |
| 620 'target_name': 'remoting_host_installation', |
| 621 'type': 'none', |
| 622 }, |
| 623 |
| 624 { |
| 625 'target_name': 'remoting_me2me_host_archive', |
| 626 'type': 'none', |
| 627 }, |
| 628 ], # end of 'targets' |
| 629 }], # 'wix_exists == "True" and sas_dll_exists == "True"' |
619 | 630 |
620 ], # end of 'conditions' | 631 ], # end of 'conditions' |
621 } | 632 } |
OLD | NEW |