| # Copyright 2014 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import("//build/config/chromeos/ui_mode.gni") |
| import("//build/config/features.gni") |
| import("//build/config/ui.gni") |
| import("//remoting/remoting_locales.gni") |
| import("//remoting/remoting_options.gni") |
| import("//remoting/remoting_version.gni") |
| |
| if (is_win) { |
| import("//remoting/host/predefines_win.gni") |
| } |
| if (is_mac) { |
| import("//build/config/mac/rules.gni") |
| import("//third_party/icu/config.gni") |
| } |
| |
| source_set("constants") { |
| sources = [ |
| "it2me_constants.cc", |
| "it2me_constants.h", |
| ] |
| deps = [ "//remoting/host/native_messaging" ] |
| } |
| |
| source_set("helpers") { |
| sources = [ |
| "it2me_helpers.cc", |
| "it2me_helpers.h", |
| ] |
| deps = [ |
| ":constants", |
| "//base", |
| "//remoting/base", |
| ] |
| } |
| |
| source_set("common") { |
| sources = [ |
| "it2me_confirmation_dialog.h", |
| "it2me_confirmation_dialog_proxy.cc", |
| "it2me_confirmation_dialog_proxy.h", |
| "it2me_host.cc", |
| "it2me_host.h", |
| "it2me_native_messaging_host.cc", |
| "it2me_native_messaging_host.h", |
| ] |
| |
| deps = [] |
| |
| if (is_linux) { |
| sources += [ "it2me_confirmation_dialog_linux.cc" ] |
| } |
| |
| if (is_chromeos_ash) { |
| sources += [ "it2me_confirmation_dialog_chromeos.cc" ] |
| } |
| |
| if (is_mac) { |
| sources += [ "it2me_confirmation_dialog_mac.mm" ] |
| } |
| |
| if (is_win) { |
| sources += [ "it2me_confirmation_dialog_win.cc" ] |
| } |
| |
| configs += [ |
| "//build/config/compiler:wexit_time_destructors", |
| "//remoting/build/config:version", |
| ] |
| |
| public_deps = [ |
| ":constants", |
| ":helpers", |
| ] |
| |
| deps += [ |
| "//base:i18n", |
| "//build:chromeos_buildflags", |
| "//components/policy:policy_code_generate", |
| "//components/webrtc:thread_wrapper", |
| "//extensions/browser/api/messaging:native_messaging", |
| "//google_apis:google_apis", |
| "//mojo/core/embedder", |
| "//net", |
| "//remoting/base", |
| "//remoting/base:authorization", |
| "//remoting/host:common", |
| "//remoting/host/base", |
| "//remoting/host/native_messaging:native_messaging", |
| "//remoting/protocol", |
| "//remoting/resources", |
| "//remoting/signaling", |
| "//services/network/public/cpp:cpp", |
| ] |
| |
| if (is_linux) { |
| deps += [ |
| "//build/config/linux/gtk", |
| "//ui/base:base", |
| |
| # GTK pulls pangoft2, which requires HarfBuzz symbols. When linking |
| # our own HarfBuzz avoid mixing symbols from system HarfBuzz and |
| # our own through the indirect dependency to harfbuzz-ng here. |
| "//remoting/host/linux:wayland", |
| "//third_party:freetype_harfbuzz", |
| ] |
| } |
| if (is_chromeos_ash) { |
| deps += [ |
| "//chromeos/ui/vector_icons", |
| "//remoting/host/chromeos", |
| "//remoting/host/chromeos:host_event_reporter_impl", |
| "//ui/message_center", |
| "//ui/message_center/public/cpp", |
| ] |
| } |
| if (is_mac) { |
| deps += [ "//ui/base:base" ] |
| } |
| if (is_win) { |
| deps += [ |
| "//remoting/host/win", |
| "//remoting/host/win:elevated_native_messaging_host", |
| ] |
| } |
| } |
| |
| if (is_chromeos) { |
| source_set("chrome_os_host") { |
| sources = [ |
| "it2me_native_messaging_host_allowed_origins.cc", |
| "it2me_native_messaging_host_allowed_origins.h", |
| ] |
| |
| if (is_chromeos_lacros) { |
| sources += [ |
| "it2me_native_messaging_host_lacros.cc", |
| "it2me_native_messaging_host_lacros.h", |
| ] |
| deps = [ |
| ":constants", |
| ":helpers", |
| "//base", |
| "//chromeos/crosapi/mojom", |
| "//chromeos/lacros", |
| "//extensions/browser/api/messaging:native_messaging", |
| "//google_apis:google_apis", |
| "//remoting/host/native_messaging", |
| "//remoting/protocol:errors", |
| ] |
| } else { |
| sources += [ |
| "it2me_native_messaging_host_ash.cc", |
| "it2me_native_messaging_host_ash.h", |
| "it2me_native_messaging_host_chromeos.cc", |
| "it2me_native_messaging_host_chromeos.h", |
| ] |
| |
| deps = [ |
| ":common", |
| "//extensions/browser/api/messaging:native_messaging", |
| "//remoting/base:base", |
| "//remoting/host:common", |
| "//remoting/host/chromeos:enterprise_support", |
| "//remoting/host/chromeos:features", |
| "//remoting/host/mojom:mojom", |
| "//remoting/host/native_messaging", |
| "//skia", |
| ] |
| |
| public_deps = [ ":constants" ] |
| |
| if (use_ozone) { |
| deps += [ "//ui/ozone" ] |
| } |
| } |
| } |
| } |
| |
| if (!is_chromeos_ash && enable_remoting_host) { |
| source_set("main_headers") { |
| sources = [ "it2me_native_messaging_host_main.h" ] |
| deps = [ "//remoting/host:host_main_headers" ] |
| } |
| |
| source_set("main") { |
| configs += [ |
| "//build/config/compiler:wexit_time_destructors", |
| "//remoting/build/config:host_implementation", |
| "//remoting/build/config:version", |
| ] |
| sources = [ "it2me_native_messaging_host_main.cc" ] |
| deps = [ |
| ":common", |
| ":main_headers", |
| "//mojo/core/embedder", |
| "//net", |
| "//remoting/base", |
| "//remoting/base:breakpad", |
| "//remoting/host", |
| "//remoting/host:resources", |
| "//remoting/host:settings", |
| "//remoting/host/base", |
| "//remoting/host/native_messaging", |
| "//remoting/proto", |
| "//third_party/webrtc_overrides:webrtc_component", |
| "//ui/gfx", |
| ] |
| |
| if (is_linux) { |
| deps += [ "//remoting/host/linux:wayland" ] |
| } |
| if (is_linux && remoting_use_x11) { |
| defines = [ "REMOTING_USE_X11" ] |
| deps += [ |
| "//build/config/linux/gtk", |
| "//ui/events/platform/x11", |
| "//ui/gtk:gtk_config", |
| ] |
| } |
| |
| if (is_mac) { |
| deps += [ "//remoting/host/mac:permission_checking" ] |
| } |
| } |
| |
| if (is_win) { |
| executable("remote_assistance_host") { |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| |
| deps = [ |
| ":main_headers", |
| "//remoting/host/win:dpi_aware_exe_manifest", |
| "//remoting/host/win:remoting_core", |
| "//remoting/host/win:remoting_windows_resources", |
| ] |
| |
| sources = [ |
| "$root_gen_dir/remoting/version.rc", |
| "it2me_native_messaging_host_entry_point.cc", |
| ] |
| |
| defines = host_predefines + |
| [ "REMOTING_HOST_BINARY=BINARY_REMOTE_ASSISTANCE_HOST" ] |
| |
| ldflags = [ |
| # "/NODEFAULTLIB", TODO(zijiehe): Why IgnoreAllDefaultLibraries: true in |
| # GYP does not take effect? |
| "comctl32.lib", |
| ] |
| } |
| |
| executable("remote_assistance_host_uiaccess") { |
| configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| |
| deps = [ |
| ":main_headers", |
| "//remoting/host/win:remoting_core", |
| "//remoting/host/win:remoting_windows_resources", |
| ] |
| |
| sources = [ |
| "$root_gen_dir/remoting/version.rc", |
| "it2me_native_messaging_host_entry_point.cc", |
| ] |
| |
| defines = host_predefines + |
| [ "REMOTING_HOST_BINARY=BINARY_HOST_IT2ME_UIACCESS" ] |
| |
| ldflags = [ |
| # "/NODEFAULTLIB", TODO(zijiehe): Why IgnoreAllDefaultLibraries: true in |
| # GYP does not take effect? |
| "comctl32.lib", |
| ] |
| |
| # uiAccess requires a signed build to work correctly, so only enable the |
| # manifest flag when the binary will be properly signed. |
| if (is_official_build) { |
| deps += [ "//remoting/host/win:dpi_aware_uiaccess_exe_manifest" ] |
| } else { |
| deps += [ "//remoting/host/win:dpi_aware_exe_manifest" ] |
| } |
| } |
| } else { |
| if (is_mac) { |
| app_target_type = "mac_app_bundle" |
| |
| bundle_data("remote_assistance_host_icons") { |
| sources = [ |
| "//remoting/host/mac/remoting_host.icns", |
| "//remoting/resources/chromoting128.png", |
| ] |
| |
| outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] |
| } |
| |
| # remote_assistance_host-InfoPlist.strings |
| foreach(locale, remoting_locales_with_underscores) { |
| bundle_data("remote_assistance_host_strings_${locale}_bundle_data") { |
| sources = [ "$root_gen_dir/remoting/host/remote_assistance_host-InfoPlist.strings/$locale.lproj/InfoPlist.strings" ] |
| outputs = |
| [ "{{bundle_resources_dir}}/$locale.lproj/{{source_file_part}}" ] |
| deps = [ "//remoting/host:remoting_infoplist_strings" ] |
| } |
| } |
| |
| if (icu_use_data_file) { |
| bundle_data("remote_assistance_host_resources") { |
| sources = [ "$root_out_dir/icudtl.dat" ] |
| |
| outputs = [ "{{bundle_resources_dir}}/{{source_file_part}}" ] |
| |
| public_deps = [ "//third_party/icu:icudata" ] |
| } |
| } |
| } else { |
| app_target_type = "executable" |
| } |
| |
| target(app_target_type, "remote_assistance_host") { |
| if (is_mac) { |
| info_plist = "remote_assistance_host-Info.plist" |
| extra_substitutions = [ |
| "BUNDLE_ID=$remote_assistance_host_bundle_id", |
| "VERSION_FULL=$remoting_version_full", |
| "VERSION_SHORT=$remoting_version_short", |
| "MACOSX_DEPLOYMENT_TARGET=10.7", |
| ] |
| extra_configs = [ |
| "//build/config/compiler:wexit_time_destructors", |
| "//remoting/build/config:version", |
| ] |
| } else { |
| configs += [ |
| "//build/config/compiler:wexit_time_destructors", |
| "//remoting/build/config:version", |
| ] |
| } |
| |
| sources = [ "it2me_native_messaging_host_entry_point.cc" ] |
| |
| deps = [ ":main_headers" ] |
| if (is_mac) { |
| deps += [ ":main" ] |
| } else { |
| deps += [ "//remoting/host:remoting_core" ] |
| } |
| |
| if (is_mac) { |
| foreach(locale, remoting_locales_with_underscores) { |
| deps += [ |
| ":remote_assistance_host_strings_${locale}_bundle_data", |
| "//remoting/host/mac:remoting_host_locale_${locale}_bundle_data", |
| ] |
| } |
| deps += [ |
| ":remote_assistance_host_icons", |
| "//remoting/host:remoting_infoplist_strings", |
| "//remoting/resources:copy_locales", |
| ] |
| if (icu_use_data_file) { |
| deps += [ ":remote_assistance_host_resources" ] |
| } |
| } |
| } |
| } |
| } |