Chromium Code Reviews| Index: remoting/host/BUILD.gn |
| diff --git a/remoting/host/BUILD.gn b/remoting/host/BUILD.gn |
| index 7d171a8a619e0c69aaba087eff388eef248a22f6..21ec6ecdb720c428dae7b243e92e73a7258ac765 100644 |
| --- a/remoting/host/BUILD.gn |
| +++ b/remoting/host/BUILD.gn |
| @@ -2,17 +2,24 @@ |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| +import("//build/config/allocator.gni") |
| import("//build/config/features.gni") |
| import("//build/config/ui.gni") |
| +import("//build/util/version.gni") |
| import("//remoting/remoting_host.gni") |
| import("//remoting/remoting_locales.gni") |
| +import("//remoting/remoting_options.gni") |
| import("//remoting/remoting_srcs.gni") |
| import("//remoting/remoting_version.gni") |
| import("//remoting/tools/build/remoting_localize.gni") |
| # GYP version: remoting/remoting_host:remoting_host_credits |
| action("credits") { |
| - about_credits_file = "$target_gen_dir/CREDITS.txt" |
| + # We put this in $root_build_dir/gen/remoting instead of |
| + # $root_build_dir/gen/remoting/host (target_gen_dir) for |
| + # compatibility w/ GYP, since the installer needs the file to |
| + # be at the same location. |
| + about_credits_file = "$root_build_dir/gen/remoting/CREDITS.txt" |
| script = "//tools/licenses.py" |
| inputs = [ |
| @@ -418,6 +425,52 @@ if (is_mac) { # TODO(GYP) Mac build of remoting host. |
| deps += [ "//third_party/libjingle:libjingle_webrtc" ] |
| } |
| } |
| + |
| + action_foreach("remoting_native_messaging_manifests") { |
| + if (is_mac) { |
| + assert(false, "not implemented on mac yet") |
| + } else if (is_win) { |
| + assert(false, "not implemented on win yet") |
| + } else { |
| + me2me_host_path = |
| + "/opt/google/chrome-remote-desktop/native-messaging-host" |
| + it2me_host_path = |
| + "/opt/google/chrome-remote-desktop/remote-assistance-host" |
| + } |
| + |
| + script = "../tools/build/remoting_localize.py" |
| + |
| + sources = [ |
| + "it2me/com.google.chrome.remote_assistance.json.jinja2", |
| + "setup/com.google.chrome.remote_desktop.json.jinja2", |
| + ] |
| + |
| + inputs = [ |
| + branding_path, |
| + ] |
| + |
| + outputs = [ |
| + "$root_build_dir/remoting/{{source_name_part}}", |
| + ] |
| + |
| + args = [ |
| + "--define", |
| + "ME2ME_HOST_PATH=$me2me_host_path", |
| + "--define", |
| + "IT2ME_HOST_PATH=$it2me_host_path", |
| + "--variables", |
| + branding_path, |
| + "--template", |
| + "{{source}}", |
| + "--locale_output", |
| + "remoting/{{source_name_part}}", |
| + "en", |
| + ] |
| + } |
| + |
| + # TODO(crbug.com/512899) This still needs to be ported to GN. |
| + group("remoting_infoplist_strings") { |
| + } |
| } |
| if (enable_me2me_host) { |
| @@ -476,6 +529,134 @@ if (is_mac) { # TODO(GYP) Mac build of remoting host. |
| "//build/config/sanitizers:deps", |
| ] |
| } |
| + |
| + executable("native_messaging_host") { |
| + sources = [ |
| + "setup/me2me_native_messaging_host_entry_point.cc", |
| + "setup/me2me_native_messaging_host_main.cc", |
| + "setup/me2me_native_messaging_host_main.h", |
| + ] |
| + |
| + deps = [ |
| + ":remoting_infoplist_strings", |
| + "//base", |
| + "//remoting/base:breakpad", |
| + "//remoting/host", |
| + "//remoting/host/setup", |
| + "//remoting/host/native_messaging", |
| + ] |
| + |
| + configs += [ "//build/config/compiler:wexit_time_destructors" ] |
| + |
| + # The |major|, |build| and |patch| versions are inherited from Chrome. |
| + # Since Chrome's |minor| version is always '0', we replace it with a |
| + # Chromoting-specific patch version. |
| + defines = [ "VERSION=" + "$chrome_version_major" + "." + |
| + "$remoting_version_patch" + "." + "$chrome_version_build" + |
| + "." + "$chrome_version_patch" ] |
| + |
| + if (is_linux && use_allocator != "none") { |
| + deps += [ "//base/allocator" ] |
| + } else if (is_mac || is_win) { |
| + assert(false, "not implemented on mac or win yet") |
| + } |
| + } |
| + } |
| + |
| + if (is_chrome_branded && enable_me2me_host && !is_chromeos) { |
| + # TODO(GYP): add support for archive_chromoting_tests variable? |
| + |
| + import("//build/config/zip.gni") |
| + |
| + build_deb_script = "installer/linux/build_deb.py" |
| + deb_filename = |
| + "$root_build_dir/" + exec_script(build_deb_script, |
| + [ |
| + "-p", |
| + "-s", |
| + rebase_path("//"), |
| + ], |
| + "string", |
| + [ "installer/linux/build-deb.sh" ]) |
| + changes_filename = |
| + "$root_build_dir/" + get_path_info(deb_filename, "name") + ".changes" |
| + |
| + packaging_outputs = [ |
| + deb_filename, |
| + changes_filename, |
| + |
| + # TODO(GYP): These files will only be present if we're stripping |
| + # binaries. We need to support linux_dump_symbols for this. |
| + #"$root_build_dir/remoting_me2me_host.debug", |
| + #"$root_build_dir/remoting_start_host.debug", |
| + #"$root_build_dir/native_messaging_host.debug", |
| + #"$root_build_dir/remote_assistance_host.debug", |
| + ] |
| + |
| + zip("remoting_me2me_host_archive") { |
| + # Store the installer package(s) into a zip file so there is a |
| + # consistent filename to reference for build archiving (i.e. in |
| + # FILES.cfg). This also avoids possible conflicts with "wildcard" |
| + # package handling in other build/signing scripts. |
| + inputs = packaging_outputs |
| + output = "$root_build_dir/remoting-me2me-host-linux.zip" |
| + deps = [ |
| + ":remoting_me2me_host_copy", |
| + ] |
| + } |
| + |
| + copy("remoting_me2me_host_copy") { |
| + # Copy the debian package file, which has version info in it, |
| + # to a consistewnt filename for use on Chromoting swarming bots. |
| + sources = [ |
| + deb_filename, |
| + ] |
| + outputs = [ |
| + "$root_build_dir/remoting-me2me-host.deb", |
| + ] |
| + public_deps = [ |
| + ":remoting_me2me_host_deb_installer", |
| + ] |
| + } |
| + |
| + action("remoting_me2me_host_deb_installer") { |
|
Dirk Pranke
2015/11/03 03:11:09
there's something wonky going on in this target th
|
| + script = build_deb_script |
| + inputs = [ |
| + build_deb_script, |
| + "installer/linux/Makefile", |
| + "installer/linux/debian/chrome-remote-desktop.init", |
| + "installer/linux/debian/chrome-remote-desktop.pam", |
| + "installer/linux/debian/compat", |
| + "installer/linux/debian/control", |
| + "installer/linux/debian/copyright", |
| + "installer/linux/debian/postinst", |
| + "installer/linux/debian/preinst", |
| + "installer/linux/debian/rules", |
| + ] |
| + outputs = packaging_outputs |
| + sources = [ |
| + "installer/linux/build-deb.sh", |
|
Sergey Ulanov
2015/11/03 18:21:37
This script assumes that the output is always in o
Dirk Pranke
2015/11/03 21:10:20
The bots use out/Release and that probably won't c
|
| + ] |
| + args = [ |
| + "-s", |
| + rebase_path("//"), |
| + "-o", |
| + rebase_path("$root_build_dir"), |
| + ] |
| + |
| + deps = [ |
| + ":native_messaging_host", |
| + ":remoting_me2me_host", |
| + ":remoting_native_messaging_manifests", |
| + ":remoting_start_host", |
| + "//remoting/host/it2me:remote_assistance_host", |
| + "//remoting/resources", |
| + "//third_party/icu:icudata", |
| + ] |
| + } |
| + } else { |
| + group("remoting_me2me_host_archive") { |
| + } |
| } |
| } |
| } |