Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(403)

Side by Side Diff: remoting/host/win/BUILD.gn

Issue 2308813002: Moving CRD Windows targets to subdirectories. (Closed)
Patch Set: The exec needs to be called native_messaging_host for downstream installers to work. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « remoting/host/setup/BUILD.gn ('k') | remoting/host/win/chromoting_lib.rc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright 2016 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import("//remoting/build/config/remoting_build.gni")
6 import("//remoting/host/installer/win/generate_clsids.gni")
7 import("//build/toolchain/win/midl.gni")
8 import("//build/win/message_compiler.gni")
9
10 group("all") {
11 testonly = true
12
13 deps = [
14 ":remoting_console",
15 ":remoting_desktop",
16 ":remoting_me2me_host",
17 ":remoting_native_messaging_host",
18 "//remoting/host/security_key:remote_security_key",
19 ]
20 }
21
22 # Reference this manifest to indicate that a process is per-monitor DPI aware.
23 dpi_aware_manifest = "//remoting/host/win/dpi_aware.manifest"
24
25 # Reference this manifest to give the binary the uiAccess privilege.
26 enable_uiaccess_manifest = "//remoting/host/win/enable_uiaccess.manifest"
27
28 # Depending on this target gives a default executable manifest with the addition
29 # of the DPI aware tag.
30 windows_manifest("dpi_aware_exe_manifest") {
31 sources = [
32 as_invoker_manifest,
33 common_controls_manifest,
34 default_compatibility_manifest,
35 dpi_aware_manifest,
36 ]
37 type = "exe"
38 }
39
40 # Depending on this target gives a default executable manifest with the addition
41 # of the DPI aware tag and a requestedExecutionLevel of requireAdministrator.
42 windows_manifest("dpi_aware_elevated_exe_manifest") {
43 sources = [
44 common_controls_manifest,
45 default_compatibility_manifest,
46 dpi_aware_manifest,
47 require_administrator_manifest,
48 ]
49 type = "exe"
50 }
51
52 # Depending on this target gives the executable a default manifest with the
53 # addition of the DPI aware tag and enables uiAccess.
54 windows_manifest("dpi_aware_uiaccess_exe_manifest") {
55 sources = [
56 common_controls_manifest,
57 default_compatibility_manifest,
58 dpi_aware_manifest,
59 enable_uiaccess_manifest,
60 ]
61 type = "exe"
62 }
63
64 source_set("win") {
65 sources = [
66 "com_imported_mstscax.tlh",
67 "com_security.cc",
68 "com_security.h",
69 "elevation_helpers.cc",
70 "elevation_helpers.h",
71 "launch_process_with_token.cc",
72 "launch_process_with_token.h",
73 "omaha.cc",
74 "omaha.h",
75 "rdp_client.cc",
76 "rdp_client.h",
77 "rdp_client_window.cc",
78 "rdp_client_window.h",
79 "security_descriptor.cc",
80 "security_descriptor.h",
81 "session_desktop_environment.cc",
82 "session_desktop_environment.h",
83 "session_input_injector.cc",
84 "session_input_injector.h",
85 "window_station_and_desktop.cc",
86 "window_station_and_desktop.h",
87 "worker_process_launcher.cc",
88 "worker_process_launcher.h",
89 "wts_terminal_monitor.cc",
90 "wts_terminal_monitor.h",
91 "wts_terminal_observer.h",
92 ]
93
94 configs += [
95 "//build/config/compiler:wexit_time_destructors",
96 "//remoting/build/config:version",
97 ]
98
99 defines = [ "WEBRTC_CHROMIUM_BUILD" ]
100
101 deps = [
102 "//base:i18n",
103 "//components/policy/core/common",
104 "//content/public/common",
105 "//crypto",
106 "//device/power_save_blocker",
107 "//google_apis",
108 "//ipc",
109 "//remoting/base",
110 "//remoting/host/security_key",
111 "//remoting/host/win:messages",
112 "//remoting/host/win:remoting_lib_idl",
113 "//remoting/protocol",
114 "//remoting/resources",
115 "//ui/base",
116 "//ui/events:dom_keycode_converter",
117 "//ui/events/platform",
118 ]
119
120 if (enable_configuration_policy) {
121 deps += [ "//components/policy:generated" ]
122 }
123
124 if (enable_webrtc) {
125 deps += [ "//third_party/webrtc/modules/desktop_capture" ]
126 }
127 }
128
129 source_set("unit_tests") {
130 testonly = true
131
132 sources = [
133 "elevated_native_messaging_host.cc",
134 "elevated_native_messaging_host.h",
135 "launch_native_messaging_host_process.cc",
136 "launch_native_messaging_host_process.h",
137 "rdp_client_unittest.cc",
138 "worker_process_launcher_unittest.cc",
139 ]
140
141 deps = [
142 "//remoting/host",
143 "//remoting/host:test_support",
144 "//remoting/host/it2me:common",
145 "//remoting/host/native_messaging",
146 "//remoting/host/security_key:unit_tests",
147 "//remoting/host/setup",
148 "//remoting/proto",
149 "//remoting/resources",
150 "//skia",
151 "//testing/gmock",
152 "//testing/gtest",
153 ]
154 }
155
156 action("generate_idl") {
157 script = "//build/util/version.py"
158
159 inputs = [
160 "chromoting_lib_idl.templ",
161 ]
162 outputs = [
163 "$target_gen_dir/chromoting_lib.idl",
164 ]
165
166 args = [
167 "-e",
168 "DAEMON_CONTROLLER_CLSID='$daemon_controller_clsid'",
169 "-e",
170 "RDP_DESKTOP_SESSION_CLSID='$rdp_desktop_session_clsid'",
171 rebase_path(inputs[0], root_build_dir),
172 rebase_path(outputs[0], root_build_dir),
173 ]
174 }
175
176 midl("remoting_lib_idl") {
177 sources = get_target_outputs(":generate_idl")
178 deps = [
179 ":generate_idl",
180 ]
181 }
182
183 config("MIDL_config") {
184 if (is_clang) {
185 cflags = [
186 # MIDL generated code has a habit of omitting optional braces.
187 "-Wno-missing-braces",
188
189 # Source files generated by the MIDL compiler trigger warnings with
190 # -Wincompatible-pointer-types enabled.
191 "-Wno-incompatible-pointer-types",
192
193 # Generated code contains unused variables.
194 "-Wno-unused-variable",
195
196 # PROXYFILE_LIST_START is an extern with initializer.
197 "-Wno-extern-initializer",
198 ]
199 }
200 }
201
202 static_library("remoting_lib_ps") {
203 configs += [ ":MIDL_config" ]
204
205 defines = [
206 "ENTRY_PREFIX=Ps",
207 "REGISTER_PROXY_DLL",
208 ]
209
210 deps = [
211 ":remoting_lib_idl",
212 ]
213
214 sources = [
215 "$root_gen_dir/remoting/host/win/chromoting_lib.dlldata.c",
216 "$root_gen_dir/remoting/host/win/chromoting_lib_p.c",
217 ]
218 }
219
220 # Makes the .mc file from the .mc.jinja file.
221 remoting_localize("messages_localizing") {
222 sources = [
223 "host_messages.mc.jinja2",
224 ]
225 locales = remoting_locales
226 locale_dir = webapp_locale_dir
227 encoding = "utf-16"
228
229 # This target is funny. It only produces one file and the output doesn't
230 # match the input. We want to generate remoting_host_messages.mc from
231 # host_messages.mg.jinja2. GN complains if it doesn't see a pattern in the
232 # output, so the following pattern produces the name we want with a template
233 # based on the input.
234 #
235 # TODO: This is for GYP compat. We should just make the names match instead.
236 output = "$target_gen_dir/remoting_{{source_name_part}}"
237 }
238
239 # Makes the .h/.rc files from the .mc file.
240 message_compiler("messages") {
241 compile_generated_code = false
242 sources = get_target_outputs(":messages_localizing")
243 deps = [
244 ":messages_localizing",
245 ]
246 }
247
248 executable("remoting_console") {
249 configs += [ "//build/config/compiler:wexit_time_destructors" ]
250
251 defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ]
252
253 deps = [
254 ":dpi_aware_exe_manifest",
255 ":remoting_core",
256 ":remoting_windows_resources",
257 ]
258
259 sources = [
260 "$root_gen_dir/remoting/version.rc",
261 "entry_point.cc",
262 ]
263
264 ldflags = [
265 "/ENTRY:HostEntryPoint",
266 # "/NODEFAULTLIB",
267 ]
268 }
269
270 executable("remoting_me2me_host") {
271 configs += [
272 "//build/config/compiler:wexit_time_destructors",
273 "//build/config/win:windowed",
274 "//remoting/build/config:remoting_me2me_host",
275 ]
276
277 defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ]
278
279 deps = [
280 ":dpi_aware_exe_manifest",
281 ":remoting_core",
282 ":remoting_windows_resources",
283 ]
284
285 sources = [
286 "$root_gen_dir/remoting/version.rc",
287 "entry_point.cc",
288 ]
289
290 output_name = "remoting_host"
291
292 ldflags = [ "/ENTRY:HostEntryPoint" ]
293 }
294
295 shared_library("remoting_core") {
296 configs += [ "//build/config/compiler:wexit_time_destructors" ]
297
298 defines = host_predefines + [
299 "_ATL_APARTMENT_THREADED",
300 "_ATL_CSTRING_EXPLICIT_CONSTRUCTORS",
301 "_ATL_NO_AUTOMATIC_NAMESPACE",
302 "_ATL_NO_EXCEPTIONS",
303 "BINARY=BINARY_CORE",
304 "DAEMON_CONTROLLER_CLSID=\"$daemon_controller_clsid\"",
305 "RDP_DESKTOP_SESSION_CLSID=\"$rdp_desktop_session_clsid\"",
306 "HOST_IMPLEMENTATION",
307 "ISOLATION_AWARE_ENABLED=1",
308 "STRICT",
309 "VERSION=$chrome_version_full",
310 ]
311
312 if (remoting_multi_process != 0 && remoting_rdp_session != 0) {
313 defines += [ "REMOTING_RDP_SESSION" ]
314 }
315
316 if (remoting_multi_process != 0) {
317 defines += [ "REMOTING_MULTI_PROCESS" ]
318 }
319
320 sources = [
321 "$root_gen_dir/remoting/core.rc",
322 "$root_gen_dir/remoting/host/win/remoting_host_messages.rc",
323 "$root_gen_dir/remoting/version.rc",
324 "//remoting/host/desktop_process_main.cc",
325 "//remoting/host/host_main.cc",
326 "//remoting/host/host_main.h",
327 "//remoting/host/it2me/it2me_native_messaging_host_main.cc",
328 "//remoting/host/it2me/it2me_native_messaging_host_main.h",
329 "//remoting/host/setup/host_starter.cc",
330 "//remoting/host/setup/host_starter.h",
331 "//remoting/host/setup/me2me_native_messaging_host_main.cc",
332 "//remoting/host/setup/me2me_native_messaging_host_main.h",
333 "//remoting/host/setup/start_host_main.cc",
334 "//remoting/host/setup/start_host_main.h",
335 "//remoting/host/worker_process_ipc_delegate.h",
336 "chromoting_lib.rc",
337 "chromoting_module.cc",
338 "chromoting_module.h",
339 "core.cc",
340 "core_resource.h",
341 "elevated_native_messaging_host.cc",
342 "elevated_native_messaging_host.h",
343 "host_service.cc",
344 "host_service.h",
345 "launch_native_messaging_host_process.cc",
346 "launch_native_messaging_host_process.h",
347 "rdp_desktop_session.cc",
348 "rdp_desktop_session.h",
349 "unprivileged_process_delegate.cc",
350 "unprivileged_process_delegate.h",
351 "wts_session_process_delegate.cc",
352 "wts_session_process_delegate.h",
353 ]
354
355 deps = [
356 ":messages",
357 ":remoting_lib_idl",
358 ":remoting_lib_ps",
359 ":remoting_windows_resources",
360 ":win",
361 "//base",
362 "//base:base_static",
363 "//base/allocator",
364 "//base/third_party/dynamic_annotations",
365 "//build/win:default_exe_manifest",
366 "//ipc",
367 "//net",
368 "//remoting/base",
369 "//remoting/base:breakpad",
370 "//remoting/codec",
371 "//remoting/host:host",
372 "//remoting/host:remoting_me2me_host_static",
373 "//remoting/host/it2me:common",
374 "//remoting/host/native_messaging",
375 "//remoting/host/security_key:main",
376 "//remoting/host/setup",
377 "//remoting/protocol",
378 "//sandbox/win:sandbox", # Should always use Windows version
379 "//third_party/webrtc/modules/desktop_capture",
380 ]
381
382 ldflags = [
383 "/EXPORT:DllGetClassObject=PsDllGetClassObject,PRIVATE",
384 "/EXPORT:DllCanUnloadNow=PsDllCanUnloadNow,PRIVATE",
385 "/EXPORT:DllRegisterServer=PsDllRegisterServer,PRIVATE",
386 "/EXPORT:DllUnregisterServer=PsDllUnregisterServer,PRIVATE",
387 ]
388
389 libs = [
390 "comctl32.lib",
391 "rpcns4.lib",
392 "rpcrt4.lib",
393 "sas.lib",
394 "uuid.lib",
395 "wtsapi32.lib",
396 ]
397
398 if (is_clang) {
399 cflags = [ "-Wno-header-hygiene" ]
400 }
401 }
402
403 executable("remoting_desktop") {
404 configs += [
405 "//build/config/compiler:wexit_time_destructors",
406 "//build/config/win:windowed",
407 ]
408
409 defines = host_predefines + [ "BINARY=BINARY_DESKTOP" ]
410
411 deps = [
412 ":remoting_core",
413 ":remoting_windows_resources",
414 ]
415
416 if (is_official_build) {
417 deps += [ ":dpi_aware_elevated_exe_manifest" ]
418 } else {
419 deps += [ ":dpi_aware_exe_manifest" ]
420 }
421
422 sources = [
423 "$root_gen_dir/remoting/version.rc",
424 "entry_point.cc",
425 ]
426
427 ldflags = [
428 "/ENTRY:HostEntryPoint",
429 # "/NODEFAULTLIB",
430 ]
431 }
432
433 executable("remoting_native_messaging_host") {
434 configs += [ "//build/config/compiler:wexit_time_destructors" ]
435
436 defines = host_predefines + [ "BINARY=BINARY_NATIVE_MESSAGING_HOST" ]
437
438 deps = [
439 ":remoting_core",
440 ":remoting_windows_resources",
441 "//build/win:default_exe_manifest",
442 ]
443
444 sources = [
445 "$root_gen_dir/remoting/version.rc",
446 "../setup/me2me_native_messaging_host_entry_point.cc",
447 ]
448 }
449
450 remoting_localize("remoting_windows_resources") {
451 deps = [
452 "//remoting/resources",
453 ]
454
455 sources = [
456 "core.rc.jinja2",
457 "version.rc.jinja2",
458 ]
459
460 # TODO(zijiehe): Export lastchange_path from
461 # //chrome/version.gni:process_version
462 variables = [
463 rebase_path(chrome_version_file),
464 rebase_path(remoting_version_file),
465 rebase_path("//build/util/LASTCHANGE"),
466 ]
467
468 output = "$root_gen_dir/remoting/{{source_name_part}}"
469
470 locale_dir = webapp_locale_dir
471
472 encoding = "utf-16"
473
474 locales = remoting_locales
475 }
476 # TODO(GYP) More Windows remoting targets from remoting_host_win.gypi
OLDNEW
« no previous file with comments | « remoting/host/setup/BUILD.gn ('k') | remoting/host/win/chromoting_lib.rc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698