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

Unified 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 side-by-side diff with in-line comments
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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: remoting/host/win/BUILD.gn
diff --git a/remoting/host/win/BUILD.gn b/remoting/host/win/BUILD.gn
new file mode 100644
index 0000000000000000000000000000000000000000..e0888bcc220e1a615b1e79e825d3f7958a083731
--- /dev/null
+++ b/remoting/host/win/BUILD.gn
@@ -0,0 +1,476 @@
+# Copyright 2016 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//remoting/build/config/remoting_build.gni")
+import("//remoting/host/installer/win/generate_clsids.gni")
+import("//build/toolchain/win/midl.gni")
+import("//build/win/message_compiler.gni")
+
+group("all") {
+ testonly = true
+
+ deps = [
+ ":remoting_console",
+ ":remoting_desktop",
+ ":remoting_me2me_host",
+ ":remoting_native_messaging_host",
+ "//remoting/host/security_key:remote_security_key",
+ ]
+}
+
+# Reference this manifest to indicate that a process is per-monitor DPI aware.
+dpi_aware_manifest = "//remoting/host/win/dpi_aware.manifest"
+
+# Reference this manifest to give the binary the uiAccess privilege.
+enable_uiaccess_manifest = "//remoting/host/win/enable_uiaccess.manifest"
+
+# Depending on this target gives a default executable manifest with the addition
+# of the DPI aware tag.
+windows_manifest("dpi_aware_exe_manifest") {
+ sources = [
+ as_invoker_manifest,
+ common_controls_manifest,
+ default_compatibility_manifest,
+ dpi_aware_manifest,
+ ]
+ type = "exe"
+}
+
+# Depending on this target gives a default executable manifest with the addition
+# of the DPI aware tag and a requestedExecutionLevel of requireAdministrator.
+windows_manifest("dpi_aware_elevated_exe_manifest") {
+ sources = [
+ common_controls_manifest,
+ default_compatibility_manifest,
+ dpi_aware_manifest,
+ require_administrator_manifest,
+ ]
+ type = "exe"
+}
+
+# Depending on this target gives the executable a default manifest with the
+# addition of the DPI aware tag and enables uiAccess.
+windows_manifest("dpi_aware_uiaccess_exe_manifest") {
+ sources = [
+ common_controls_manifest,
+ default_compatibility_manifest,
+ dpi_aware_manifest,
+ enable_uiaccess_manifest,
+ ]
+ type = "exe"
+}
+
+source_set("win") {
+ sources = [
+ "com_imported_mstscax.tlh",
+ "com_security.cc",
+ "com_security.h",
+ "elevation_helpers.cc",
+ "elevation_helpers.h",
+ "launch_process_with_token.cc",
+ "launch_process_with_token.h",
+ "omaha.cc",
+ "omaha.h",
+ "rdp_client.cc",
+ "rdp_client.h",
+ "rdp_client_window.cc",
+ "rdp_client_window.h",
+ "security_descriptor.cc",
+ "security_descriptor.h",
+ "session_desktop_environment.cc",
+ "session_desktop_environment.h",
+ "session_input_injector.cc",
+ "session_input_injector.h",
+ "window_station_and_desktop.cc",
+ "window_station_and_desktop.h",
+ "worker_process_launcher.cc",
+ "worker_process_launcher.h",
+ "wts_terminal_monitor.cc",
+ "wts_terminal_monitor.h",
+ "wts_terminal_observer.h",
+ ]
+
+ configs += [
+ "//build/config/compiler:wexit_time_destructors",
+ "//remoting/build/config:version",
+ ]
+
+ defines = [ "WEBRTC_CHROMIUM_BUILD" ]
+
+ deps = [
+ "//base:i18n",
+ "//components/policy/core/common",
+ "//content/public/common",
+ "//crypto",
+ "//device/power_save_blocker",
+ "//google_apis",
+ "//ipc",
+ "//remoting/base",
+ "//remoting/host/security_key",
+ "//remoting/host/win:messages",
+ "//remoting/host/win:remoting_lib_idl",
+ "//remoting/protocol",
+ "//remoting/resources",
+ "//ui/base",
+ "//ui/events:dom_keycode_converter",
+ "//ui/events/platform",
+ ]
+
+ if (enable_configuration_policy) {
+ deps += [ "//components/policy:generated" ]
+ }
+
+ if (enable_webrtc) {
+ deps += [ "//third_party/webrtc/modules/desktop_capture" ]
+ }
+}
+
+source_set("unit_tests") {
+ testonly = true
+
+ sources = [
+ "elevated_native_messaging_host.cc",
+ "elevated_native_messaging_host.h",
+ "launch_native_messaging_host_process.cc",
+ "launch_native_messaging_host_process.h",
+ "rdp_client_unittest.cc",
+ "worker_process_launcher_unittest.cc",
+ ]
+
+ deps = [
+ "//remoting/host",
+ "//remoting/host:test_support",
+ "//remoting/host/it2me:common",
+ "//remoting/host/native_messaging",
+ "//remoting/host/security_key:unit_tests",
+ "//remoting/host/setup",
+ "//remoting/proto",
+ "//remoting/resources",
+ "//skia",
+ "//testing/gmock",
+ "//testing/gtest",
+ ]
+}
+
+action("generate_idl") {
+ script = "//build/util/version.py"
+
+ inputs = [
+ "chromoting_lib_idl.templ",
+ ]
+ outputs = [
+ "$target_gen_dir/chromoting_lib.idl",
+ ]
+
+ args = [
+ "-e",
+ "DAEMON_CONTROLLER_CLSID='$daemon_controller_clsid'",
+ "-e",
+ "RDP_DESKTOP_SESSION_CLSID='$rdp_desktop_session_clsid'",
+ rebase_path(inputs[0], root_build_dir),
+ rebase_path(outputs[0], root_build_dir),
+ ]
+}
+
+midl("remoting_lib_idl") {
+ sources = get_target_outputs(":generate_idl")
+ deps = [
+ ":generate_idl",
+ ]
+}
+
+config("MIDL_config") {
+ if (is_clang) {
+ cflags = [
+ # MIDL generated code has a habit of omitting optional braces.
+ "-Wno-missing-braces",
+
+ # Source files generated by the MIDL compiler trigger warnings with
+ # -Wincompatible-pointer-types enabled.
+ "-Wno-incompatible-pointer-types",
+
+ # Generated code contains unused variables.
+ "-Wno-unused-variable",
+
+ # PROXYFILE_LIST_START is an extern with initializer.
+ "-Wno-extern-initializer",
+ ]
+ }
+}
+
+static_library("remoting_lib_ps") {
+ configs += [ ":MIDL_config" ]
+
+ defines = [
+ "ENTRY_PREFIX=Ps",
+ "REGISTER_PROXY_DLL",
+ ]
+
+ deps = [
+ ":remoting_lib_idl",
+ ]
+
+ sources = [
+ "$root_gen_dir/remoting/host/win/chromoting_lib.dlldata.c",
+ "$root_gen_dir/remoting/host/win/chromoting_lib_p.c",
+ ]
+}
+
+# Makes the .mc file from the .mc.jinja file.
+remoting_localize("messages_localizing") {
+ sources = [
+ "host_messages.mc.jinja2",
+ ]
+ locales = remoting_locales
+ locale_dir = webapp_locale_dir
+ encoding = "utf-16"
+
+ # This target is funny. It only produces one file and the output doesn't
+ # match the input. We want to generate remoting_host_messages.mc from
+ # host_messages.mg.jinja2. GN complains if it doesn't see a pattern in the
+ # output, so the following pattern produces the name we want with a template
+ # based on the input.
+ #
+ # TODO: This is for GYP compat. We should just make the names match instead.
+ output = "$target_gen_dir/remoting_{{source_name_part}}"
+}
+
+# Makes the .h/.rc files from the .mc file.
+message_compiler("messages") {
+ compile_generated_code = false
+ sources = get_target_outputs(":messages_localizing")
+ deps = [
+ ":messages_localizing",
+ ]
+}
+
+executable("remoting_console") {
+ configs += [ "//build/config/compiler:wexit_time_destructors" ]
+
+ defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ]
+
+ deps = [
+ ":dpi_aware_exe_manifest",
+ ":remoting_core",
+ ":remoting_windows_resources",
+ ]
+
+ sources = [
+ "$root_gen_dir/remoting/version.rc",
+ "entry_point.cc",
+ ]
+
+ ldflags = [
+ "/ENTRY:HostEntryPoint",
+ # "/NODEFAULTLIB",
+ ]
+}
+
+executable("remoting_me2me_host") {
+ configs += [
+ "//build/config/compiler:wexit_time_destructors",
+ "//build/config/win:windowed",
+ "//remoting/build/config:remoting_me2me_host",
+ ]
+
+ defines = host_predefines + [ "BINARY=BINARY_HOST_ME2ME" ]
+
+ deps = [
+ ":dpi_aware_exe_manifest",
+ ":remoting_core",
+ ":remoting_windows_resources",
+ ]
+
+ sources = [
+ "$root_gen_dir/remoting/version.rc",
+ "entry_point.cc",
+ ]
+
+ output_name = "remoting_host"
+
+ ldflags = [ "/ENTRY:HostEntryPoint" ]
+}
+
+shared_library("remoting_core") {
+ configs += [ "//build/config/compiler:wexit_time_destructors" ]
+
+ defines = host_predefines + [
+ "_ATL_APARTMENT_THREADED",
+ "_ATL_CSTRING_EXPLICIT_CONSTRUCTORS",
+ "_ATL_NO_AUTOMATIC_NAMESPACE",
+ "_ATL_NO_EXCEPTIONS",
+ "BINARY=BINARY_CORE",
+ "DAEMON_CONTROLLER_CLSID=\"$daemon_controller_clsid\"",
+ "RDP_DESKTOP_SESSION_CLSID=\"$rdp_desktop_session_clsid\"",
+ "HOST_IMPLEMENTATION",
+ "ISOLATION_AWARE_ENABLED=1",
+ "STRICT",
+ "VERSION=$chrome_version_full",
+ ]
+
+ if (remoting_multi_process != 0 && remoting_rdp_session != 0) {
+ defines += [ "REMOTING_RDP_SESSION" ]
+ }
+
+ if (remoting_multi_process != 0) {
+ defines += [ "REMOTING_MULTI_PROCESS" ]
+ }
+
+ sources = [
+ "$root_gen_dir/remoting/core.rc",
+ "$root_gen_dir/remoting/host/win/remoting_host_messages.rc",
+ "$root_gen_dir/remoting/version.rc",
+ "//remoting/host/desktop_process_main.cc",
+ "//remoting/host/host_main.cc",
+ "//remoting/host/host_main.h",
+ "//remoting/host/it2me/it2me_native_messaging_host_main.cc",
+ "//remoting/host/it2me/it2me_native_messaging_host_main.h",
+ "//remoting/host/setup/host_starter.cc",
+ "//remoting/host/setup/host_starter.h",
+ "//remoting/host/setup/me2me_native_messaging_host_main.cc",
+ "//remoting/host/setup/me2me_native_messaging_host_main.h",
+ "//remoting/host/setup/start_host_main.cc",
+ "//remoting/host/setup/start_host_main.h",
+ "//remoting/host/worker_process_ipc_delegate.h",
+ "chromoting_lib.rc",
+ "chromoting_module.cc",
+ "chromoting_module.h",
+ "core.cc",
+ "core_resource.h",
+ "elevated_native_messaging_host.cc",
+ "elevated_native_messaging_host.h",
+ "host_service.cc",
+ "host_service.h",
+ "launch_native_messaging_host_process.cc",
+ "launch_native_messaging_host_process.h",
+ "rdp_desktop_session.cc",
+ "rdp_desktop_session.h",
+ "unprivileged_process_delegate.cc",
+ "unprivileged_process_delegate.h",
+ "wts_session_process_delegate.cc",
+ "wts_session_process_delegate.h",
+ ]
+
+ deps = [
+ ":messages",
+ ":remoting_lib_idl",
+ ":remoting_lib_ps",
+ ":remoting_windows_resources",
+ ":win",
+ "//base",
+ "//base:base_static",
+ "//base/allocator",
+ "//base/third_party/dynamic_annotations",
+ "//build/win:default_exe_manifest",
+ "//ipc",
+ "//net",
+ "//remoting/base",
+ "//remoting/base:breakpad",
+ "//remoting/codec",
+ "//remoting/host:host",
+ "//remoting/host:remoting_me2me_host_static",
+ "//remoting/host/it2me:common",
+ "//remoting/host/native_messaging",
+ "//remoting/host/security_key:main",
+ "//remoting/host/setup",
+ "//remoting/protocol",
+ "//sandbox/win:sandbox", # Should always use Windows version
+ "//third_party/webrtc/modules/desktop_capture",
+ ]
+
+ ldflags = [
+ "/EXPORT:DllGetClassObject=PsDllGetClassObject,PRIVATE",
+ "/EXPORT:DllCanUnloadNow=PsDllCanUnloadNow,PRIVATE",
+ "/EXPORT:DllRegisterServer=PsDllRegisterServer,PRIVATE",
+ "/EXPORT:DllUnregisterServer=PsDllUnregisterServer,PRIVATE",
+ ]
+
+ libs = [
+ "comctl32.lib",
+ "rpcns4.lib",
+ "rpcrt4.lib",
+ "sas.lib",
+ "uuid.lib",
+ "wtsapi32.lib",
+ ]
+
+ if (is_clang) {
+ cflags = [ "-Wno-header-hygiene" ]
+ }
+}
+
+executable("remoting_desktop") {
+ configs += [
+ "//build/config/compiler:wexit_time_destructors",
+ "//build/config/win:windowed",
+ ]
+
+ defines = host_predefines + [ "BINARY=BINARY_DESKTOP" ]
+
+ deps = [
+ ":remoting_core",
+ ":remoting_windows_resources",
+ ]
+
+ if (is_official_build) {
+ deps += [ ":dpi_aware_elevated_exe_manifest" ]
+ } else {
+ deps += [ ":dpi_aware_exe_manifest" ]
+ }
+
+ sources = [
+ "$root_gen_dir/remoting/version.rc",
+ "entry_point.cc",
+ ]
+
+ ldflags = [
+ "/ENTRY:HostEntryPoint",
+ # "/NODEFAULTLIB",
+ ]
+}
+
+executable("remoting_native_messaging_host") {
+ configs += [ "//build/config/compiler:wexit_time_destructors" ]
+
+ defines = host_predefines + [ "BINARY=BINARY_NATIVE_MESSAGING_HOST" ]
+
+ deps = [
+ ":remoting_core",
+ ":remoting_windows_resources",
+ "//build/win:default_exe_manifest",
+ ]
+
+ sources = [
+ "$root_gen_dir/remoting/version.rc",
+ "../setup/me2me_native_messaging_host_entry_point.cc",
+ ]
+}
+
+remoting_localize("remoting_windows_resources") {
+ deps = [
+ "//remoting/resources",
+ ]
+
+ sources = [
+ "core.rc.jinja2",
+ "version.rc.jinja2",
+ ]
+
+ # TODO(zijiehe): Export lastchange_path from
+ # //chrome/version.gni:process_version
+ variables = [
+ rebase_path(chrome_version_file),
+ rebase_path(remoting_version_file),
+ rebase_path("//build/util/LASTCHANGE"),
+ ]
+
+ output = "$root_gen_dir/remoting/{{source_name_part}}"
+
+ locale_dir = webapp_locale_dir
+
+ encoding = "utf-16"
+
+ locales = remoting_locales
+}
+# TODO(GYP) More Windows remoting targets from remoting_host_win.gypi
« 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