Index: remoting/host/installer/win/BUILD.gn |
diff --git a/remoting/host/installer/win/BUILD.gn b/remoting/host/installer/win/BUILD.gn |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a151461ae8a433c369892f653d2a8b7183f7b237 |
--- /dev/null |
+++ b/remoting/host/installer/win/BUILD.gn |
@@ -0,0 +1,156 @@ |
+# 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("//build/toolchain/win/midl.gni") |
+import("//build/win/message_compiler.gni") |
+ |
+action("remoting_me2me_host_archive") { |
+ script = "//remoting/host/installer/build-installer-archive.py" |
+ |
+ deps = [ |
+ "//remoting/host:remoting_native_messaging_manifests", |
+ "//remoting/host:remoting_start_host", |
+ "//remoting/host/installer:credits", |
+ "//remoting/host/it2me:remote_assistance_host", |
+ "//remoting/host/win:remoting_core", |
+ "//remoting/host/win:remoting_desktop", |
+ "//remoting/host/win:remoting_me2me_host", |
+ "//remoting/host/win:remoting_native_messaging_host", |
+ "//third_party/icu:icudata", |
+ ] |
+ |
+ public_deps = [ |
+ "//remoting/host/security_key:remote_security_key", |
+ ] |
+ |
+ _output = "$root_out_dir/remoting-me2me-host-$target_os.zip" |
+ |
+ outputs = [ |
+ _output, |
+ ] |
+ if (is_chrome_branded) { |
+ _branding = "Chrome" |
+ } else { |
+ _branding = "Chromium" |
+ } |
+ |
+ if (is_official_build) { |
+ _official_build = "1" |
+ } else { |
+ _official_build = "0" |
+ } |
+ |
+ # TODO(brettw) these should not be generated via exec_script. This should be |
+ # part of the build process rather than the metabuild. Instead, a script |
+ # should generate a header containing the #defines for this as well as the |
+ # IDL file with the values. |
+ clsids = exec_script("//remoting/host/win/get_clsids.py", |
+ [ |
+ daemon_controller_guid, |
+ rdp_desktop_session_guid, |
+ chrome_version_full, |
+ ], |
+ "value") |
+ daemon_controller_clsid = clsids[0] |
+ rdp_desktop_session_clsid = clsids[1] |
+ |
+ # Due to GN build issue http://crbug.com/633650, we need to actively set |
+ # inputs parameter to tell GN to depend on these files. So change to each |
+ # following files will trigger this target to be rebuilt. |
+ # TODO(zijiehe): Remove inputs parameter once bug 633650 has been |
+ # addressed. |
+ inputs = [ |
+ "$root_out_dir/remote_assistance_host.exe", |
+ "$root_out_dir/remote_security_key.exe", |
+ "$root_out_dir/remoting_core.dll", |
+ "$root_out_dir/remoting_desktop.exe", |
+ "$root_out_dir/remoting_host.exe", |
+ "$root_out_dir/remoting_native_messaging_host.exe", |
+ "$root_out_dir/remoting_start_host.exe", |
+ "$root_gen_dir/remoting/CREDITS.txt", |
+ "$root_out_dir/remoting/com.google.chrome.remote_assistance.json", |
+ "$root_out_dir/remoting/com.google.chrome.remote_desktop.json", |
+ "$root_out_dir/icudtl.dat", |
+ ] |
+ |
+ _generated_files = rebase_path(inputs, root_build_dir) |
+ _generated_files += [ rebase_path("//remoting/resources/chromoting.ico") ] |
+ |
+ # _generated_dst_files must contain the same files in the same order as |
+ # _generated_files, otherwise the Windows MSI will not be built correctly. |
+ _generated_dst_files = [ |
+ "files/remote_assistance_host.exe", |
+ "files/remote_security_key.exe", |
+ "files/remoting_core.dll", |
+ "files/remoting_desktop.exe", |
+ "files/remoting_host.exe", |
+ "files/remoting_native_messaging_host.exe", |
+ "files/remoting_start_host.exe", |
+ "files/CREDITS.txt", |
+ "files/com.google.chrome.remote_assistance.json", |
+ "files/com.google.chrome.remote_desktop.json", |
+ "files/icudtl.dat", |
+ "files/chromoting.ico", |
+ ] |
+ |
+ args = [ |
+ rebase_path("$root_gen_dir/remoting_installation", root_build_dir), |
+ rebase_path(_output, root_build_dir), |
+ "--source-file-roots", |
+ rebase_path("//remoting/host/installer/win"), |
+ "--source-files", |
+ rebase_path("//remoting/host/installer/win/chromoting.wxs"), |
+ rebase_path("//remoting/host/installer/win/parameters.json"), |
+ |
+ # Input files |
+ "--generated-files", |
+ ] + _generated_files + |
+ [ |
+ # Position of files in zip file |
+ "--generated-files-dst", |
+ ] + _generated_dst_files + |
+ [ |
+ # Defs |
+ "--defs", |
+ "BRANDING=$_branding", |
+ "DAEMON_CONTROLLER_CLSID={$daemon_controller_clsid}", |
+ "RDP_DESKTOP_SESSION_CLSID={$rdp_desktop_session_clsid}", |
+ "VERSION=$chrome_version_full", |
+ "OFFICIAL_BUILD=$_official_build", |
+ ] |
+} |
+ |
+if (is_chrome_branded) { |
+ # We do not release a 64 bits binary. So to avoid any potential |
+ # misunderstanding, we only build 32 bits MSI file. |
+ if (!is_component_build && target_cpu == "x86") { |
+ # The script uses "ia32" instead of "x86". |
+ msi_script_arch = "ia32" |
+ |
+ action("remoting_host_installation") { |
Hzj_jie
2016/09/12 22:32:10
GN cannot handle two targets with unique name well
nicholss
2016/09/12 23:01:43
While it is true that GN does not allow duplicate
Hzj_jie
2016/09/12 23:07:22
No, I totally agree to use no-op group target to a
|
+ deps = [ |
+ "//remoting/host:remoting_me2me_host_archive", |
+ ] |
+ script = "//remoting/tools/zip2msi.py" |
+ outputs = [ |
+ "$root_out_dir/chromoting.msi", |
+ ] |
+ args = [ |
+ "--wix_path", |
+ rebase_path("//third_party/wix"), |
+ "--intermediate_dir", |
+ rebase_path("$root_gen_dir/remoting_installation", root_build_dir), |
+ "--target_arch", |
+ msi_script_arch, |
+ rebase_path("$root_out_dir/remoting-me2me-host-$current_os.zip", |
+ root_build_dir), |
+ rebase_path(outputs[0], root_build_dir), |
+ ] |
+ } |
+ } |
+} else { |
+ group("remoting_host_installation") { |
+ } |
+} |