From a874dccb5c0b7ccfe803a798a585351ce5efccc7 Mon Sep 17 00:00:00 2001 From: brettw Date: Fri, 28 Aug 2015 16:59:18 -0700 Subject: Add Linux build packaging targets to GN Changes the version processing templates to not implicitly include the chrome version .rc file. This was something I've been meaning to do for a while which was forced by this patch, because it wants to call version.py with no sources or template file. I also had to remove some checks that either a template file or sources were defined (I wasn't aware this was valid to do when I wrote these checks). The above-mentioned change necessitated referencing the version template file from a number of existing calls. The version script now explicitly sets the output file with -o. Previously this was the implicit second argument, but this didn't work if there was no template file. -o is the same and it's better to be more explicit anyway. Added copy rules for xdg-mime related scripts which are required by the installer. Added a meta "installer" target which links to the Linux installers. This will also be a good place to hook up the Windows installer when we write it. BUG=525839 TBR=thestig@chromium.org (linux installer), ddorwin@chromium.org (widevine) Review URL: https://codereview.chromium.org/1311543003 Cr-Commit-Position: refs/heads/master@{#346279} --- BUILD.gn | 3 +- build/config/chrome_build.gni | 8 + chrome/BUILD.gn | 36 ++- chrome/chrome_installer.gypi | 19 ++ chrome/chrome_watcher/BUILD.gn | 1 + chrome/installer/BUILD.gn | 14 ++ chrome/installer/linux/BUILD.gn | 319 +++++++++++++++++++++++++++ chrome/installer/linux/flock_make_package.py | 21 ++ chrome/version.gni | 26 +-- chrome_elf/BUILD.gn | 1 + media/cdm/ppapi/BUILD.gn | 1 + sandbox/BUILD.gn | 6 +- third_party/widevine/cdm/BUILD.gn | 1 + 13 files changed, 432 insertions(+), 24 deletions(-) create mode 100644 chrome/installer/BUILD.gn create mode 100644 chrome/installer/linux/BUILD.gn create mode 100644 chrome/installer/linux/flock_make_package.py diff --git a/BUILD.gn b/BUILD.gn index a3834a0..a0a2cdd 100644 --- a/BUILD.gn +++ b/BUILD.gn @@ -66,9 +66,10 @@ group("both_gn_and_gyp") { testonly = true deps = [ "//base:base_unittests", - "//sql:sql_unittests", + "//chrome/installer", "//net:net_unittests", "//skia:skia_unittests", + "//sql:sql_unittests", "//ui/base:ui_base_unittests", "//url:url_unittests", ] diff --git a/build/config/chrome_build.gni b/build/config/chrome_build.gni index c2132c4..de6c2c5 100644 --- a/build/config/chrome_build.gni +++ b/build/config/chrome_build.gni @@ -17,3 +17,11 @@ declare_args() { # on Windows. is_multi_dll_chrome = is_win && !is_component_build } + +# Refers to the subdirectory for branding in various places including +# chrome/app/theme. +if (is_chrome_branded) { + branding_path_component = "google_chrome" +} else { + branding_path_component = "chromium" +} diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn index 5d3ec52..f306bbef 100644 --- a/chrome/BUILD.gn +++ b/chrome/BUILD.gn @@ -26,6 +26,7 @@ if (!is_android) { "app/chrome_exe_resource.h", ] defines = [] + public_deps = [] deps = [] data = [ @@ -143,6 +144,9 @@ if (!is_android) { "//chrome/installer/util", "//content/public/app:both", ] + public_deps = [ + ":xdg_mime", # Needs to be public for installer to consume files. + ] # Needed for chrome_main.cc initialization of libraries. configs += [ "//build/config/linux:pangocairo" ] @@ -164,7 +168,7 @@ if (!is_android) { # TODO(GYP) lots more stuff in the is_mac block. } else { # Non-Mac. # These files are used by the installer so we need a public dep. - public_deps = [ + public_deps += [ ":packed_extra_resources", ":packed_resources", ] @@ -388,6 +392,7 @@ if (is_win) { } process_version("chrome_exe_version") { + template_file = chrome_version_rc_template sources = [ "app/chrome_exe.ver", ] @@ -395,6 +400,7 @@ if (is_win) { } process_version("chrome_dll_version") { + template_file = chrome_version_rc_template sources = [ "app/chrome_dll.ver", ] @@ -411,6 +417,7 @@ if (is_win) { } process_version("nacl64_exe_version") { + template_file = chrome_version_rc_template sources = [ "app/nacl64_exe.ver", ] @@ -418,6 +425,7 @@ if (is_win) { } process_version("other_version") { + template_file = chrome_version_rc_template sources = [ "app/other.ver", ] @@ -496,29 +504,32 @@ if (is_chrome_branded) { outputs = [ "$root_out_dir/default_apps/{{source_file_part}}", ] + + # Force anybody that depends on this to get the default apps as data files. + data = process_file_template(sources, outputs) } } group("packed_resources") { - deps = [ + public_deps = [ ":repack_locales_pack", ":repack_pseudo_locales_pack", ":repack_chrome_100_percent", ] if (is_chrome_branded) { - deps += [ ":default_apps" ] + public_deps += [ ":default_apps" ] } if (enable_hidpi) { - deps += [ ":repack_chrome_200_percent" ] + public_deps += [ ":repack_chrome_200_percent" ] } if (enable_topchrome_md) { - deps += [ ":repack_chrome_material_100_percent" ] + public_deps += [ ":repack_chrome_material_100_percent" ] if (enable_hidpi) { - deps += [ ":repack_chrome_material_200_percent" ] + public_deps += [ ":repack_chrome_material_200_percent" ] } } } @@ -949,4 +960,17 @@ if (is_linux) { dump_syms_label, ] } + + # Copies some scripts and resources that are used for desktop integration. + copy("xdg_mime") { + sources = [ + "//chrome/app/theme/$branding_path_component/product_logo_48.png", + "//chrome/tools/build/linux/chrome-wrapper", + "//third_party/xdg-utils/scripts/xdg-mime", + "//third_party/xdg-utils/scripts/xdg-settings", + ] + outputs = [ + "$root_out_dir/{{source_file_part}}", + ] + } } diff --git a/chrome/chrome_installer.gypi b/chrome/chrome_installer.gypi index 6ed6062..ece79678 100644 --- a/chrome/chrome_installer.gypi +++ b/chrome/chrome_installer.gypi @@ -512,18 +512,21 @@ # we only create packages for official builds. 'copies': [ { + # GN version: //chrome/installer/linux:deb_packaging_files 'destination': '<(PRODUCT_DIR)/installer/debian/', 'files': [ '<@(packaging_files_deb)', ] }, { + # GN version: //chrome/installer/linux:rpm_packaging_files 'destination': '<(PRODUCT_DIR)/installer/rpm/', 'files': [ '<@(packaging_files_rpm)', ] }, { + # GN version: //chrome/installer/linux:common_packaging_files 'destination': '<(PRODUCT_DIR)/installer/common/', 'files': [ '<@(packaging_files_common)', @@ -531,6 +534,7 @@ }, # Additional theme resources needed for package building. { + # GN version: //chrome/installer/linux:theme_files 'destination': '<(PRODUCT_DIR)/installer/theme/', 'files': [ '<(branding_dir)/linux/product_logo_32.xpm', @@ -548,6 +552,7 @@ ], 'actions': [ { + # GN version: //chrome/installer/linux:save_build_info 'action_name': 'save_build_info', 'inputs': [ '<(branding_dir)/BRANDING', @@ -569,6 +574,7 @@ ], }, { + # GN version: //chrome/installer/linux 'target_name': 'linux_packages_all', 'suppress_wildcard': 1, 'type': 'none', @@ -615,6 +621,7 @@ ], }, { + # GN version: //chrome/installer/linux:unstable 'target_name': 'linux_packages_unstable', 'suppress_wildcard': 1, 'type': 'none', @@ -631,6 +638,7 @@ ], }, { + # GN version: //chrome/installer/linux:beta 'target_name': 'linux_packages_beta', 'suppress_wildcard': 1, 'type': 'none', @@ -647,6 +655,7 @@ ], }, { + # GN version: //chrome/installer/linux:stable 'target_name': 'linux_packages_stable', 'suppress_wildcard': 1, 'type': 'none', @@ -665,6 +674,7 @@ # TODO(mmoss) gyp looping construct would be handy here ... # These package actions are the same except for the 'channel' variable. { + # GN version: //chrome/installer/linux:asan 'target_name': 'linux_packages_asan_deb', 'suppress_wildcard': 1, 'type': 'none', @@ -693,6 +703,7 @@ ], }, { + # GN version: //chrome/installer/linux:trunk 'target_name': 'linux_packages_trunk_deb', 'suppress_wildcard': 1, 'type': 'none', @@ -721,6 +732,7 @@ ], }, { + # GN version: //chrome/installer/linux:unstable 'target_name': 'linux_packages_unstable_deb', 'suppress_wildcard': 1, 'type': 'none', @@ -749,6 +761,7 @@ ], }, { + # GN version: //chrome/installer/linux:beta 'target_name': 'linux_packages_beta_deb', 'suppress_wildcard': 1, 'type': 'none', @@ -777,6 +790,7 @@ ], }, { + # GN version: //chrome/installer/linux:stable 'target_name': 'linux_packages_stable_deb', 'suppress_wildcard': 1, 'type': 'none', @@ -805,6 +819,7 @@ ], }, { + # GN version: //chrome/installer/linux:asan 'target_name': 'linux_packages_asan_rpm', 'suppress_wildcard': 1, 'type': 'none', @@ -834,6 +849,7 @@ ], }, { + # GN version: //chrome/installer/linux:trunk 'target_name': 'linux_packages_trunk_rpm', 'suppress_wildcard': 1, 'type': 'none', @@ -863,6 +879,7 @@ ], }, { + # GN version: //chrome/installer/linux:unstable 'target_name': 'linux_packages_unstable_rpm', 'suppress_wildcard': 1, 'type': 'none', @@ -892,6 +909,7 @@ ], }, { + # GN version: //chrome/installer/linux:beta 'target_name': 'linux_packages_beta_rpm', 'suppress_wildcard': 1, 'type': 'none', @@ -921,6 +939,7 @@ ], }, { + # GN version: //chrome/installer/linux:stable 'target_name': 'linux_packages_stable_rpm', 'suppress_wildcard': 1, 'type': 'none', diff --git a/chrome/chrome_watcher/BUILD.gn b/chrome/chrome_watcher/BUILD.gn index ada2808..ac00808 100644 --- a/chrome/chrome_watcher/BUILD.gn +++ b/chrome/chrome_watcher/BUILD.gn @@ -15,6 +15,7 @@ source_set("client") { } process_version("chrome_watcher_resources") { + template_file = chrome_version_rc_template sources = [ "chrome_watcher.ver", ] diff --git a/chrome/installer/BUILD.gn b/chrome/installer/BUILD.gn new file mode 100644 index 0000000..5b0b9f4 --- /dev/null +++ b/chrome/installer/BUILD.gn @@ -0,0 +1,14 @@ +# Copyright 2015 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/chrome_build.gni") + +# Meta-target that forwards to the installer of the correct type (if any). +group("installer") { + if (is_linux && is_chrome_branded) { + deps = [ + "//chrome/installer/linux", + ] + } +} diff --git a/chrome/installer/linux/BUILD.gn b/chrome/installer/linux/BUILD.gn new file mode 100644 index 0000000..1605dea --- /dev/null +++ b/chrome/installer/linux/BUILD.gn @@ -0,0 +1,319 @@ +# Copyright 2015 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/chrome_build.gni") +import("//build/util/version.gni") +import("//chrome/version.gni") + +assert(is_linux && is_chrome_branded) + +# This target builds all "normal" Linux installers. +# GYP version: chrome/chrome_installer.gypi:linux_packages_all +# +# The bot setup is to build stable, unstable, and beta packages for the current +# build. Then a later step picks up the package corresponding to what the +# current build is supposed to be. This is wasteful since one build will only +# be one of these. This build file also has targets for trunk and possibly asan +# installers. +# +# TODO it would be much nicer to have a build variable so the bot can tell us +# what the current build should be, so we only have to make one .deb/.rpm pair. +# +# +# TO BUILD LINUX INSTALLER PACKAGES +# +# The packages list the exact versions of each library used. The versions used +# on the bots are likely different than those on your workstation, so you'll +# get a stream of errors like: +# < libasound2 (>= 1.0.23) +# --- +# > libasound2 (>= 1.0.16) +# +# To avoid these warnings for testing purposes, do: +# +# export IGNORE_DEPS_CHANGES=1 +# +# before you build. +group("linux") { + deps = [ + ":beta", + ":stable", + ":unstable", + ] +} + +branding_dir = "//chrome/app/theme/$branding_path_component" +branding_dir_100 = + "//chrome/app/theme/default_100_percent/$branding_path_component" + +copy("common_packaging_files") { + visibility = [ ":*" ] + sources = [ + "common/apt.include", + "common/default-app-block.template", + "common/default-app.template", + "common/desktop.template", + "common/google-chrome/google-chrome.info", + "common/installer.include", + "common/postinst.include", + "common/prerm.include", + "common/repo.cron", + "common/rpm.include", + "common/rpmrepo.cron", + "common/symlinks.include", + "common/variables.include", + "common/wrapper", + ] + + if (current_cpu == "x86") { + sources += [ "//build/linux/bin/eu-strip" ] + } else if (current_cpu == "x64") { + sources += [ "/usr/bin/eu-strip" ] + } + + outputs = [ + "$root_out_dir/installer/common/{{source_file_part}}", + ] +} + +copy("deb_packaging_files") { + visibility = [ ":*" ] + sources = [ + "debian/build.sh", + "debian/changelog.template", + "debian/control.template", + "debian/debian.menu", + "debian/expected_deps_ia32", + "debian/expected_deps_x64", + "debian/postinst", + "debian/postrm", + "debian/prerm", + ] + outputs = [ + "$root_out_dir/installer/debian/{{source_file_part}}", + ] +} + +copy("theme_files") { + visibility = [ ":*" ] + sources = [ + "$branding_dir/BRANDING", + "$branding_dir/linux/product_logo_32.xpm", + "$branding_dir/product_logo_128.png", + "$branding_dir/product_logo_22.png", + "$branding_dir/product_logo_24.png", + "$branding_dir/product_logo_256.png", + "$branding_dir/product_logo_48.png", + "$branding_dir/product_logo_64.png", + "$branding_dir_100/product_logo_16.png", + "$branding_dir_100/product_logo_32.png", + ] + outputs = [ + "$root_out_dir/installer/theme/{{source_file_part}}", + ] +} + +if (!is_chromeos) { + copy("rpm_packaging_files") { + visibility = [ ":*" ] + sources = [ + "rpm/build.sh", + "rpm/chrome.spec.template", + "rpm/expected_deps_i386", + "rpm/expected_deps_x86_64", + ] + outputs = [ + "$root_out_dir/installer/rpm/{{source_file_part}}", + ] + } +} + +process_version("save_build_info") { + # Just output the default version info variables (no template). + process_only = true + output = "$root_out_dir/installer/version.txt" +} + +# Dependencies for all Linux installer targets. +group("installer_deps") { + public_deps = [ + ":common_packaging_files", + ":deb_packaging_files", + ":save_build_info", + ":theme_files", + "//chrome", + "//chrome:packed_resources", + "//components/nacl:nacl_helper", + "//sandbox/linux:chrome_sandbox", + "//third_party/adobe/flash:flapper_binaries", + ] + if (current_cpu == "x86" || current_cpu == "x64") { + public_deps += [ + "//third_party/widevine/cdm:widevinecdm", + "//third_party/widevine/cdm:widevinecdmadapter", + ] + } + if (!is_chromeos) { + public_deps += [ ":rpm_packaging_files" ] + } +} + +# Creates .deb and .rpm (RPM for non-ChromeOS only) installer packages. +# +# channel: +# Name of the channel. +template("linux_package") { + assert(defined(invoker.channel)) + channel = invoker.channel + + if (current_cpu == "x86") { + # The shell scruipts use "ia32" instead of "x86". + build_script_arch = "ia32" + } else { + build_script_arch = current_cpu + } + + packaging_files_binaries = [ + # TODO(mmoss) Any convenient way to get all the relevant build + # files? (e.g. all locales, resources, etc.) + "$root_out_dir/chrome", + "$root_out_dir/chrome_sandbox", + "$root_out_dir/xdg-mime", + "$root_out_dir/xdg-settings", + "$root_out_dir/locales/en-US.pak", + + #"$root_out_dir/nacl_helper", TODO(GYP) NaCl support. + #"$root_out_dir/nacl_helper_bootstrap", TODO(GYP) NaCl support. + "$root_out_dir/PepperFlash/libpepflashplayer.so", + "$root_out_dir/PepperFlash/manifest.json", + ] + + if (current_cpu == "x86") { + packaging_files_binaries += [ + #"$root_out_dir/nacl_irt_x86_32.nexe", TODO(GYP) NaCl support. + "$root_out_dir/libwidevinecdmadapter.so", + "$root_out_dir/libwidevinecdm.so", + ] + } else if (current_cpu == "x64") { + packaging_files_binaries += [ + #"$root_out_dir/nacl_irt_x86_64.nexe", TODO(GYP) NaCl support. + "$root_out_dir/libwidevinecdmadapter.so", + "$root_out_dir/libwidevinecdm.so", + ] + } + if (is_asan) { + packaging_files_binaries += [ "$root_out_dir/lib/libc++.so" ] + } + + deb_target_name = "${target_name}_deb" + action(deb_target_name) { + visibility = [ ":*" ] + script = "flock_make_package.py" + + if (current_cpu == "x86") { + deb_arch = "i386" + } else if (current_cpu == "x64") { + deb_arch = "amd64" + } else if (current_cpu == "arm") { + deb_arch = "arm" + } else { + assert(false, "Linux installer not configured for this architecture.") + } + + inputs = packaging_files_binaries + outputs = [ + "$root_out_dir/google-chrome-${channel}_${chrome_version_full}-1_${deb_arch}.deb", + ] + + args = [ + rebase_path("$root_out_dir/linux_package.lock", root_build_dir), + rebase_path("$root_out_dir/installer/debian/build.sh", root_build_dir), + "-o", + rebase_path(root_out_dir, root_build_dir), + "-b", + rebase_path(root_out_dir, root_build_dir), + "-a", + build_script_arch, + "-c", + invoker.channel, + "-d", + branding_path_component, + ] + deps = [ + ":installer_deps", + ] + } + + if (!is_chromeos) { + rpm_target_name = "${target_name}_rpm" + action(rpm_target_name) { + visibility = [ ":*" ] + script = "flock_make_package.py" + + if (current_cpu == "x86") { + rpm_arch = "i386" + } else if (current_cpu == "x64") { + rpm_arch = "x86_64" + } else if (current_cpu == "arm") { + rpm_arch = "arm" + } else { + assert(false, "Linux installer not configured for this architecture.") + } + + inputs = packaging_files_binaries + outputs = [ + "$root_out_dir/google-chrome-${channel}_${chrome_version_full}-1.${rpm_arch}.rpm", + ] + + args = [ + rebase_path("$root_out_dir/linux_package.lock", root_build_dir), + rebase_path("$root_out_dir/installer/rpm/build.sh", root_build_dir), + "-o", + rebase_path(root_out_dir, root_build_dir), + "-b", + rebase_path(root_out_dir, root_build_dir), + "-a", + build_script_arch, + "-c", + invoker.channel, + "-d", + branding_path_component, + ] + deps = [ + ":installer_deps", + ] + } + } + + group(target_name) { + deps = [ + ":$deb_target_name", + ] + if (!is_chromeos) { + deps += [ ":$rpm_target_name" ] + } + } +} + +# Standard packages. +linux_package("stable") { + channel = "stable" +} +linux_package("beta") { + channel = "beta" +} +linux_package("unstable") { + channel = "unstable" +} + +# Other packages that we support that aren't included in the default "linux" +# target. +linux_package("trunk") { + channel = "trunk" +} +if (is_asan) { + linux_package("asan") { + channel = "asan" + } +} diff --git a/chrome/installer/linux/flock_make_package.py b/chrome/installer/linux/flock_make_package.py new file mode 100644 index 0000000..8dfc089 --- /dev/null +++ b/chrome/installer/linux/flock_make_package.py @@ -0,0 +1,21 @@ +# Copyright 2015 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. + +# Linux package generation is serialized because it creates large numbers of +# temporary files that can overload the /tmp partition on the builders. +# See https://codereview.chromium.org/243019 +# +# This script does a flock to serialize, and then runs the given shell +# script with the given parameters. +# +# Usage: +# flock_make_package.py [*] + +import subprocess +import sys + +if len(sys.argv) < 3: + print "Incorrect args." + sys.exit(1) +subprocess.call(["flock", "--", sys.argv[1], "bash"] + sys.argv[2:]) diff --git a/chrome/version.gni b/chrome/version.gni index b97df39..453a8d8 100644 --- a/chrome/version.gni +++ b/chrome/version.gni @@ -21,8 +21,6 @@ import("//build/config/chrome_build.gni") # processes one file per invocation of the template so you may have to have # multiple targets. # -# You must specify either sources or a template_file, or both. -# # Parameters: # sources (optional): # List of file names to read. When converting a GYP target, this should @@ -34,9 +32,9 @@ import("//build/config/chrome_build.gni") # "_version.rc" to the end. But in GN you need to specify the full name. # # template_file (optional): -# Template file to use (not a list). Defaults to -# //chrome/app/chrome_version.rc.version if unspecified. -# TODO(brettw) remove this default behavior and specify it every time. +# Template file to use (not a list). Most Windows uses for generating +# resources will want to specify the chrome_version_rc_template defined +# below. # # extra_args (optional): # Extra arguments to pass to version.py. Any "-f " args should @@ -57,8 +55,6 @@ import("//build/config/chrome_build.gni") # extra_files = [ "foo/BRANDING" ] # } template("process_version") { - assert(defined(invoker.sources) || defined(invoker.template_file), - "Either sources or template_file must be defined for $target_name") assert(defined(invoker.output), "Output must be defined for $target_name") process_only = defined(invoker.process_only) && invoker.process_only @@ -80,18 +76,15 @@ template("process_version") { } else { branding_path = "//chrome/app/theme/chromium/BRANDING" } - if (defined(invoker.template_file)) { - template_path = invoker.template_file - } else { - template_path = "//chrome/app/chrome_version.rc.version" - } inputs = [ version_path, lastchange_path, branding_path, - template_path, ] + if (defined(invoker.template_file)) { + inputs += [ invoker.template_file ] + } outputs = [ invoker.output, @@ -121,9 +114,12 @@ template("process_version") { args += invoker.extra_args } args += [ - rebase_path(template_path, root_build_dir), + "-o", rebase_path(invoker.output, root_build_dir), ] + if (defined(invoker.template_file)) { + args += [ rebase_path(invoker.template_file, root_build_dir) ] + } if (process_only) { # When processing only, visibility gets applied to this target. @@ -144,3 +140,5 @@ template("process_version") { } } } + +chrome_version_rc_template = "//chrome/app/chrome_version.rc.version" diff --git a/chrome_elf/BUILD.gn b/chrome_elf/BUILD.gn index c97a411..2a15a55 100644 --- a/chrome_elf/BUILD.gn +++ b/chrome_elf/BUILD.gn @@ -7,6 +7,7 @@ import("//chrome/version.gni") import("//testing/test.gni") process_version("chrome_elf_resources") { + template_file = chrome_version_rc_template sources = [ "chrome_elf.ver", ] diff --git a/media/cdm/ppapi/BUILD.gn b/media/cdm/ppapi/BUILD.gn index cd10c83..b9ca2fc 100644 --- a/media/cdm/ppapi/BUILD.gn +++ b/media/cdm/ppapi/BUILD.gn @@ -51,6 +51,7 @@ shared_library("clearkeycdm") { process_version("clearkeycdmadapter_resources") { visibility = [ ":*" ] + template_file = chrome_version_rc_template sources = [ "//media/clearkeycdmadapter.ver", "external_clear_key/BRANDING", diff --git a/sandbox/BUILD.gn b/sandbox/BUILD.gn index 15fb620..6825a1d 100644 --- a/sandbox/BUILD.gn +++ b/sandbox/BUILD.gn @@ -5,18 +5,18 @@ # Meta-target that forwards to the proper platform one. group("sandbox") { if (is_win) { - deps = [ + public_deps = [ "//sandbox/win:sandbox", ] } else if (is_mac) { # TODO(GYP): Make sandbox compile w/ 10.6 SDK. if (false) { - deps = [ + public_deps = [ "//sandbox/mac:sandbox", ] } } else if (is_linux || is_android) { - deps = [ + public_deps = [ "//sandbox/linux:sandbox", ] } diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn index 99ca959..50978d2 100644 --- a/third_party/widevine/cdm/BUILD.gn +++ b/third_party/widevine/cdm/BUILD.gn @@ -113,6 +113,7 @@ if ((is_chrome_branded || enable_widevine) && enable_pepper_cdms) { # Produce and compile the .rc file. process_version("widevinecdmadapter_resources") { visibility = [ ":*" ] + template_file = chrome_version_rc_template sources = [ "BRANDING", "widevinecdmadapter.ver", -- cgit v1.1