blob: e732fe144d0ee58c1ac6b81c2ab0d78bd2a0f9c1 [file] [log] [blame]
# 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. Since we
# link our own HarfBuzz, avoid mixing symbols from system HarfBuzz
# and own ones, hence the dependency to harfbuzz-ng here.
"//third_party/harfbuzz-ng",
]
}
}
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" ]
}
}
}
}