# Copyright 2014 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("//build/config/features.gni") import("//media/media_options.gni") import("//remoting/remoting_options.gni") import("//remoting/remoting_locales.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("common") { sources = [ "it2me_confirmation_dialog.h", "it2me_confirmation_dialog_linux.cc", "it2me_confirmation_dialog_mac.mm", "it2me_confirmation_dialog_proxy.cc", "it2me_confirmation_dialog_proxy.h", "it2me_confirmation_dialog_win.cc", "it2me_host.cc", "it2me_host.h", "it2me_native_messaging_host.cc", "it2me_native_messaging_host.h", ] if (is_chromeos) { sources += [ "it2me_confirmation_dialog_chromeos.cc" ] sources -= [ "it2me_confirmation_dialog_linux.cc" ] } configs += [ "//build/config/compiler:wexit_time_destructors", "//remoting/build/config:version", ] deps = [ "//base:i18n", "//net", "//remoting/base", "//remoting/host", "//remoting/protocol", "//remoting/resources", "//remoting/signaling", ] if (is_desktop_linux) { deps += [ "//build/config/linux/gtk", # 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. "//third_party:freetype_harfbuzz", ] } } if (!is_chromeos && enable_remoting_host) { if (is_win) { executable("remote_assistance_host") { configs += [ "//build/config/compiler:wexit_time_destructors" ] deps = [ "//base/allocator", "//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 = [ "//base/allocator", "//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_dialog_icon") { sources = [ "//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", ] } } mac_xib_bundle_data("remote_assistance_host_xibs") { sources = [ "//remoting/host/mac/disconnect_window.xib", ] } 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", "it2me_native_messaging_host_main.cc", "it2me_native_messaging_host_main.h", ] deps = [ ":common", "//build/config:exe_and_shlib_deps", "//remoting/host", "//remoting/host/native_messaging", "//remoting/proto", "//ui/gfx", ] 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_dialog_icon", ":remote_assistance_host_xibs", "//remoting/host:remoting_infoplist_strings", "//remoting/resources:copy_locales", ] if (icu_use_data_file) { deps += [ ":remote_assistance_host_resources" ] } } if (enable_webrtc) { deps += [ "//third_party/webrtc_overrides:init_webrtc" ] } if (is_desktop_linux) { deps += [ "//build/config/linux/gtk" ] } } } }