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") | |
nicholss
2016/06/10 16:40:30
See this file for where some of the old vars had b
| |
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/host/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", |
Sergey Ulanov
2016/06/09 23:37:30
If I understand correctly this comment is the reas
nicholss
2016/06/10 16:40:31
They are set by importing on remoting_versiong.gni
| |
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 | |
Sergey Ulanov
2016/06/09 23:37:30
This is an outdated TODO. Please remove.
nicholss
2016/06/10 16:40:30
Done.
| |
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 |