| 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 import("//build/config/features.gni") | 5 import("//build/config/features.gni") |
| 6 import("//build/config/ui.gni") | 6 import("//build/config/ui.gni") |
| 7 import("//build/config/win/manifest.gni") | 7 import("//build/config/win/manifest.gni") |
| 8 import("//build/util/version.gni") | 8 import("//build/util/version.gni") |
| 9 import("//chrome/version.gni") |
| 9 import("//remoting/remoting_enable.gni") | 10 import("//remoting/remoting_enable.gni") |
| 10 import("//remoting/remoting_locales.gni") | 11 import("//remoting/remoting_locales.gni") |
| 11 import("//remoting/remoting_options.gni") | 12 import("//remoting/remoting_options.gni") |
| 12 import("//remoting/remoting_srcs.gni") | 13 import("//remoting/remoting_srcs.gni") |
| 13 import("//remoting/remoting_version.gni") | 14 import("//remoting/remoting_version.gni") |
| 14 import("//remoting/tools/build/remoting_localize.gni") | 15 import("//remoting/tools/build/remoting_localize.gni") |
| 15 | 16 |
| 17 process_version("remoting_version") { |
| 18 template_file = "//remoting/host/version.h.in" |
| 19 sources = [ |
| 20 branding_path, |
| 21 ] |
| 22 output = "$target_gen_dir/version.h" |
| 23 } |
| 24 |
| 16 if (is_win) { | 25 if (is_win) { |
| 17 import("//remoting/host/predefines_win.gni") | 26 import("//remoting/host/predefines_win.gni") |
| 18 } | 27 } |
| 19 | 28 |
| 20 # Reference this manifest to indicate that a process is per-monitor DPI aware. | 29 # Reference this manifest to indicate that a process is per-monitor DPI aware. |
| 21 dpi_aware_manifest = "//remoting/host/win/dpi_aware.manifest" | 30 dpi_aware_manifest = "//remoting/host/win/dpi_aware.manifest" |
| 22 | 31 |
| 23 # Depending on this target gives a default executable manifest with the addition | 32 # Depending on this target gives a default executable manifest with the addition |
| 24 # of the DPI aware tag. | 33 # of the DPI aware tag. |
| 25 windows_manifest("dpi_aware_exe_manifest") { | 34 windows_manifest("dpi_aware_exe_manifest") { |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 65 args = [ | 74 args = [ |
| 66 "credits", | 75 "credits", |
| 67 rebase_path(about_credits_file, root_build_dir), | 76 rebase_path(about_credits_file, root_build_dir), |
| 68 "--file-template", | 77 "--file-template", |
| 69 rebase_path("installer/credits.tmpl", root_build_dir), | 78 rebase_path("installer/credits.tmpl", root_build_dir), |
| 70 "--entry-template", | 79 "--entry-template", |
| 71 rebase_path("installer/credits_entry.tmpl", root_build_dir), | 80 rebase_path("installer/credits_entry.tmpl", root_build_dir), |
| 72 ] | 81 ] |
| 73 } | 82 } |
| 74 | 83 |
| 75 if (is_mac) { | 84 # This must be a static library instead of a source set because |
| 76 # TODO(GYP) Mac build of remoting host, https://crbug.com/611859 | 85 # remoting_unittests requires that remoting_me2me_host.cc not be pulled in, |
| 77 # If you fix this, also enable in //remoting/remoting_enable.gni | 86 # which in turn depends on remoting_me2me_host_static which isn't part of that |
| 78 # on mac. | 87 # build. |
| 79 group("host") { | 88 # |
| 80 } | 89 # TODO fix this, successful builds should not depend on static libraries |
| 81 group("test_support") { | 90 # stripping code. |
| 82 } | 91 static_library("host") { |
| 83 group("unit_tests") { | 92 sources = rebase_path(remoting_host_srcs_gypi_values.remoting_host_sources, |
| 84 } | 93 ".", |
| 85 } else { | 94 "//remoting") |
| 86 # This must be a static library instead of a source set because | 95 |
| 87 # remoting_unittests requires that remoting_me2me_host.cc not be pulled in, | 96 libs = [] |
| 88 # which in turn depends on remoting_me2me_host_static which isn't part of that | 97 |
| 89 # build. | 98 configs += [ |
| 90 # | 99 "//build/config/compiler:wexit_time_destructors", |
| 91 # TODO fix this, successful builds should not depend on static libraries | 100 "//remoting:version", |
| 92 # stripping code. | 101 ] |
| 93 static_library("host") { | 102 |
| 94 sources = rebase_path(remoting_host_srcs_gypi_values.remoting_host_sources, | 103 defines = [ "WEBRTC_CHROMIUM_BUILD" ] |
| 95 ".", | 104 |
| 96 "//remoting") | 105 deps = [ |
| 97 | 106 "//base:i18n", |
| 98 libs = [] | 107 "//components/policy:policy_component_common", |
| 99 | 108 "//crypto", |
| 109 "//google_apis", |
| 110 "//ipc", |
| 111 "//remoting/base", |
| 112 "//remoting/protocol", |
| 113 "//remoting/resources", |
| 114 "//ui/base", |
| 115 "//ui/events:dom_keycode_converter", |
| 116 "//ui/events/platform", |
| 117 ] |
| 118 |
| 119 if (enable_configuration_policy) { |
| 120 deps += [ "//components/policy:policy" ] |
| 121 } |
| 122 |
| 123 if (is_linux && !is_chromeos) { |
| 124 libs += [ "pam" ] |
| 125 } |
| 126 |
| 127 if (use_x11) { |
| 100 configs += [ | 128 configs += [ |
| 101 "//build/config/compiler:wexit_time_destructors", | 129 "//build/config/linux:x11", |
| 102 "//remoting:version", | 130 "//build/config/linux:xrandr", |
| 103 ] | 131 ] |
| 104 | 132 if (is_desktop_linux) { |
| 105 defines = [ "WEBRTC_CHROMIUM_BUILD" ] | 133 deps += [ "//build/config/linux/gtk2" ] |
| 106 | 134 } |
| 107 deps = [ | 135 } else { |
| 108 "//base:i18n", | 136 sources -= [ |
| 109 "//components/policy:policy_component_common", | 137 "clipboard_x11.cc", |
| 110 "//crypto", | 138 "desktop_resizer_x11.cc", |
| 111 "//google_apis", | 139 "input_injector_x11.cc", |
| 112 "//ipc", | 140 "local_input_monitor_x11.cc", |
| 113 "//remoting/base", | 141 ] |
| 114 "//remoting/protocol", | 142 if (is_linux) { |
| 115 "//remoting/resources", | 143 # These will already be filtered out on non-Linux. |
| 116 "//ui/base", | 144 sources -= [ |
| 117 "//ui/events:dom_keycode_converter", | 145 "linux/unicode_to_keysym.cc", |
| 118 "//ui/events/platform", | 146 "linux/x11_util.cc", |
| 119 ] | 147 "linux/x_server_clipboard.cc", |
| 120 | 148 "linux/x_server_clipboard.h", |
| 121 if (enable_configuration_policy) { | 149 ] |
| 122 deps += [ "//components/policy:policy" ] | 150 } |
| 123 } | 151 } |
| 124 | 152 |
| 125 if (is_linux && !is_chromeos) { | 153 if (!use_ozone) { |
| 126 libs += [ "pam" ] | 154 sources -= [ "desktop_resizer_ozone.cc" ] |
| 127 } | 155 } |
| 128 | 156 |
| 129 if (use_x11) { | 157 if (is_chromeos) { |
| 130 configs += [ | 158 # TODO(GYP): crbug.com/481627. These should only be included |
| 131 "//build/config/linux:x11", | 159 # when enable_me2me_host is true. |
| 132 "//build/config/linux:xrandr", | 160 sources -= [ |
| 133 ] | 161 "me2me_desktop_environment.cc", |
| 134 if (is_desktop_linux) { | 162 "me2me_desktop_environment.h", |
| 135 deps += [ "//build/config/linux/gtk2" ] | 163 ] |
| 136 } | 164 deps += [ |
| 165 "//cc", |
| 166 "//gpu/command_buffer/common", |
| 167 "//ppapi/host", |
| 168 "//skia", |
| 169 "//ui/aura", |
| 170 "//ui/compositor", |
| 171 "//ui/events", |
| 172 "//ui/views", |
| 173 ] |
| 174 |
| 175 if (use_ash) { |
| 176 deps += [ "//ash" ] |
| 177 } |
| 178 |
| 179 if (use_ozone) { |
| 180 deps += [ "//ui/ozone" ] |
| 181 sources -= [ "desktop_resizer_ozone.cc" ] |
| 137 } else { | 182 } else { |
| 138 sources -= [ | 183 sources -= [ |
| 139 "clipboard_x11.cc", | 184 "clipboard_x11.cc", |
| 140 "desktop_resizer_x11.cc", | 185 "desktop_resizer_x11.cc", |
| 141 "input_injector_x11.cc", | 186 "input_injector_chromeos.cc", |
| 187 "input_injector_chromeos.h", |
| 188 "linux/x_server_clipboard.cc", |
| 189 "linux/x_server_clipboard.h", |
| 142 "local_input_monitor_x11.cc", | 190 "local_input_monitor_x11.cc", |
| 143 ] | 191 ] |
| 144 if (is_linux) { | 192 } |
| 145 # These will already be filtered out on non-Linux. | 193 |
| 146 sources -= [ | 194 sources -= [ |
| 147 "linux/unicode_to_keysym.cc", | 195 "continue_window_linux.cc", |
| 148 "linux/x11_util.cc", | 196 "curtain_mode_linux.cc", |
| 149 "linux/x_server_clipboard.cc", | 197 "disconnect_window_linux.cc", |
| 150 "linux/x_server_clipboard.h", | 198 ] |
| 151 ] | 199 } |
| 152 } | 200 |
| 153 } | 201 if (is_mac) { |
| 154 | 202 libs += [ "Accelerate.framework" ] |
| 155 if (!use_ozone) { | 203 |
| 156 sources -= [ "desktop_resizer_ozone.cc" ] | 204 # TODO(nicholss): When we can delete GYP builds, |
| 157 } | 205 # this flag and usage can be removed. |
| 158 | 206 defines += [ "GN_BUILD=1" ] |
| 159 if (is_chromeos) { | 207 deps += [ |
| 160 # TODO(GYP): crbug.com/481627. These should only be included | 208 ":remoting_version", |
| 161 # when enable_me2me_host is true. | 209 "//third_party/google_toolbox_for_mac", |
| 162 sources -= [ | 210 ] |
| 163 "me2me_desktop_environment.cc", | 211 } |
| 164 "me2me_desktop_environment.h", | 212 |
| 165 ] | 213 if (is_win) { |
| 166 deps += [ | 214 deps += [ |
| 167 "//cc", | 215 ":messages", |
| 168 "//gpu/command_buffer/common", | 216 ":remoting_lib_idl", |
| 169 "//ppapi/host", | 217 ] |
| 170 "//skia", | 218 } |
| 171 "//ui/aura", | 219 |
| 172 "//ui/compositor", | 220 if (enable_webrtc) { |
| 173 "//ui/events", | 221 deps += [ "//third_party/webrtc/modules/desktop_capture" ] |
| 174 "//ui/views", | 222 } |
| 175 ] | 223 |
| 176 | 224 if (is_android) { |
| 177 if (use_ash) { | 225 sources -= [ |
| 178 deps += [ "//ash" ] | 226 "single_window_desktop_environment.cc", |
| 179 } | 227 "single_window_desktop_environment.h", |
| 180 | 228 ] |
| 181 if (use_ozone) { | 229 } |
| 182 deps += [ "//ui/ozone" ] | 230 } |
| 183 sources -= [ "desktop_resizer_ozone.cc" ] | 231 |
| 184 } else { | 232 source_set("test_support") { |
| 185 sources -= [ | 233 testonly = true |
| 186 "clipboard_x11.cc", | 234 |
| 187 "desktop_resizer_x11.cc", | 235 sources = [ |
| 188 "input_injector_chromeos.cc", | 236 "fake_desktop_environment.cc", |
| 189 "input_injector_chromeos.h", | 237 "fake_desktop_environment.h", |
| 190 "linux/x_server_clipboard.cc", | 238 "fake_host_extension.cc", |
| 191 "linux/x_server_clipboard.h", | 239 "fake_host_extension.h", |
| 192 "local_input_monitor_x11.cc", | 240 "fake_host_status_monitor.h", |
| 193 ] | 241 "fake_host_status_monitor.h", |
| 194 } | 242 "fake_mouse_cursor_monitor.cc", |
| 195 | 243 "fake_mouse_cursor_monitor.h", |
| 196 sources -= [ | 244 "fake_oauth_token_getter.cc", |
| 197 "continue_window_linux.cc", | 245 "fake_oauth_token_getter.h", |
| 198 "curtain_mode_linux.cc", | 246 "host_mock_objects.cc", |
| 199 "disconnect_window_linux.cc", | 247 "host_mock_objects.h", |
| 200 ] | 248 "security_key/fake_ipc_gnubby_auth_handler.cc", |
| 201 } | 249 "security_key/fake_ipc_gnubby_auth_handler.h", |
| 202 | 250 "security_key/fake_remote_security_key_ipc_client.cc", |
| 203 if (is_mac) { | 251 "security_key/fake_remote_security_key_ipc_client.h", |
| 204 # TODO(GYP) Mac host_bundle_name and prefpane_bundle_name. | 252 "security_key/fake_remote_security_key_ipc_server.cc", |
| 205 # Note if you are looking at this: It really sucks to have to synchronousl
y | 253 "security_key/fake_remote_security_key_ipc_server.h", |
| 206 # call into python twice to get these values. They should instead be | 254 "security_key/fake_remote_security_key_message_reader.cc", |
| 207 # written into a generated header via the process_version template, and we | 255 "security_key/fake_remote_security_key_message_reader.h", |
| 208 # change the source files to include that header rather than rely on these | 256 "security_key/fake_remote_security_key_message_writer.cc", |
| 209 # defines being set in the build. | 257 "security_key/fake_remote_security_key_message_writer.h", |
| 210 #defines += [ | 258 "setup/mock_oauth_client.cc", |
| 211 # "HOST_BUNDLE_NAME=\"$host_bundle_name\"", | 259 "setup/mock_oauth_client.h", |
| 212 # "PREFPANE_BUNDLE_NAME=\"$prefpane_bundle_name\"", | 260 ] |
| 213 #] | 261 |
| 214 | 262 configs += [ "//remoting:version" ] |
| 215 libs += [ | 263 |
| 216 "Accelerate.framework", | 264 deps = [ |
| 217 "libpam.a", | 265 "//remoting/proto", |
| 218 ] | 266 "//testing/gmock", |
| 219 | 267 "//testing/gtest", |
| 220 deps += [ "//third_party/google_toolbox_for_mac" ] | 268 ] |
| 221 } | 269 public_deps = [ |
| 222 | 270 ":host", |
| 223 if (is_win) { | 271 "//third_party/protobuf:protobuf_lite", |
| 224 deps += [ | 272 ] |
| 225 ":messages", | 273 |
| 226 ":remoting_lib_idl", | 274 if (enable_webrtc) { |
| 227 ] | 275 public_deps += [ |
| 228 } | 276 "//third_party/libjingle:libjingle_webrtc", |
| 229 | 277 "//third_party/webrtc/modules/desktop_capture", |
| 230 if (enable_webrtc) { | 278 ] |
| 231 deps += [ "//third_party/webrtc/modules/desktop_capture" ] | 279 } |
| 232 } | 280 } |
| 233 | 281 |
| 234 if (is_android) { | 282 # The host portions of the remoting unit tests. |
| 235 sources -= [ | 283 source_set("unit_tests") { |
| 236 "single_window_desktop_environment.cc", | 284 testonly = true |
| 237 "single_window_desktop_environment.h", | 285 |
| 238 ] | 286 sources = [ |
| 239 } | 287 "audio_pump_unittest.cc", |
| 240 } | 288 "audio_silence_detector_unittest.cc", |
| 241 | 289 "backoff_timer_unittest.cc", |
| 242 source_set("test_support") { | 290 "chromeos/aura_desktop_capturer_unittest.cc", |
| 243 testonly = true | 291 "chromeos/clipboard_aura_unittest.cc", |
| 292 "chromoting_host_context_unittest.cc", |
| 293 "chromoting_host_unittest.cc", |
| 294 "client_session_unittest.cc", |
| 295 "config_file_watcher_unittest.cc", |
| 296 "daemon_process_unittest.cc", |
| 297 "desktop_process_unittest.cc", |
| 298 "gcd_rest_client_unittest.cc", |
| 299 "gcd_state_updater_unittest.cc", |
| 300 "heartbeat_sender_unittest.cc", |
| 301 "host_change_notification_listener_unittest.cc", |
| 302 "host_config_unittest.cc", |
| 303 "host_extension_session_manager_unittest.cc", |
| 304 "host_status_logger_unittest.cc", |
| 305 "ipc_desktop_environment_unittest.cc", |
| 306 "it2me/it2me_confirmation_dialog_proxy_unittest.cc", |
| 307 "it2me/it2me_native_messaging_host_unittest.cc", |
| 308 "linux/audio_pipe_reader_unittest.cc", |
| 309 "linux/certificate_watcher_unittest.cc", |
| 310 "linux/unicode_to_keysym_unittest.cc", |
| 311 "linux/x_server_clipboard_unittest.cc", |
| 312 "local_input_monitor_unittest.cc", |
| 313 "mouse_cursor_monitor_proxy_unittest.cc", |
| 314 "mouse_shape_pump_unittest.cc", |
| 315 "native_messaging/native_messaging_reader_unittest.cc", |
| 316 "native_messaging/native_messaging_writer_unittest.cc", |
| 317 "pairing_registry_delegate_linux_unittest.cc", |
| 318 "pairing_registry_delegate_win_unittest.cc", |
| 319 "pin_hash_unittest.cc", |
| 320 "policy_watcher_unittest.cc", |
| 321 "register_support_host_request_unittest.cc", |
| 322 "remote_input_filter_unittest.cc", |
| 323 "resizing_host_observer_unittest.cc", |
| 324 "resources_unittest.cc", |
| 325 "screen_resolution_unittest.cc", |
| 326 "security_key/gnubby_auth_handler_linux_unittest.cc", |
| 327 "security_key/gnubby_auth_handler_win_unittest.cc", |
| 328 "security_key/gnubby_extension_session_unittest.cc", |
| 329 "security_key/remote_security_key_ipc_client_unittest.cc", |
| 330 "security_key/remote_security_key_ipc_server_unittest.cc", |
| 331 "security_key/remote_security_key_message_handler_unittest.cc", |
| 332 "security_key/remote_security_key_message_reader_impl_unittest.cc", |
| 333 "security_key/remote_security_key_message_writer_impl_unittest.cc", |
| 334 "server_log_entry_host_unittest.cc", |
| 335 "setup/me2me_native_messaging_host_unittest.cc", |
| 336 "setup/oauth_helper_unittest.cc", |
| 337 "setup/pin_validator_unittest.cc", |
| 338 "third_party_auth_config_unittest.cc", |
| 339 "token_validator_factory_impl_unittest.cc", |
| 340 "touch_injector_win_unittest.cc", |
| 341 "win/rdp_client_unittest.cc", |
| 342 "win/worker_process_launcher_unittest.cc", |
| 343 ] |
| 344 |
| 345 if (!use_x11 && is_linux) { |
| 346 sources -= [ "linux/unicode_to_keysym_unittest.cc" ] |
| 347 } |
| 348 if (use_ozone || is_chromeos) { |
| 349 sources -= [ "local_input_monitor_unittest.cc" ] |
| 350 } |
| 351 if (is_chromeos) { |
| 352 sources -= [ "linux/x_server_clipboard_unittest.cc" ] |
| 353 } |
| 354 if (is_android) { |
| 355 sources -= [ "it2me/it2me_native_messaging_host_unittest.cc" ] |
| 356 } |
| 357 |
| 358 configs += [ "//remoting:version" ] |
| 359 |
| 360 deps = [ |
| 361 ":host", |
| 362 ":test_support", |
| 363 "//remoting/host/it2me:common", |
| 364 "//remoting/host/native_messaging", |
| 365 "//remoting/host/setup", |
| 366 "//remoting/proto", |
| 367 "//skia", |
| 368 "//testing/gmock", |
| 369 "//testing/gtest", |
| 370 ] |
| 371 |
| 372 if (enable_configuration_policy) { |
| 373 deps += [ "//components/policy:policy_component_test_support" ] |
| 374 } |
| 375 } |
| 376 |
| 377 if (is_win) { |
| 378 import("//build/toolchain/win/midl.gni") |
| 379 import("//build/win/message_compiler.gni") |
| 380 |
| 381 # TODO(brettw) these should not be generated via exec_script. This should be |
| 382 # part of the build process rather than the metabuild. Instead, a script |
| 383 # should generate a header containing the #defines for this as well as the |
| 384 # IDL file with the values. |
| 385 clsids = exec_script("win/get_clsids.py", |
| 386 [ |
| 387 remoting_srcs_gypi_values.daemon_controller_guid, |
| 388 remoting_srcs_gypi_values.rdp_desktop_session_guid, |
| 389 chrome_version_full, |
| 390 ], |
| 391 "value") |
| 392 daemon_controller_clsid = clsids[0] |
| 393 rdp_desktop_session_clsid = clsids[1] |
| 394 |
| 395 action("generate_idl") { |
| 396 script = "//build/util/version.py" |
| 397 |
| 398 inputs = [ |
| 399 "win/chromoting_lib_idl.templ", |
| 400 ] |
| 401 outputs = [ |
| 402 "$target_gen_dir/chromoting_lib.idl", |
| 403 ] |
| 404 |
| 405 args = [ |
| 406 "-e", |
| 407 "DAEMON_CONTROLLER_CLSID='$daemon_controller_clsid'", |
| 408 "-e", |
| 409 "RDP_DESKTOP_SESSION_CLSID='$rdp_desktop_session_clsid'", |
| 410 rebase_path(inputs[0], root_build_dir), |
| 411 rebase_path(outputs[0], root_build_dir), |
| 412 ] |
| 413 } |
| 414 |
| 415 midl("remoting_lib_idl") { |
| 416 sources = get_target_outputs(":generate_idl") |
| 417 deps = [ |
| 418 ":generate_idl", |
| 419 ] |
| 420 } |
| 421 |
| 422 config("MIDL_config") { |
| 423 if (is_clang) { |
| 424 cflags = [ |
| 425 # MIDL generated code has a habit of omitting optional braces. |
| 426 "-Wno-missing-braces", |
| 427 |
| 428 # Source files generated by the MIDL compiler trigger warnings with |
| 429 # -Wincompatible-pointer-types enabled. |
| 430 "-Wno-incompatible-pointer-types", |
| 431 |
| 432 # Generated code contains unused variables. |
| 433 "-Wno-unused-variable", |
| 434 |
| 435 # PROXYFILE_LIST_START is an extern with initializer. |
| 436 "-Wno-extern-initializer", |
| 437 ] |
| 438 } |
| 439 } |
| 440 |
| 441 # GYP version: remoting/remoting_host_win.gypi:remoting_lib_ps |
| 442 static_library("remoting_lib_ps") { |
| 443 configs += [ ":MIDL_config" ] |
| 444 |
| 445 defines = [ |
| 446 "ENTRY_PREFIX=Ps", |
| 447 "REGISTER_PROXY_DLL", |
| 448 ] |
| 449 |
| 450 deps = [ |
| 451 ":remoting_lib_idl", |
| 452 ] |
| 244 | 453 |
| 245 sources = [ | 454 sources = [ |
| 246 "fake_desktop_environment.cc", | 455 "$root_gen_dir/remoting/host/chromoting_lib.dlldata.c", |
| 247 "fake_desktop_environment.h", | 456 "$root_gen_dir/remoting/host/chromoting_lib_p.c", |
| 248 "fake_host_extension.cc", | 457 ] |
| 249 "fake_host_extension.h", | 458 } |
| 250 "fake_host_status_monitor.h", | 459 |
| 251 "fake_host_status_monitor.h", | 460 # Makes the .mc file from the .mc.jinja file. |
| 252 "fake_mouse_cursor_monitor.cc", | 461 remoting_localize("messages_localizing") { |
| 253 "fake_mouse_cursor_monitor.h", | 462 sources = [ |
| 254 "fake_oauth_token_getter.cc", | 463 "win/host_messages.mc.jinja2", |
| 255 "fake_oauth_token_getter.h", | 464 ] |
| 256 "host_mock_objects.cc", | 465 locales = remoting_locales |
| 257 "host_mock_objects.h", | 466 locale_dir = webapp_locale_dir |
| 258 "security_key/fake_ipc_gnubby_auth_handler.cc", | 467 encoding = "utf-16" |
| 259 "security_key/fake_ipc_gnubby_auth_handler.h", | 468 |
| 260 "security_key/fake_remote_security_key_ipc_client.cc", | 469 # This target is funny. It only produces one file and the output doesn't |
| 261 "security_key/fake_remote_security_key_ipc_client.h", | 470 # match the input. We want to generate remoting_host_messages.mc from |
| 262 "security_key/fake_remote_security_key_ipc_server.cc", | 471 # host_messages.mg.jinja2. GN complains if it doesn't see a pattern in the |
| 263 "security_key/fake_remote_security_key_ipc_server.h", | 472 # output, so the following pattern produces the name we want with a template |
| 264 "security_key/fake_remote_security_key_message_reader.cc", | 473 # based on the input. |
| 265 "security_key/fake_remote_security_key_message_reader.h", | 474 # |
| 266 "security_key/fake_remote_security_key_message_writer.cc", | 475 # TODO: This is for GYP compat. We should just make the names match instead. |
| 267 "security_key/fake_remote_security_key_message_writer.h", | 476 output = "$target_gen_dir/remoting_{{source_name_part}}" |
| 268 "setup/mock_oauth_client.cc", | 477 } |
| 269 "setup/mock_oauth_client.h", | 478 |
| 270 ] | 479 # Makes the .h/.rc files from the .mc file. |
| 271 | 480 message_compiler("messages") { |
| 272 configs += [ "//remoting:version" ] | 481 compile_generated_code = false |
| 273 | 482 sources = get_target_outputs(":messages_localizing") |
| 274 deps = [ | 483 deps = [ |
| 275 "//remoting/proto", | 484 ":messages_localizing", |
| 276 "//testing/gmock", | 485 ] |
| 277 "//testing/gtest", | 486 } |
| 278 ] | 487 |
| 279 public_deps = [ | 488 # GYP version: remoting/remoting_host_win.gypi:remoting_console |
| 280 ":host", | 489 executable("remoting_console") { |
| 281 "//third_party/protobuf:protobuf_lite", | 490 configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| 282 ] | 491 |
| 283 | 492 defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ] |
| 284 if (enable_webrtc) { | 493 |
| 285 public_deps += [ | 494 deps = [ |
| 286 "//third_party/libjingle:libjingle_webrtc", | 495 ":dpi_aware_exe_manifest", |
| 287 "//third_party/webrtc/modules/desktop_capture", | 496 ":remoting_core", |
| 288 ] | 497 ":remoting_windows_resources", |
| 289 } | 498 ] |
| 290 } | |
| 291 | |
| 292 # The host portions of the remoting unit tests. | |
| 293 source_set("unit_tests") { | |
| 294 testonly = true | |
| 295 | 499 |
| 296 sources = [ | 500 sources = [ |
| 297 "audio_pump_unittest.cc", | 501 "$root_gen_dir/remoting/version.rc", |
| 298 "audio_silence_detector_unittest.cc", | 502 "win/entry_point.cc", |
| 299 "backoff_timer_unittest.cc", | 503 ] |
| 300 "chromeos/aura_desktop_capturer_unittest.cc", | 504 |
| 301 "chromeos/clipboard_aura_unittest.cc", | 505 ldflags = [ |
| 302 "chromoting_host_context_unittest.cc", | 506 "/ENTRY:HostEntryPoint", |
| 303 "chromoting_host_unittest.cc", | 507 # "/NODEFAULTLIB", |
| 304 "client_session_unittest.cc", | 508 ] |
| 305 "config_file_watcher_unittest.cc", | 509 } |
| 306 "daemon_process_unittest.cc", | 510 |
| 307 "desktop_process_unittest.cc", | 511 # GYP version: //remoting/remoting_host_win.gypi:remoting_core |
| 308 "gcd_rest_client_unittest.cc", | 512 shared_library("remoting_core") { |
| 309 "gcd_state_updater_unittest.cc", | 513 configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| 310 "heartbeat_sender_unittest.cc", | 514 |
| 311 "host_change_notification_listener_unittest.cc", | 515 defines = host_predefines + [ |
| 312 "host_config_unittest.cc", | 516 "_ATL_APARTMENT_THREADED", |
| 313 "host_extension_session_manager_unittest.cc", | 517 "_ATL_CSTRING_EXPLICIT_CONSTRUCTORS", |
| 314 "host_status_logger_unittest.cc", | 518 "_ATL_NO_AUTOMATIC_NAMESPACE", |
| 315 "ipc_desktop_environment_unittest.cc", | 519 "_ATL_NO_EXCEPTIONS", |
| 316 "it2me/it2me_confirmation_dialog_proxy_unittest.cc", | 520 "BINARY=BINARY_CORE", |
| 317 "it2me/it2me_native_messaging_host_unittest.cc", | 521 "DAEMON_CONTROLLER_CLSID=\"$daemon_controller_clsid\"", |
| 318 "linux/audio_pipe_reader_unittest.cc", | 522 "RDP_DESKTOP_SESSION_CLSID=\"$rdp_desktop_session_clsid\"", |
| 319 "linux/certificate_watcher_unittest.cc", | 523 "HOST_IMPLEMENTATION", |
| 320 "linux/unicode_to_keysym_unittest.cc", | 524 "ISOLATION_AWARE_ENABLED=1", |
| 321 "linux/x_server_clipboard_unittest.cc", | 525 "STRICT", |
| 322 "local_input_monitor_unittest.cc", | 526 "VERSION=$chrome_version_full", |
| 323 "mouse_cursor_monitor_proxy_unittest.cc", | 527 ] |
| 324 "mouse_shape_pump_unittest.cc", | 528 |
| 325 "native_messaging/native_messaging_reader_unittest.cc", | 529 if (remoting_multi_process != 0 && remoting_rdp_session != 0) { |
| 326 "native_messaging/native_messaging_writer_unittest.cc", | 530 defines += [ "REMOTING_RDP_SESSION" ] |
| 327 "pairing_registry_delegate_linux_unittest.cc", | 531 } |
| 328 "pairing_registry_delegate_win_unittest.cc", | 532 |
| 329 "pin_hash_unittest.cc", | 533 if (remoting_multi_process != 0) { |
| 330 "policy_watcher_unittest.cc", | 534 defines += [ "REMOTING_MULTI_PROCESS" ] |
| 331 "register_support_host_request_unittest.cc", | 535 } |
| 332 "remote_input_filter_unittest.cc", | |
| 333 "resizing_host_observer_unittest.cc", | |
| 334 "resources_unittest.cc", | |
| 335 "screen_resolution_unittest.cc", | |
| 336 "security_key/gnubby_auth_handler_linux_unittest.cc", | |
| 337 "security_key/gnubby_auth_handler_win_unittest.cc", | |
| 338 "security_key/gnubby_extension_session_unittest.cc", | |
| 339 "security_key/remote_security_key_ipc_client_unittest.cc", | |
| 340 "security_key/remote_security_key_ipc_server_unittest.cc", | |
| 341 "security_key/remote_security_key_message_handler_unittest.cc", | |
| 342 "security_key/remote_security_key_message_reader_impl_unittest.cc", | |
| 343 "security_key/remote_security_key_message_writer_impl_unittest.cc", | |
| 344 "server_log_entry_host_unittest.cc", | |
| 345 "setup/me2me_native_messaging_host_unittest.cc", | |
| 346 "setup/oauth_helper_unittest.cc", | |
| 347 "setup/pin_validator_unittest.cc", | |
| 348 "third_party_auth_config_unittest.cc", | |
| 349 "token_validator_factory_impl_unittest.cc", | |
| 350 "touch_injector_win_unittest.cc", | |
| 351 "win/rdp_client_unittest.cc", | |
| 352 "win/worker_process_launcher_unittest.cc", | |
| 353 ] | |
| 354 | |
| 355 if (!use_x11 && is_linux) { | |
| 356 sources -= [ "linux/unicode_to_keysym_unittest.cc" ] | |
| 357 } | |
| 358 if (use_ozone || is_chromeos) { | |
| 359 sources -= [ "local_input_monitor_unittest.cc" ] | |
| 360 } | |
| 361 if (is_chromeos) { | |
| 362 sources -= [ "linux/x_server_clipboard_unittest.cc" ] | |
| 363 } | |
| 364 if (is_android) { | |
| 365 sources -= [ "it2me/it2me_native_messaging_host_unittest.cc" ] | |
| 366 } | |
| 367 | |
| 368 configs += [ "//remoting:version" ] | |
| 369 | 536 |
| 370 deps = [ | 537 deps = [ |
| 371 ":host", | 538 ":host", |
| 372 ":test_support", | 539 ":messages", |
| 540 ":remoting_lib_idl", |
| 541 ":remoting_lib_ps", |
| 542 ":remoting_me2me_host_static", |
| 543 ":remoting_windows_resources", |
| 544 "//base", |
| 545 "//base:base_static", |
| 546 "//base/allocator", |
| 547 "//base/third_party/dynamic_annotations", |
| 548 "//build/win:default_exe_manifest", |
| 549 "//ipc", |
| 550 "//net", |
| 551 "//remoting/base", |
| 552 "//remoting/base:breakpad", |
| 553 "//remoting/codec", |
| 373 "//remoting/host/it2me:common", | 554 "//remoting/host/it2me:common", |
| 374 "//remoting/host/native_messaging", | 555 "//remoting/host/native_messaging", |
| 375 "//remoting/host/setup", | 556 "//remoting/host/setup", |
| 557 "//remoting/protocol", |
| 558 "//sandbox/win:sandbox", # Should always use Windows version |
| 559 "//third_party/webrtc/modules/desktop_capture", |
| 560 ] |
| 561 |
| 562 sources = [ |
| 563 "$root_gen_dir/remoting/core.rc", |
| 564 "$root_gen_dir/remoting/host/remoting_host_messages.rc", |
| 565 "$root_gen_dir/remoting/version.rc", |
| 566 "desktop_process_main.cc", |
| 567 "host_main.cc", |
| 568 "host_main.h", |
| 569 "it2me/it2me_native_messaging_host_main.cc", |
| 570 "it2me/it2me_native_messaging_host_main.h", |
| 571 "security_key/remote_security_key_main.cc", |
| 572 "security_key/remote_security_key_main.h", |
| 573 "setup/me2me_native_messaging_host_main.cc", |
| 574 "setup/me2me_native_messaging_host_main.h", |
| 575 "win/chromoting_lib.rc", |
| 576 "win/chromoting_module.cc", |
| 577 "win/chromoting_module.h", |
| 578 "win/core.cc", |
| 579 "win/core_resource.h", |
| 580 "win/host_service.cc", |
| 581 "win/host_service.h", |
| 582 "win/omaha.cc", |
| 583 "win/omaha.h", |
| 584 "win/rdp_desktop_session.cc", |
| 585 "win/rdp_desktop_session.h", |
| 586 "win/unprivileged_process_delegate.cc", |
| 587 "win/unprivileged_process_delegate.h", |
| 588 "win/wts_session_process_delegate.cc", |
| 589 "win/wts_session_process_delegate.h", |
| 590 "worker_process_ipc_delegate.h", |
| 591 ] |
| 592 |
| 593 ldflags = [ |
| 594 "/EXPORT:DllGetClassObject=PsDllGetClassObject,PRIVATE", |
| 595 "/EXPORT:DllCanUnloadNow=PsDllCanUnloadNow,PRIVATE", |
| 596 "/EXPORT:DllRegisterServer=PsDllRegisterServer,PRIVATE", |
| 597 "/EXPORT:DllUnregisterServer=PsDllUnregisterServer,PRIVATE", |
| 598 ] |
| 599 |
| 600 libs = [ |
| 601 "comctl32.lib", |
| 602 "rpcns4.lib", |
| 603 "rpcrt4.lib", |
| 604 "uuid.lib", |
| 605 "wtsapi32.lib", |
| 606 ] |
| 607 |
| 608 if (is_clang) { |
| 609 cflags = [ "-Wno-header-hygiene" ] |
| 610 } |
| 611 } |
| 612 |
| 613 # GYP version: //remoting/remoting_host_win.gypi:remoting_desktop |
| 614 executable("remoting_desktop") { |
| 615 configs += [ |
| 616 "//build/config/compiler:wexit_time_destructors", |
| 617 "//build/config/win:windowed", |
| 618 ] |
| 619 |
| 620 defines = host_predefines + [ "BINARY=BINARY_DESKTOP" ] |
| 621 |
| 622 deps = [ |
| 623 ":remoting_core", |
| 624 ":remoting_windows_resources", |
| 625 ] |
| 626 |
| 627 if (is_official_build) { |
| 628 deps += [ ":dpi_aware_elevated_exe_manifest" ] |
| 629 } else { |
| 630 deps += [ ":dpi_aware_exe_manifest" ] |
| 631 } |
| 632 |
| 633 sources = [ |
| 634 "$root_gen_dir/remoting/version.rc", |
| 635 "win/entry_point.cc", |
| 636 ] |
| 637 |
| 638 ldflags = [ |
| 639 "/ENTRY:HostEntryPoint", |
| 640 # "/NODEFAULTLIB", |
| 641 ] |
| 642 } |
| 643 |
| 644 # GYP version: //remoting/remoting_host_win.gypi:remote_security_key |
| 645 executable("remote_security_key") { |
| 646 configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| 647 |
| 648 defines = [ "BINARY=BINARY_REMOTE_SECURITY_KEY" ] |
| 649 |
| 650 deps = [ |
| 651 ":remoting_core", |
| 652 ":remoting_windows_resources", |
| 653 "//build/win:default_exe_manifest", |
| 654 ] |
| 655 |
| 656 sources = [ |
| 657 "$root_gen_dir/remoting/version.rc", |
| 658 "security_key/remote_security_key_entry_point.cc", |
| 659 ] |
| 660 } |
| 661 |
| 662 # GYP version: |
| 663 # //remoting/remoting_host_win.gypi:remoting_me2me_native_messaging_host |
| 664 executable("remoting_native_messaging_host") { |
| 665 configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| 666 |
| 667 defines = host_predefines + [ "BINARY=BINARY_NATIVE_MESSAGING_HOST" ] |
| 668 |
| 669 deps = [ |
| 670 ":remoting_core", |
| 671 ":remoting_windows_resources", |
| 672 "//build/win:default_exe_manifest", |
| 673 ] |
| 674 |
| 675 sources = [ |
| 676 "$root_gen_dir/remoting/version.rc", |
| 677 "setup/me2me_native_messaging_host_entry_point.cc", |
| 678 ] |
| 679 } |
| 680 |
| 681 # GYP version: //remoting/remoting_host_win.gypi:remoting_windows_resources |
| 682 remoting_localize("remoting_windows_resources") { |
| 683 deps = [ |
| 684 "//remoting/resources", |
| 685 ] |
| 686 |
| 687 sources = [ |
| 688 "win/core.rc.jinja2", |
| 689 "win/version.rc.jinja2", |
| 690 ] |
| 691 |
| 692 # TODO(zijiehe): Export lastchange_path from |
| 693 # //chrome/version.gni:process_version |
| 694 variables = [ |
| 695 rebase_path(chrome_version_file), |
| 696 rebase_path(remoting_version_file), |
| 697 rebase_path("//build/util/LASTCHANGE"), |
| 698 ] |
| 699 |
| 700 output = "$root_gen_dir/remoting/{{source_name_part}}" |
| 701 |
| 702 locale_dir = webapp_locale_dir |
| 703 |
| 704 encoding = "utf-16" |
| 705 |
| 706 locales = remoting_locales |
| 707 } |
| 708 |
| 709 # TODO(GYP) More Windows remoting targets from remoting_host_win.gypi |
| 710 } |
| 711 |
| 712 if (enable_remoting_host && !is_android) { |
| 713 executable("remoting_start_host") { |
| 714 sources = [ |
| 715 "setup/host_starter.cc", |
| 716 "setup/host_starter.h", |
| 717 "setup/start_host.cc", |
| 718 ] |
| 719 |
| 720 deps = [ |
| 721 "//build/config/sanitizers:deps", |
| 722 "//build/win:default_exe_manifest", |
| 723 "//remoting/host/setup", |
| 724 ] |
| 725 |
| 726 if (enable_webrtc) { |
| 727 deps += [ "//third_party/libjingle:libjingle_webrtc" ] |
| 728 } |
| 729 } |
| 730 |
| 731 action_foreach("remoting_native_messaging_manifests") { |
| 732 if (is_mac) { |
| 733 me2me_host_path = "/Library/PrivilegedHelperTools/$me2me_host_bundle_name/
Contents/MacOS/$native_messaging_host_bundle_name/Contents/MacOS/native_messagin
g_host" |
| 734 it2me_host_path = "/Library/PrivilegedHelperTools/<(me2me_host_bundle_name
)/Contents/MacOS/$remote_assistance_host_bundle_name/Contents/MacOS/remote_assis
tance_host" |
| 735 } else if (is_win) { |
| 736 me2me_host_path = "remoting_native_messaging_host.exe" |
| 737 it2me_host_path = "remote_assistance_host.exe" |
| 738 } else { |
| 739 me2me_host_path = |
| 740 "/opt/google/chrome-remote-desktop/native-messaging-host" |
| 741 it2me_host_path = |
| 742 "/opt/google/chrome-remote-desktop/remote-assistance-host" |
| 743 } |
| 744 |
| 745 script = "../tools/build/remoting_localize.py" |
| 746 |
| 747 sources = [ |
| 748 "it2me/com.google.chrome.remote_assistance.json.jinja2", |
| 749 "setup/com.google.chrome.remote_desktop.json.jinja2", |
| 750 ] |
| 751 |
| 752 inputs = [ |
| 753 branding_path, |
| 754 ] |
| 755 |
| 756 outputs = [ |
| 757 "$root_build_dir/remoting/{{source_name_part}}", |
| 758 ] |
| 759 |
| 760 args = [ |
| 761 "--define", |
| 762 "ME2ME_HOST_PATH=$me2me_host_path", |
| 763 "--define", |
| 764 "IT2ME_HOST_PATH=$it2me_host_path", |
| 765 "--variables", |
| 766 rebase_path(branding_path), |
| 767 "--template", |
| 768 "{{source}}", |
| 769 "--locale_output", |
| 770 "remoting/{{source_name_part}}", |
| 771 "en", |
| 772 ] |
| 773 } |
| 774 |
| 775 # TODO(crbug.com/512899) This still needs to be ported to GN. |
| 776 group("remoting_infoplist_strings") { |
| 777 } |
| 778 } |
| 779 |
| 780 if (enable_me2me_host) { |
| 781 source_set("remoting_me2me_host_static") { |
| 782 sources = [ |
| 783 "pam_authorization_factory_posix.cc", |
| 784 "pam_authorization_factory_posix.h", |
| 785 "remoting_me2me_host.cc", |
| 786 ] |
| 787 defines = [] |
| 788 |
| 789 configs += [ "//remoting:version" ] |
| 790 |
| 791 deps = [ |
| 792 "//base", |
| 793 "//base:i18n", |
| 794 "//components/policy:policy_component_common", |
| 795 "//net", |
| 796 "//remoting/base", |
| 797 "//remoting/host", |
| 376 "//remoting/proto", | 798 "//remoting/proto", |
| 377 "//skia", | 799 "//third_party/webrtc/modules/desktop_capture", |
| 378 "//testing/gmock", | |
| 379 "//testing/gtest", | |
| 380 ] | 800 ] |
| 381 | 801 |
| 382 if (enable_configuration_policy) { | 802 if (enable_configuration_policy) { |
| 383 deps += [ "//components/policy:policy_component_test_support" ] | 803 deps += [ "//components/policy" ] |
| 804 } |
| 805 |
| 806 if (enable_webrtc) { |
| 807 deps += [ "//third_party/libjingle:libjingle_webrtc" ] |
| 808 } |
| 809 |
| 810 if (is_desktop_linux) { |
| 811 deps += [ "//build/config/linux/gtk2" ] |
| 812 } |
| 813 if ((is_linux && !is_chromeos) || is_mac) { |
| 814 libs = [ "pam" ] |
| 815 } |
| 816 |
| 817 if (is_mac && is_official_build) { |
| 818 sources += [ "internal/internal_mac-inl.h" ] |
| 819 defines += [ "USE_REMOTING_MACOSX_INTERNAL" ] |
| 820 } |
| 821 |
| 822 if (is_win && remoting_multi_process != 0 && remoting_rdp_session != 0) { |
| 823 defines += [ "REMOTING_RDP_SESSION" ] |
| 824 } |
| 825 |
| 826 if (remoting_multi_process != 0) { |
| 827 defines += [ "REMOTING_MULTI_PROCESS" ] |
| 384 } | 828 } |
| 385 } | 829 } |
| 386 | 830 |
| 387 if (is_win) { | 831 if (is_win) { |
| 388 import("//build/toolchain/win/midl.gni") | 832 # GYP version: //remoting/remoting_host_win.gypi:remoting_me2me_host |
| 389 import("//build/win/message_compiler.gni") | 833 executable("remoting_me2me_host") { |
| 390 | 834 configs += [ |
| 391 # TODO(brettw) these should not be generated via exec_script. This should be | 835 "//build/config/compiler:wexit_time_destructors", |
| 392 # part of the build process rather than the metabuild. Instead, a script | 836 "//build/config/win:windowed", |
| 393 # should generate a header containing the #defines for this as well as the | 837 ] |
| 394 # IDL file with the values. | |
| 395 clsids = exec_script("win/get_clsids.py", | |
| 396 [ | |
| 397 remoting_srcs_gypi_values.daemon_controller_guid, | |
| 398 remoting_srcs_gypi_values.rdp_desktop_session_guid, | |
| 399 chrome_version_full, | |
| 400 ], | |
| 401 "value") | |
| 402 daemon_controller_clsid = clsids[0] | |
| 403 rdp_desktop_session_clsid = clsids[1] | |
| 404 | |
| 405 action("generate_idl") { | |
| 406 script = "//build/util/version.py" | |
| 407 | |
| 408 inputs = [ | |
| 409 "win/chromoting_lib_idl.templ", | |
| 410 ] | |
| 411 outputs = [ | |
| 412 "$target_gen_dir/chromoting_lib.idl", | |
| 413 ] | |
| 414 | |
| 415 args = [ | |
| 416 "-e", | |
| 417 "DAEMON_CONTROLLER_CLSID='$daemon_controller_clsid'", | |
| 418 "-e", | |
| 419 "RDP_DESKTOP_SESSION_CLSID='$rdp_desktop_session_clsid'", | |
| 420 rebase_path(inputs[0], root_build_dir), | |
| 421 rebase_path(outputs[0], root_build_dir), | |
| 422 ] | |
| 423 } | |
| 424 | |
| 425 midl("remoting_lib_idl") { | |
| 426 sources = get_target_outputs(":generate_idl") | |
| 427 deps = [ | |
| 428 ":generate_idl", | |
| 429 ] | |
| 430 } | |
| 431 | |
| 432 config("MIDL_config") { | |
| 433 if (is_clang) { | |
| 434 cflags = [ | |
| 435 # MIDL generated code has a habit of omitting optional braces. | |
| 436 "-Wno-missing-braces", | |
| 437 | |
| 438 # Source files generated by the MIDL compiler trigger warnings with | |
| 439 # -Wincompatible-pointer-types enabled. | |
| 440 "-Wno-incompatible-pointer-types", | |
| 441 | |
| 442 # Generated code contains unused variables. | |
| 443 "-Wno-unused-variable", | |
| 444 | |
| 445 # PROXYFILE_LIST_START is an extern with initializer. | |
| 446 "-Wno-extern-initializer", | |
| 447 ] | |
| 448 } | |
| 449 } | |
| 450 | |
| 451 # GYP version: remoting/remoting_host_win.gypi:remoting_lib_ps | |
| 452 static_library("remoting_lib_ps") { | |
| 453 configs += [ ":MIDL_config" ] | |
| 454 | |
| 455 defines = [ | |
| 456 "ENTRY_PREFIX=Ps", | |
| 457 "REGISTER_PROXY_DLL", | |
| 458 ] | |
| 459 | |
| 460 deps = [ | |
| 461 ":remoting_lib_idl", | |
| 462 ] | |
| 463 | |
| 464 sources = [ | |
| 465 "$root_gen_dir/remoting/host/chromoting_lib.dlldata.c", | |
| 466 "$root_gen_dir/remoting/host/chromoting_lib_p.c", | |
| 467 ] | |
| 468 } | |
| 469 | |
| 470 # Makes the .mc file from the .mc.jinja file. | |
| 471 remoting_localize("messages_localizing") { | |
| 472 sources = [ | |
| 473 "win/host_messages.mc.jinja2", | |
| 474 ] | |
| 475 locales = remoting_locales | |
| 476 locale_dir = webapp_locale_dir | |
| 477 encoding = "utf-16" | |
| 478 | |
| 479 # This target is funny. It only produces one file and the output doesn't | |
| 480 # match the input. We want to generate remoting_host_messages.mc from | |
| 481 # host_messages.mg.jinja2. GN complains if it doesn't see a pattern in the | |
| 482 # output, so the following pattern produces the name we want with a templa
te | |
| 483 # based on the input. | |
| 484 # | |
| 485 # TODO: This is for GYP compat. We should just make the names match instea
d. | |
| 486 output = "$target_gen_dir/remoting_{{source_name_part}}" | |
| 487 } | |
| 488 | |
| 489 # Makes the .h/.rc files from the .mc file. | |
| 490 message_compiler("messages") { | |
| 491 compile_generated_code = false | |
| 492 sources = get_target_outputs(":messages_localizing") | |
| 493 deps = [ | |
| 494 ":messages_localizing", | |
| 495 ] | |
| 496 } | |
| 497 | |
| 498 # GYP version: remoting/remoting_host_win.gypi:remoting_console | |
| 499 executable("remoting_console") { | |
| 500 configs += [ "//build/config/compiler:wexit_time_destructors" ] | |
| 501 | 838 |
| 502 defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ] | 839 defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ] |
| 503 | 840 |
| 504 deps = [ | 841 deps = [ |
| 505 ":dpi_aware_exe_manifest", | 842 ":dpi_aware_exe_manifest", |
| 506 ":remoting_core", | 843 ":remoting_core", |
| 507 ":remoting_windows_resources", | 844 ":remoting_windows_resources", |
| 508 ] | 845 ] |
| 509 | 846 |
| 510 sources = [ | 847 sources = [ |
| 511 "$root_gen_dir/remoting/version.rc", | 848 "$root_gen_dir/remoting/version.rc", |
| 512 "win/entry_point.cc", | 849 "win/entry_point.cc", |
| 513 ] | 850 ] |
| 514 | 851 |
| 852 output_name = "remoting_host" |
| 853 |
| 515 ldflags = [ | 854 ldflags = [ |
| 516 "/ENTRY:HostEntryPoint", | 855 "/ENTRY:HostEntryPoint", |
| 517 # "/NODEFAULTLIB", | 856 # "/NODEFAULTLIB", |
| 518 ] | 857 ] |
| 519 } | 858 } |
| 520 | 859 } else { |
| 521 # GYP version: //remoting/remoting_host_win.gypi:remoting_core | 860 executable("remoting_me2me_host") { |
| 522 shared_library("remoting_core") { | 861 configs += [ "//remoting:version" ] |
| 523 configs += [ "//build/config/compiler:wexit_time_destructors" ] | 862 |
| 524 | 863 sources = [ |
| 525 defines = host_predefines + [ | 864 "host_main.cc", |
| 526 "_ATL_APARTMENT_THREADED", | 865 "host_main.h", |
| 527 "_ATL_CSTRING_EXPLICIT_CONSTRUCTORS", | 866 ] |
| 528 "_ATL_NO_AUTOMATIC_NAMESPACE", | 867 |
| 529 "_ATL_NO_EXCEPTIONS", | 868 if (is_mac && is_chrome_branded && is_official_build) { |
| 530 "BINARY=BINARY_CORE", | 869 defines = [ "REMOTING_ENABLE_BREAKPAD" ] |
| 531 "DAEMON_CONTROLLER_CLSID=\"$daemon_controller_clsid\"", | |
| 532 "RDP_DESKTOP_SESSION_CLSID=\"$rdp_desktop_session_clsid\"", | |
| 533 "HOST_IMPLEMENTATION", | |
| 534 "ISOLATION_AWARE_ENABLED=1", | |
| 535 "STRICT", | |
| 536 "VERSION=$chrome_version_full", | |
| 537 ] | |
| 538 | |
| 539 if (remoting_multi_process != 0 && remoting_rdp_session != 0) { | |
| 540 defines += [ "REMOTING_RDP_SESSION" ] | |
| 541 } | 870 } |
| 542 | 871 |
| 543 if (remoting_multi_process != 0) { | 872 deps = [ |
| 544 defines += [ "REMOTING_MULTI_PROCESS" ] | 873 ":credits", |
| 874 ":remoting_me2me_host_static", |
| 875 "//build/config/sanitizers:deps", |
| 876 ] |
| 877 } |
| 878 |
| 879 if (is_linux) { |
| 880 copy("remoting_me2me_host_copy_script") { |
| 881 sources = [ |
| 882 "linux/linux_me2me_host.py", |
| 883 ] |
| 884 outputs = [ |
| 885 "$root_build_dir/remoting/chrome-remote-desktop", |
| 886 ] |
| 545 } | 887 } |
| 888 copy("remoting_me2me_host_copy_host") { |
| 889 sources = [ |
| 890 "linux/remoting_me2me_host_wrapper.sh", |
| 891 ] |
| 892 outputs = [ |
| 893 "$root_build_dir/remoting/chrome-remote-desktop-host", |
| 894 ] |
| 895 deps = [ |
| 896 ":remoting_me2me_host", |
| 897 ] |
| 898 } |
| 899 group("remoting_dev_me2me_host") { |
| 900 deps = [ |
| 901 ":remoting_me2me_host", |
| 902 ":remoting_me2me_host_copy_host", |
| 903 ":remoting_me2me_host_copy_script", |
| 904 ] |
| 905 } |
| 906 } |
| 907 |
| 908 executable("native_messaging_host") { |
| 909 sources = [ |
| 910 "setup/me2me_native_messaging_host_entry_point.cc", |
| 911 "setup/me2me_native_messaging_host_main.cc", |
| 912 "setup/me2me_native_messaging_host_main.h", |
| 913 ] |
| 546 | 914 |
| 547 deps = [ | 915 deps = [ |
| 548 ":host", | 916 ":remoting_infoplist_strings", |
| 549 ":messages", | |
| 550 ":remoting_lib_idl", | |
| 551 ":remoting_lib_ps", | |
| 552 ":remoting_me2me_host_static", | |
| 553 ":remoting_windows_resources", | |
| 554 "//base", | 917 "//base", |
| 555 "//base:base_static", | |
| 556 "//base/allocator", | |
| 557 "//base/third_party/dynamic_annotations", | |
| 558 "//build/win:default_exe_manifest", | |
| 559 "//ipc", | |
| 560 "//net", | |
| 561 "//remoting/base", | |
| 562 "//remoting/base:breakpad", | 918 "//remoting/base:breakpad", |
| 563 "//remoting/codec", | 919 "//remoting/host", |
| 564 "//remoting/host/it2me:common", | |
| 565 "//remoting/host/native_messaging", | 920 "//remoting/host/native_messaging", |
| 566 "//remoting/host/setup", | 921 "//remoting/host/setup", |
| 567 "//remoting/protocol", | 922 ] |
| 568 "//sandbox/win:sandbox", # Should always use Windows version | 923 |
| 569 "//third_party/webrtc/modules/desktop_capture", | 924 configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| 570 ] | 925 |
| 571 | 926 # The |major|, |build| and |patch| versions are inherited from Chrome. |
| 927 # Since Chrome's |minor| version is always '0', we replace it with a |
| 928 # Chromoting-specific patch version. |
| 929 defines = [ "VERSION=" + "$chrome_version_major" + "." + |
| 930 "$remoting_version_patch" + "." + "$chrome_version_build" + |
| 931 "." + "$chrome_version_patch" ] |
| 932 } |
| 933 } |
| 934 |
| 935 if (is_chrome_branded && enable_me2me_host && is_linux && !is_chromeos) { |
| 936 # TODO(GYP): add support for archive_chromoting_tests variable? |
| 937 |
| 938 import("//build/config/zip.gni") |
| 939 |
| 940 build_deb_script = "installer/linux/build_deb.py" |
| 941 deb_filename = |
| 942 "$root_build_dir/" + exec_script(build_deb_script, |
| 943 [ |
| 944 "-p", |
| 945 "-s", |
| 946 rebase_path("//"), |
| 947 ], |
| 948 "string", |
| 949 [ "installer/linux/build-deb.sh" ]) |
| 950 changes_filename = |
| 951 "$root_build_dir/" + get_path_info(deb_filename, "name") + ".changes" |
| 952 |
| 953 packaging_outputs = [ |
| 954 deb_filename, |
| 955 changes_filename, |
| 956 |
| 957 # TODO(GYP): Check that these are generated by build_deb.py. |
| 958 #"$root_build_dir/remoting_me2me_host.debug", |
| 959 #"$root_build_dir/remoting_start_host.debug", |
| 960 #"$root_build_dir/native_messaging_host.debug", |
| 961 #"$root_build_dir/remote_assistance_host.debug", |
| 962 ] |
| 963 |
| 964 zip("remoting_me2me_host_archive") { |
| 965 # Store the installer package(s) into a zip file so there is a |
| 966 # consistent filename to reference for build archiving (i.e. in |
| 967 # FILES.cfg). This also avoids possible conflicts with "wildcard" |
| 968 # package handling in other build/signing scripts. |
| 969 inputs = packaging_outputs |
| 970 output = "$root_build_dir/remoting-me2me-host-linux.zip" |
| 971 deps = [ |
| 972 ":remoting_me2me_host_copy", |
| 973 ] |
| 974 } |
| 975 |
| 976 copy("remoting_me2me_host_copy") { |
| 977 # Copy the debian package file, which has version info in it, |
| 978 # to a consistewnt filename for use on Chromoting swarming bots. |
| 572 sources = [ | 979 sources = [ |
| 573 "$root_gen_dir/remoting/core.rc", | 980 deb_filename, |
| 574 "$root_gen_dir/remoting/host/remoting_host_messages.rc", | 981 ] |
| 575 "$root_gen_dir/remoting/version.rc", | 982 outputs = [ |
| 576 "desktop_process_main.cc", | 983 "$root_build_dir/remoting-me2me-host.deb", |
| 577 "host_main.cc", | 984 ] |
| 578 "host_main.h", | 985 public_deps = [ |
| 579 "it2me/it2me_native_messaging_host_main.cc", | 986 ":remoting_me2me_host_deb_installer", |
| 580 "it2me/it2me_native_messaging_host_main.h", | 987 ] |
| 581 "security_key/remote_security_key_main.cc", | 988 } |
| 582 "security_key/remote_security_key_main.h", | 989 |
| 583 "setup/me2me_native_messaging_host_main.cc", | 990 action("remoting_me2me_host_deb_installer") { |
| 584 "setup/me2me_native_messaging_host_main.h", | 991 script = build_deb_script |
| 585 "win/chromoting_lib.rc", | 992 inputs = [ |
| 586 "win/chromoting_module.cc", | 993 build_deb_script, |
| 587 "win/chromoting_module.h", | 994 "installer/linux/Makefile", |
| 588 "win/core.cc", | 995 "installer/linux/debian/chrome-remote-desktop.init", |
| 589 "win/core_resource.h", | 996 "installer/linux/debian/chrome-remote-desktop.pam", |
| 590 "win/host_service.cc", | 997 "installer/linux/debian/compat", |
| 591 "win/host_service.h", | 998 "installer/linux/debian/control", |
| 592 "win/omaha.cc", | 999 "installer/linux/debian/copyright", |
| 593 "win/omaha.h", | 1000 "installer/linux/debian/postinst", |
| 594 "win/rdp_desktop_session.cc", | 1001 "installer/linux/debian/preinst", |
| 595 "win/rdp_desktop_session.h", | 1002 "installer/linux/debian/rules", |
| 596 "win/unprivileged_process_delegate.cc", | 1003 ] |
| 597 "win/unprivileged_process_delegate.h", | 1004 outputs = packaging_outputs |
| 598 "win/wts_session_process_delegate.cc", | 1005 sources = [ |
| 599 "win/wts_session_process_delegate.h", | 1006 "installer/linux/build-deb.sh", |
| 600 "worker_process_ipc_delegate.h", | 1007 ] |
| 601 ] | 1008 args = [ |
| 602 | 1009 "-s", |
| 603 ldflags = [ | 1010 rebase_path("//"), |
| 604 "/EXPORT:DllGetClassObject=PsDllGetClassObject,PRIVATE", | 1011 "-o", |
| 605 "/EXPORT:DllCanUnloadNow=PsDllCanUnloadNow,PRIVATE", | 1012 rebase_path("$root_build_dir"), |
| 606 "/EXPORT:DllRegisterServer=PsDllRegisterServer,PRIVATE", | 1013 ] |
| 607 "/EXPORT:DllUnregisterServer=PsDllUnregisterServer,PRIVATE", | 1014 |
| 608 ] | 1015 deps = [ |
| 609 | 1016 ":native_messaging_host", |
| 610 libs = [ | 1017 ":remoting_me2me_host", |
| 611 "comctl32.lib", | 1018 ":remoting_native_messaging_manifests", |
| 612 "rpcns4.lib", | 1019 ":remoting_start_host", |
| 613 "rpcrt4.lib", | 1020 "//remoting/host/it2me:remote_assistance_host", |
| 614 "uuid.lib", | 1021 "//remoting/resources", |
| 615 "wtsapi32.lib", | 1022 "//third_party/icu:icudata", |
| 616 ] | 1023 ] |
| 617 | 1024 } |
| 618 if (is_clang) { | 1025 } else if (is_win) { |
| 619 cflags = [ "-Wno-header-hygiene" ] | 1026 # GYP version: //remoting/remoting_host_win.gypi:remoting_me2me_host_archive |
| 1027 action("remoting_me2me_host_archive") { |
| 1028 script = "//remoting/host/installer/build-installer-archive.py" |
| 1029 |
| 1030 deps = [ |
| 1031 ":credits", |
| 1032 ":remote_security_key", |
| 1033 ":remoting_core", |
| 1034 ":remoting_desktop", |
| 1035 ":remoting_me2me_host", |
| 1036 ":remoting_native_messaging_host", |
| 1037 ":remoting_native_messaging_manifests", |
| 1038 ":remoting_start_host", |
| 1039 "it2me:remote_assistance_host", |
| 1040 "//third_party/icu:icudata", |
| 1041 ] |
| 1042 |
| 1043 _output = "$root_out_dir/remoting-me2me-host-$target_os.zip" |
| 1044 |
| 1045 outputs = [ |
| 1046 _output, |
| 1047 ] |
| 1048 if (is_chrome_branded) { |
| 1049 _branding = "Chrome" |
| 1050 } else { |
| 1051 _branding = "Chromium" |
| 620 } | 1052 } |
| 621 } | 1053 |
| 622 | 1054 if (is_official_build) { |
| 623 # GYP version: //remoting/remoting_host_win.gypi:remoting_desktop | 1055 _official_build = "1" |
| 624 executable("remoting_desktop") { | 1056 } else { |
| 625 configs += [ | 1057 _official_build = "0" |
| 626 "//build/config/compiler:wexit_time_destructors", | 1058 } |
| 627 "//build/config/win:windowed", | 1059 |
| 628 ] | 1060 _generated_files = rebase_path( |
| 629 | 1061 [ |
| 630 defines = host_predefines + [ "BINARY=BINARY_DESKTOP" ] | 1062 "$root_out_dir/remote_assistance_host.exe", |
| 631 | 1063 "$root_out_dir/remote_security_key.exe", |
| 1064 "$root_out_dir/remoting_core.dll", |
| 1065 "$root_out_dir/remoting_desktop.exe", |
| 1066 "$root_out_dir/remoting_host.exe", |
| 1067 "$root_out_dir/remoting_native_messaging_host.exe", |
| 1068 "$root_out_dir/remoting_start_host.exe", |
| 1069 "$root_gen_dir/remoting/CREDITS.txt", |
| 1070 "$root_out_dir/remoting/com.google.chrome.remote_assistance.json
", |
| 1071 "$root_out_dir/remoting/com.google.chrome.remote_desktop.json", |
| 1072 "$root_out_dir/icudtl.dat", |
| 1073 ], |
| 1074 root_build_dir) |
| 1075 _extra_files = [] |
| 1076 if (is_chrome_branded) { |
| 1077 if (target_cpu == "x64") { |
| 1078 _redist_cpu_path = "amd64" |
| 1079 } else { |
| 1080 _redist_cpu_path = "x86" |
| 1081 } |
| 1082 _generated_files += |
| 1083 [ rebase_path("//third_party/platformsdk_win7/files/Redist/" + |
| 1084 "$_redist_cpu_path/sas.dll", |
| 1085 root_build_dir) ] |
| 1086 _extra_files += [ "files/sas.dll" ] |
| 1087 } |
| 1088 |
| 1089 args = [ |
| 1090 rebase_path("$root_gen_dir/installation", root_build_dir), |
| 1091 rebase_path(_output, root_build_dir), |
| 1092 "--source-file-roots", |
| 1093 rebase_path("//remoting/host/installer/win"), |
| 1094 "--source-files", |
| 1095 rebase_path("//remoting/host/installer/win/chromoting.wxs"), |
| 1096 rebase_path("//remoting/host/installer/win/parameters.json"), |
| 1097 |
| 1098 # Input files |
| 1099 "--generated-files", |
| 1100 ] + _generated_files + |
| 1101 [ |
| 1102 rebase_path("//remoting/resources/chromoting.ico"), |
| 1103 |
| 1104 # Position of files in zip file |
| 1105 "--generated-files-dst", |
| 1106 "files/remote_assistance_host.exe", |
| 1107 "files/remote_security_key.exe", |
| 1108 "files/remoting_core.dll", |
| 1109 "files/remoting_desktop.exe", |
| 1110 "files/remoting_host.exe", |
| 1111 "files/remoting_native_messaging_host.exe", |
| 1112 "files/remoting_start_host.exe", |
| 1113 "files/CREDITS.txt", |
| 1114 "files/com.google.chrome.remote_assistance.json", |
| 1115 "files/com.google.chrome.remote_desktop.json", |
| 1116 "files/chromoting.ico", |
| 1117 "files/icudtl.dat", |
| 1118 ] + _extra_files + # Defs |
| 1119 [ |
| 1120 "--defs", |
| 1121 "BRANDING=$_branding", |
| 1122 "DAEMON_CONTROLLER_CLSID={$daemon_controller_clsid}", |
| 1123 "RDP_DESKTOP_SESSION_CLSID={$rdp_desktop_session_clsid}", |
| 1124 "VERSION=$chrome_version_full", |
| 1125 "OFFICIAL_BUILD=$_official_build", |
| 1126 ] |
| 1127 } |
| 1128 } else { |
| 1129 group("remoting_me2me_host_archive") { |
| 1130 } |
| 1131 } |
| 1132 |
| 1133 if (is_win && is_chrome_branded) { |
| 1134 if (target_cpu == "x86") { |
| 1135 # The script uses "ia32" instead of "x86". |
| 1136 msi_script_arch = "ia32" |
| 1137 } else { |
| 1138 msi_script_arch = target_cpu |
| 1139 } |
| 1140 |
| 1141 # GYP version: remoting/remoting_host_win.gyp:remoting_host_installation |
| 1142 action("remoting_host_installation") { |
| 632 deps = [ | 1143 deps = [ |
| 633 ":remoting_core", | 1144 "//remoting/host:remoting_me2me_host_archive", |
| 634 ":remoting_windows_resources", | 1145 ] |
| 635 ] | 1146 script = "../tools/zip2msi.py" |
| 636 | |
| 637 if (is_official_build) { | |
| 638 deps += [ ":dpi_aware_elevated_exe_manifest" ] | |
| 639 } else { | |
| 640 deps += [ ":dpi_aware_exe_manifest" ] | |
| 641 } | |
| 642 | |
| 643 sources = [ | |
| 644 "$root_gen_dir/remoting/version.rc", | |
| 645 "win/entry_point.cc", | |
| 646 ] | |
| 647 | |
| 648 ldflags = [ | |
| 649 "/ENTRY:HostEntryPoint", | |
| 650 # "/NODEFAULTLIB", | |
| 651 ] | |
| 652 } | |
| 653 | |
| 654 # GYP version: //remoting/remoting_host_win.gypi:remote_security_key | |
| 655 executable("remote_security_key") { | |
| 656 configs += [ "//build/config/compiler:wexit_time_destructors" ] | |
| 657 | |
| 658 defines = [ "BINARY=BINARY_REMOTE_SECURITY_KEY" ] | |
| 659 | |
| 660 deps = [ | |
| 661 ":remoting_core", | |
| 662 ":remoting_windows_resources", | |
| 663 "//build/win:default_exe_manifest", | |
| 664 ] | |
| 665 | |
| 666 sources = [ | |
| 667 "$root_gen_dir/remoting/version.rc", | |
| 668 "security_key/remote_security_key_entry_point.cc", | |
| 669 ] | |
| 670 } | |
| 671 | |
| 672 # GYP version: | |
| 673 # //remoting/remoting_host_win.gypi:remoting_me2me_native_messaging_host | |
| 674 executable("remoting_native_messaging_host") { | |
| 675 configs += [ "//build/config/compiler:wexit_time_destructors" ] | |
| 676 | |
| 677 defines = host_predefines + [ "BINARY=BINARY_NATIVE_MESSAGING_HOST" ] | |
| 678 | |
| 679 deps = [ | |
| 680 ":remoting_core", | |
| 681 ":remoting_windows_resources", | |
| 682 "//build/win:default_exe_manifest", | |
| 683 ] | |
| 684 | |
| 685 sources = [ | |
| 686 "$root_gen_dir/remoting/version.rc", | |
| 687 "setup/me2me_native_messaging_host_entry_point.cc", | |
| 688 ] | |
| 689 } | |
| 690 | |
| 691 # GYP version: //remoting/remoting_host_win.gypi:remoting_windows_resources | |
| 692 remoting_localize("remoting_windows_resources") { | |
| 693 deps = [ | |
| 694 "//remoting/resources", | |
| 695 ] | |
| 696 | |
| 697 sources = [ | |
| 698 "win/core.rc.jinja2", | |
| 699 "win/version.rc.jinja2", | |
| 700 ] | |
| 701 | |
| 702 # TODO(zijiehe): Export lastchange_path from | |
| 703 # //chrome/version.gni:process_version | |
| 704 variables = [ | |
| 705 rebase_path(chrome_version_file), | |
| 706 rebase_path(remoting_version_file), | |
| 707 rebase_path("//build/util/LASTCHANGE"), | |
| 708 ] | |
| 709 | |
| 710 output = "$root_gen_dir/remoting/{{source_name_part}}" | |
| 711 | |
| 712 locale_dir = webapp_locale_dir | |
| 713 | |
| 714 encoding = "utf-16" | |
| 715 | |
| 716 locales = remoting_locales | |
| 717 } | |
| 718 | |
| 719 # TODO(GYP) More Windows remoting targets from remoting_host_win.gypi | |
| 720 } | |
| 721 | |
| 722 if (enable_remoting_host && !is_android) { | |
| 723 executable("remoting_start_host") { | |
| 724 sources = [ | |
| 725 "setup/host_starter.cc", | |
| 726 "setup/host_starter.h", | |
| 727 "setup/start_host.cc", | |
| 728 ] | |
| 729 | |
| 730 deps = [ | |
| 731 "//build/config/sanitizers:deps", | |
| 732 "//build/win:default_exe_manifest", | |
| 733 "//remoting/host/setup", | |
| 734 ] | |
| 735 | |
| 736 if (enable_webrtc) { | |
| 737 deps += [ "//third_party/libjingle:libjingle_webrtc" ] | |
| 738 } | |
| 739 } | |
| 740 | |
| 741 action_foreach("remoting_native_messaging_manifests") { | |
| 742 if (is_mac) { | |
| 743 assert(false, "not implemented on mac yet") | |
| 744 } else if (is_win) { | |
| 745 me2me_host_path = "remoting_native_messaging_host.exe" | |
| 746 it2me_host_path = "remote_assistance_host.exe" | |
| 747 } else { | |
| 748 me2me_host_path = | |
| 749 "/opt/google/chrome-remote-desktop/native-messaging-host" | |
| 750 it2me_host_path = | |
| 751 "/opt/google/chrome-remote-desktop/remote-assistance-host" | |
| 752 } | |
| 753 | |
| 754 script = "../tools/build/remoting_localize.py" | |
| 755 | |
| 756 sources = [ | |
| 757 "it2me/com.google.chrome.remote_assistance.json.jinja2", | |
| 758 "setup/com.google.chrome.remote_desktop.json.jinja2", | |
| 759 ] | |
| 760 | |
| 761 inputs = [ | |
| 762 branding_path, | |
| 763 ] | |
| 764 | |
| 765 outputs = [ | 1147 outputs = [ |
| 766 "$root_build_dir/remoting/{{source_name_part}}", | 1148 "$root_out_dir/chromoting.msi", |
| 767 ] | 1149 ] |
| 768 | |
| 769 args = [ | 1150 args = [ |
| 770 "--define", | 1151 "--wix_path", |
| 771 "ME2ME_HOST_PATH=$me2me_host_path", | 1152 rebase_path("//third_party/wix"), |
| 772 "--define", | 1153 "--intermediate_dir", |
| 773 "IT2ME_HOST_PATH=$it2me_host_path", | 1154 rebase_path("$root_gen_dir/installation", root_build_dir), |
| 774 "--variables", | 1155 "--target_arch", |
| 775 rebase_path(branding_path), | 1156 msi_script_arch, |
| 776 "--template", | 1157 rebase_path("$root_out_dir/remoting-me2me-host-$current_os.zip", |
| 777 "{{source}}", | 1158 root_build_dir), |
| 778 "--locale_output", | 1159 rebase_path(outputs[0], root_build_dir), |
| 779 "remoting/{{source_name_part}}", | 1160 ] |
| 780 "en", | |
| 781 ] | |
| 782 } | |
| 783 | |
| 784 # TODO(crbug.com/512899) This still needs to be ported to GN. | |
| 785 group("remoting_infoplist_strings") { | |
| 786 } | |
| 787 } | |
| 788 | |
| 789 if (enable_me2me_host) { | |
| 790 source_set("remoting_me2me_host_static") { | |
| 791 sources = [ | |
| 792 "pam_authorization_factory_posix.cc", | |
| 793 "pam_authorization_factory_posix.h", | |
| 794 "remoting_me2me_host.cc", | |
| 795 ] | |
| 796 defines = [] | |
| 797 | |
| 798 configs += [ "//remoting:version" ] | |
| 799 | |
| 800 deps = [ | |
| 801 "//base", | |
| 802 "//base:i18n", | |
| 803 "//components/policy:policy_component_common", | |
| 804 "//net", | |
| 805 "//remoting/base", | |
| 806 "//remoting/host", | |
| 807 "//remoting/proto", | |
| 808 "//third_party/webrtc/modules/desktop_capture", | |
| 809 ] | |
| 810 | |
| 811 if (enable_configuration_policy) { | |
| 812 deps += [ "//components/policy" ] | |
| 813 } | |
| 814 | |
| 815 if (enable_webrtc) { | |
| 816 deps += [ "//third_party/libjingle:libjingle_webrtc" ] | |
| 817 } | |
| 818 | |
| 819 if (is_desktop_linux) { | |
| 820 deps += [ "//build/config/linux/gtk2" ] | |
| 821 } | |
| 822 if ((is_linux && !is_chromeos) || is_mac) { | |
| 823 libs = [ "pam" ] | |
| 824 } | |
| 825 | |
| 826 if (is_mac && is_official_build) { | |
| 827 sources += [ "internal/internal_mac-inl.h" ] | |
| 828 defines += [ "USE_REMOTING_MACOSX_INTERNAL" ] | |
| 829 } | |
| 830 | |
| 831 if (is_win && remoting_multi_process != 0 && remoting_rdp_session != 0) { | |
| 832 defines += [ "REMOTING_RDP_SESSION" ] | |
| 833 } | |
| 834 | |
| 835 if (remoting_multi_process != 0) { | |
| 836 defines += [ "REMOTING_MULTI_PROCESS" ] | |
| 837 } | |
| 838 } | |
| 839 | |
| 840 if (is_win) { | |
| 841 # GYP version: //remoting/remoting_host_win.gypi:remoting_me2me_host | |
| 842 executable("remoting_me2me_host") { | |
| 843 configs += [ | |
| 844 "//build/config/compiler:wexit_time_destructors", | |
| 845 "//build/config/win:windowed", | |
| 846 ] | |
| 847 | |
| 848 defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ] | |
| 849 | |
| 850 deps = [ | |
| 851 ":dpi_aware_exe_manifest", | |
| 852 ":remoting_core", | |
| 853 ":remoting_windows_resources", | |
| 854 ] | |
| 855 | |
| 856 sources = [ | |
| 857 "$root_gen_dir/remoting/version.rc", | |
| 858 "win/entry_point.cc", | |
| 859 ] | |
| 860 | |
| 861 output_name = "remoting_host" | |
| 862 | |
| 863 ldflags = [ | |
| 864 "/ENTRY:HostEntryPoint", | |
| 865 # "/NODEFAULTLIB", | |
| 866 ] | |
| 867 } | |
| 868 } else { | |
| 869 executable("remoting_me2me_host") { | |
| 870 configs += [ "//remoting:version" ] | |
| 871 | |
| 872 sources = [ | |
| 873 "host_main.cc", | |
| 874 "host_main.h", | |
| 875 ] | |
| 876 | |
| 877 if (is_mac && is_chrome_branded && is_official_build) { | |
| 878 defines = [ "REMOTING_ENABLE_BREAKPAD" ] | |
| 879 } | |
| 880 | |
| 881 deps = [ | |
| 882 ":credits", | |
| 883 ":remoting_me2me_host_static", | |
| 884 "//build/config/sanitizers:deps", | |
| 885 ] | |
| 886 } | |
| 887 | |
| 888 if (is_linux) { | |
| 889 copy("remoting_me2me_host_copy_script") { | |
| 890 sources = [ | |
| 891 "linux/linux_me2me_host.py", | |
| 892 ] | |
| 893 outputs = [ | |
| 894 "$root_build_dir/remoting/chrome-remote-desktop", | |
| 895 ] | |
| 896 } | |
| 897 copy("remoting_me2me_host_copy_host") { | |
| 898 sources = [ | |
| 899 "linux/remoting_me2me_host_wrapper.sh", | |
| 900 ] | |
| 901 outputs = [ | |
| 902 "$root_build_dir/remoting/chrome-remote-desktop-host", | |
| 903 ] | |
| 904 deps = [ | |
| 905 ":remoting_me2me_host", | |
| 906 ] | |
| 907 } | |
| 908 group("remoting_dev_me2me_host") { | |
| 909 deps = [ | |
| 910 ":remoting_me2me_host", | |
| 911 ":remoting_me2me_host_copy_host", | |
| 912 ":remoting_me2me_host_copy_script", | |
| 913 ] | |
| 914 } | |
| 915 } | |
| 916 | |
| 917 executable("native_messaging_host") { | |
| 918 sources = [ | |
| 919 "setup/me2me_native_messaging_host_entry_point.cc", | |
| 920 "setup/me2me_native_messaging_host_main.cc", | |
| 921 "setup/me2me_native_messaging_host_main.h", | |
| 922 ] | |
| 923 | |
| 924 deps = [ | |
| 925 ":remoting_infoplist_strings", | |
| 926 "//base", | |
| 927 "//remoting/base:breakpad", | |
| 928 "//remoting/host", | |
| 929 "//remoting/host/native_messaging", | |
| 930 "//remoting/host/setup", | |
| 931 ] | |
| 932 | |
| 933 configs += [ "//build/config/compiler:wexit_time_destructors" ] | |
| 934 | |
| 935 # The |major|, |build| and |patch| versions are inherited from Chrome. | |
| 936 # Since Chrome's |minor| version is always '0', we replace it with a | |
| 937 # Chromoting-specific patch version. | |
| 938 defines = [ "VERSION=" + "$chrome_version_major" + "." + | |
| 939 "$remoting_version_patch" + "." + "$chrome_version_build" + | |
| 940 "." + "$chrome_version_patch" ] | |
| 941 | |
| 942 if (is_mac) { | |
| 943 assert(false, "not implemented on mac yet") | |
| 944 } | |
| 945 } | |
| 946 } | |
| 947 | |
| 948 if (is_chrome_branded && enable_me2me_host && is_linux && !is_chromeos) { | |
| 949 # TODO(GYP): add support for archive_chromoting_tests variable? | |
| 950 | |
| 951 import("//build/config/zip.gni") | |
| 952 | |
| 953 build_deb_script = "installer/linux/build_deb.py" | |
| 954 deb_filename = | |
| 955 "$root_build_dir/" + exec_script(build_deb_script, | |
| 956 [ | |
| 957 "-p", | |
| 958 "-s", | |
| 959 rebase_path("//"), | |
| 960 ], | |
| 961 "string", | |
| 962 [ "installer/linux/build-deb.sh" ]) | |
| 963 changes_filename = | |
| 964 "$root_build_dir/" + get_path_info(deb_filename, "name") + ".changes" | |
| 965 | |
| 966 packaging_outputs = [ | |
| 967 deb_filename, | |
| 968 changes_filename, | |
| 969 | |
| 970 # TODO(GYP): Check that these are generated by build_deb.py. | |
| 971 #"$root_build_dir/remoting_me2me_host.debug", | |
| 972 #"$root_build_dir/remoting_start_host.debug", | |
| 973 #"$root_build_dir/native_messaging_host.debug", | |
| 974 #"$root_build_dir/remote_assistance_host.debug", | |
| 975 ] | |
| 976 | |
| 977 zip("remoting_me2me_host_archive") { | |
| 978 # Store the installer package(s) into a zip file so there is a | |
| 979 # consistent filename to reference for build archiving (i.e. in | |
| 980 # FILES.cfg). This also avoids possible conflicts with "wildcard" | |
| 981 # package handling in other build/signing scripts. | |
| 982 inputs = packaging_outputs | |
| 983 output = "$root_build_dir/remoting-me2me-host-linux.zip" | |
| 984 deps = [ | |
| 985 ":remoting_me2me_host_copy", | |
| 986 ] | |
| 987 } | |
| 988 | |
| 989 copy("remoting_me2me_host_copy") { | |
| 990 # Copy the debian package file, which has version info in it, | |
| 991 # to a consistewnt filename for use on Chromoting swarming bots. | |
| 992 sources = [ | |
| 993 deb_filename, | |
| 994 ] | |
| 995 outputs = [ | |
| 996 "$root_build_dir/remoting-me2me-host.deb", | |
| 997 ] | |
| 998 public_deps = [ | |
| 999 ":remoting_me2me_host_deb_installer", | |
| 1000 ] | |
| 1001 } | |
| 1002 | |
| 1003 action("remoting_me2me_host_deb_installer") { | |
| 1004 script = build_deb_script | |
| 1005 inputs = [ | |
| 1006 build_deb_script, | |
| 1007 "installer/linux/Makefile", | |
| 1008 "installer/linux/debian/chrome-remote-desktop.init", | |
| 1009 "installer/linux/debian/chrome-remote-desktop.pam", | |
| 1010 "installer/linux/debian/compat", | |
| 1011 "installer/linux/debian/control", | |
| 1012 "installer/linux/debian/copyright", | |
| 1013 "installer/linux/debian/postinst", | |
| 1014 "installer/linux/debian/preinst", | |
| 1015 "installer/linux/debian/rules", | |
| 1016 ] | |
| 1017 outputs = packaging_outputs | |
| 1018 sources = [ | |
| 1019 "installer/linux/build-deb.sh", | |
| 1020 ] | |
| 1021 args = [ | |
| 1022 "-s", | |
| 1023 rebase_path("//"), | |
| 1024 "-o", | |
| 1025 rebase_path("$root_build_dir"), | |
| 1026 ] | |
| 1027 | |
| 1028 deps = [ | |
| 1029 ":native_messaging_host", | |
| 1030 ":remoting_me2me_host", | |
| 1031 ":remoting_native_messaging_manifests", | |
| 1032 ":remoting_start_host", | |
| 1033 "//remoting/host/it2me:remote_assistance_host", | |
| 1034 "//remoting/resources", | |
| 1035 "//third_party/icu:icudata", | |
| 1036 ] | |
| 1037 } | |
| 1038 } else if (is_win) { | |
| 1039 # GYP version: //remoting/remoting_host_win.gypi:remoting_me2me_host_archi
ve | |
| 1040 action("remoting_me2me_host_archive") { | |
| 1041 script = "//remoting/host/installer/build-installer-archive.py" | |
| 1042 | |
| 1043 deps = [ | |
| 1044 ":credits", | |
| 1045 ":remote_security_key", | |
| 1046 ":remoting_core", | |
| 1047 ":remoting_desktop", | |
| 1048 ":remoting_me2me_host", | |
| 1049 ":remoting_native_messaging_host", | |
| 1050 ":remoting_native_messaging_manifests", | |
| 1051 ":remoting_start_host", | |
| 1052 "it2me:remote_assistance_host", | |
| 1053 "//third_party/icu:icudata", | |
| 1054 ] | |
| 1055 | |
| 1056 _output = "$root_out_dir/remoting-me2me-host-$target_os.zip" | |
| 1057 | |
| 1058 outputs = [ | |
| 1059 _output, | |
| 1060 ] | |
| 1061 if (is_chrome_branded) { | |
| 1062 _branding = "Chrome" | |
| 1063 } else { | |
| 1064 _branding = "Chromium" | |
| 1065 } | |
| 1066 | |
| 1067 if (is_official_build) { | |
| 1068 _official_build = "1" | |
| 1069 } else { | |
| 1070 _official_build = "0" | |
| 1071 } | |
| 1072 | |
| 1073 _generated_files = rebase_path( | |
| 1074 [ | |
| 1075 "$root_out_dir/remote_assistance_host.exe", | |
| 1076 "$root_out_dir/remote_security_key.exe", | |
| 1077 "$root_out_dir/remoting_core.dll", | |
| 1078 "$root_out_dir/remoting_desktop.exe", | |
| 1079 "$root_out_dir/remoting_host.exe", | |
| 1080 "$root_out_dir/remoting_native_messaging_host.exe", | |
| 1081 "$root_out_dir/remoting_start_host.exe", | |
| 1082 "$root_gen_dir/remoting/CREDITS.txt", | |
| 1083 "$root_out_dir/remoting/com.google.chrome.remote_assistance.js
on", | |
| 1084 "$root_out_dir/remoting/com.google.chrome.remote_desktop.json"
, | |
| 1085 "$root_out_dir/icudtl.dat", | |
| 1086 ], | |
| 1087 root_build_dir) | |
| 1088 _extra_files = [] | |
| 1089 if (is_chrome_branded) { | |
| 1090 if (target_cpu == "x64") { | |
| 1091 _redist_cpu_path = "amd64" | |
| 1092 } else { | |
| 1093 _redist_cpu_path = "x86" | |
| 1094 } | |
| 1095 _generated_files += | |
| 1096 [ rebase_path("//third_party/platformsdk_win7/files/Redist/" + | |
| 1097 "$_redist_cpu_path/sas.dll", | |
| 1098 root_build_dir) ] | |
| 1099 _extra_files += [ "files/sas.dll" ] | |
| 1100 } | |
| 1101 | |
| 1102 args = [ | |
| 1103 rebase_path("$root_gen_dir/installation", root_build_dir), | |
| 1104 rebase_path(_output, root_build_dir), | |
| 1105 "--source-file-roots", | |
| 1106 rebase_path("//remoting/host/installer/win"), | |
| 1107 "--source-files", | |
| 1108 rebase_path("//remoting/host/installer/win/chromoting.wxs"), | |
| 1109 rebase_path("//remoting/host/installer/win/parameters.json"), | |
| 1110 | |
| 1111 # Input files | |
| 1112 "--generated-files", | |
| 1113 ] + _generated_files + | |
| 1114 [ | |
| 1115 rebase_path("//remoting/resources/chromoting.ico"), | |
| 1116 | |
| 1117 # Position of files in zip file | |
| 1118 "--generated-files-dst", | |
| 1119 "files/remote_assistance_host.exe", | |
| 1120 "files/remote_security_key.exe", | |
| 1121 "files/remoting_core.dll", | |
| 1122 "files/remoting_desktop.exe", | |
| 1123 "files/remoting_host.exe", | |
| 1124 "files/remoting_native_messaging_host.exe", | |
| 1125 "files/remoting_start_host.exe", | |
| 1126 "files/CREDITS.txt", | |
| 1127 "files/com.google.chrome.remote_assistance.json", | |
| 1128 "files/com.google.chrome.remote_desktop.json", | |
| 1129 "files/chromoting.ico", | |
| 1130 "files/icudtl.dat", | |
| 1131 ] + _extra_files + # Defs | |
| 1132 [ | |
| 1133 "--defs", | |
| 1134 "BRANDING=$_branding", | |
| 1135 "DAEMON_CONTROLLER_CLSID={$daemon_controller_clsid}", | |
| 1136 "RDP_DESKTOP_SESSION_CLSID={$rdp_desktop_session_clsid}", | |
| 1137 "VERSION=$chrome_version_full", | |
| 1138 "OFFICIAL_BUILD=$_official_build", | |
| 1139 ] | |
| 1140 } | |
| 1141 } else { | |
| 1142 group("remoting_me2me_host_archive") { | |
| 1143 } | |
| 1144 } | |
| 1145 | |
| 1146 if (is_win && is_chrome_branded) { | |
| 1147 if (target_cpu == "x86") { | |
| 1148 # The script uses "ia32" instead of "x86". | |
| 1149 msi_script_arch = "ia32" | |
| 1150 } else { | |
| 1151 msi_script_arch = target_cpu | |
| 1152 } | |
| 1153 | |
| 1154 # GYP version: remoting/remoting_host_win.gyp:remoting_host_installation | |
| 1155 action("remoting_host_installation") { | |
| 1156 deps = [ | |
| 1157 "//remoting/host:remoting_me2me_host_archive", | |
| 1158 ] | |
| 1159 script = "../tools/zip2msi.py" | |
| 1160 outputs = [ | |
| 1161 "$root_out_dir/chromoting.msi", | |
| 1162 ] | |
| 1163 args = [ | |
| 1164 "--wix_path", | |
| 1165 rebase_path("//third_party/wix"), | |
| 1166 "--intermediate_dir", | |
| 1167 rebase_path("$root_gen_dir/installation", root_build_dir), | |
| 1168 "--target_arch", | |
| 1169 msi_script_arch, | |
| 1170 rebase_path("$root_out_dir/remoting-me2me-host-$current_os.zip", | |
| 1171 root_build_dir), | |
| 1172 rebase_path(outputs[0], root_build_dir), | |
| 1173 ] | |
| 1174 } | |
| 1175 } | 1161 } |
| 1176 } | 1162 } |
| 1177 } | 1163 } |
| OLD | NEW |