summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrettw <brettw@chromium.org>2015-02-25 10:46:53 -0800
committerCommit bot <commit-bot@chromium.org>2015-02-25 18:48:11 +0000
commit70d2f6ea98ae618b24a7c517570b74d20b92a7c7 (patch)
treed9710e84119b831e80d1e41e9513a5d8c2f7dfb1
parent830ccc4c45969c05684bb8e6919197706859d0ec (diff)
downloadchromium_src-70d2f6ea98ae618b24a7c517570b74d20b92a7c7.zip
chromium_src-70d2f6ea98ae618b24a7c517570b74d20b92a7c7.tar.gz
chromium_src-70d2f6ea98ae618b24a7c517570b74d20b92a7c7.tar.bz2
Fix official build in GN
Changes process_version template. In GYP this is used in two ways and the GN version only supported one of these. This change also deletes an unnecessary fork of the template file, and fixes the dependencies for the extra files (previously they were just passed with "-f" and not added to the inputs of the target. Adds a cdm_adapter template which basically matches the GYP version. Uses this for the media clearkey adapter and the widevine one in the official build. Fixes for the crypto targets when compiling with the official build's checked-in sysroots. Review URL: https://codereview.chromium.org/949233003 Cr-Commit-Position: refs/heads/master@{#318083}
-rw-r--r--chrome/BUILD.gn37
-rw-r--r--chrome/android/BUILD.gn2
-rw-r--r--chrome/chrome_watcher/BUILD.gn8
-rw-r--r--chrome/common/BUILD.gn4
-rw-r--r--chrome/test/BUILD.gn16
-rw-r--r--chrome/version.gni64
-rw-r--r--chrome_elf/BUILD.gn8
-rw-r--r--components/data_reduction_proxy/core/common/BUILD.gn4
-rw-r--r--components/data_reduction_proxy/core/common/version.gni53
-rw-r--r--crypto/BUILD.gn9
-rw-r--r--extensions/shell/BUILD.gn2
-rw-r--r--media/cdm/ppapi/BUILD.gn32
-rw-r--r--media/cdm/ppapi/cdm_adapter.gni129
-rw-r--r--media/media_cdm.gypi1
-rw-r--r--media/media_cdm_adapter.gyp4
-rw-r--r--net/third_party/nss/ssl/BUILD.gn4
-rw-r--r--third_party/widevine/cdm/BUILD.gn40
-rw-r--r--third_party/widevine/cdm/widevine_cdm.gyp1
18 files changed, 290 insertions, 128 deletions
diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn
index ab95acd..a807c09 100644
--- a/chrome/BUILD.gn
+++ b/chrome/BUILD.gn
@@ -294,7 +294,10 @@ if (is_win) {
# TODO(brettW) this should have more reduced visibility, but chrome/browser
# currently depends on this.
#visibility = [ ":*" ]
- source = "version.h.in"
+
+ # This one just uses the custom template and no separate sources.
+ sources = []
+ template_file = "version.h.in"
# TODO(brettw) this should move to $target_gen_dir/version.h and
# source files including it should reference it via "chrome/version.h"
@@ -302,39 +305,31 @@ if (is_win) {
}
process_version("chrome_exe_version") {
- source = "//chrome/app/chrome_version.rc.version"
- output = "$target_gen_dir/chrome_exe_version.rc"
- extra_args = [
- "-f",
- rebase_path("app/chrome_exe.ver", root_build_dir),
+ sources = [
+ "app/chrome_exe.ver",
]
+ output = "$target_gen_dir/chrome_exe_version.rc"
}
process_version("chrome_dll_version") {
- source = "//chrome/app/chrome_version.rc.version"
- output = "$target_gen_dir/chrome_dll_version.rc"
- extra_args = [
- "-f",
- rebase_path("app/chrome_dll.ver", root_build_dir),
+ sources = [
+ "app/chrome_dll.ver",
]
+ output = "$target_gen_dir/chrome_dll_version.rc"
}
process_version("nacl64_exe_version") {
- source = "//chrome/app/chrome_version.rc.version"
- output = "$target_gen_dir/nacl64_exe_version.rc"
- extra_args = [
- "-f",
- rebase_path("app/nacl64_exe.ver", root_build_dir),
+ sources = [
+ "app/nacl64_exe.ver",
]
+ output = "$target_gen_dir/nacl64_exe_version.rc"
}
process_version("other_version") {
- source = "//chrome/app/chrome_version.rc.version"
- output = "$target_gen_dir/other_version.rc"
- extra_args = [
- "-f",
- rebase_path("app/other.ver", root_build_dir),
+ sources = [
+ "app/other.ver",
]
+ output = "$target_gen_dir/other_version.rc"
}
group("chrome_version_resources") {
diff --git a/chrome/android/BUILD.gn b/chrome/android/BUILD.gn
index d0908fe..53a6cd4 100644
--- a/chrome/android/BUILD.gn
+++ b/chrome/android/BUILD.gn
@@ -477,7 +477,7 @@ uiautomator_test("uiautomator_tests") {
chrome_version_java_dir = "$root_gen_dir/templates/chrome_version_java"
chrome_version_java_file = "$chrome_version_java_dir/org/chromium/chrome/browser/ChromeVersionConstants.java"
process_version("chrome_version_java") {
- source = "java/ChromeVersionConstants.java.version"
+ template_file = "java/ChromeVersionConstants.java.version"
output = chrome_version_java_file
extra_args = [
"-e",
diff --git a/chrome/chrome_watcher/BUILD.gn b/chrome/chrome_watcher/BUILD.gn
index 376daaa..db5f5e8 100644
--- a/chrome/chrome_watcher/BUILD.gn
+++ b/chrome/chrome_watcher/BUILD.gn
@@ -15,12 +15,10 @@ source_set("client") {
}
process_version("chrome_watcher_resources") {
- source = "//chrome/app/chrome_version.rc.version"
- output = "$target_gen_dir/chrome_watcher_version.rc"
- extra_args = [
- "-f",
- rebase_path("chrome_watcher.ver", root_build_dir),
+ sources = [
+ "chrome_watcher.ver",
]
+ output = "$target_gen_dir/chrome_watcher_version.rc"
}
shared_library("chrome_watcher") {
diff --git a/chrome/common/BUILD.gn b/chrome/common/BUILD.gn
index 5c9c241..622ce47 100644
--- a/chrome/common/BUILD.gn
+++ b/chrome/common/BUILD.gn
@@ -240,12 +240,12 @@ static_library("common") {
import("//chrome/version.gni")
process_version("version") {
visibility = [ ":common" ]
- source = "chrome_version_info_values.h.version"
+ template_file = "chrome_version_info_values.h.version"
output = "$target_gen_dir/chrome_version_info_values.h"
}
process_version("make_chrome_version") {
- source = "chrome_version.cc.version"
+ template_file = "chrome_version.cc.version"
output = "$target_gen_dir/chrome_version.cc"
}
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index e905563..4bc1d9b 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -959,7 +959,7 @@ if (!is_android && (!is_win || link_chrome_on_windows)) {
# Runtime dependencies.
data_deps += [
"//media/cdm/ppapi:clearkeycdmadapter",
- #'../third_party/widevine/cdm/widevine_cdm.gyp:widevinecdmadapter', TODO(GYP)
+ "//third_party/widevine/cdm:adapter",
]
}
if (!enable_print_preview) {
@@ -1150,14 +1150,12 @@ if (!is_android && (!is_win || link_chrome_on_windows)) {
"//third_party/widevine/cdm:version_h",
]
- # TODO(GYP) CDM adapter stuff.
- #if (enable_pepper_cdms) {
- # deps += [
- # "//media/cdm/ppapi:clearkeycdmadapter",
- # "//ppapi/cpp",
- # "//third_party/widevine/cdm:adapter",
- # ]
- #}
+ if (enable_pepper_cdms) {
+ data_deps = [
+ "//media/cdm/ppapi:clearkeycdmadapter",
+ "//third_party/widevine/cdm:adapter",
+ ]
+ }
}
unit_gypi_values = exec_script("//build/gypi_to_gn.py",
diff --git a/chrome/version.gni b/chrome/version.gni
index cc8d96a..b956e9c 100644
--- a/chrome/version.gni
+++ b/chrome/version.gni
@@ -6,28 +6,48 @@
# an output file. This is used for generating various forms of files that
# incorporate the product name and version.
#
-# This template automatically includes VERSION, LASTCHANGE, and BRANDING,
+# This template automatically includes VERSION, LASTCHANGE, and BRANDING. It
+# automatically uses the template file .
+# GYP parameterizes this template file but all current invocations use this
+# same one. If in the future we need to set it, this should be added as an
+# optional argument.
+#
+# In GYP this is a rule that runs once per ".ver" file. In GN this just
+# 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:
-# source:
-# File name of source template file to read.
+# sources (optional):
+# List of file names to read. When converting a GYP target, this should
+# list the 'source' (see above) as well as any extra_variable_files.
#
# output:
-# File name of file to write.
+# File name of file to write. In GYP this is unspecified and it will
+# make up a file name for you based on the input name, and tack on
+# "_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.
#
# extra_args (optional):
-# Extra arguments to pass to version.py.
+# Extra arguments to pass to version.py. Any "-f <filename>" args should
+# use sources instead.
#
# visibility (optional)
#
# Example:
# process_version("myversion") {
-# source = "myfile.h.in"
+# sources = [ "myfile.h.in" ]
# output = "$target_gen_dir/myfile.h"
# extra_args = ["-e", "FOO=42"]
+# extra_files = [ "foo/BRANDING" ]
# }
template("process_version") {
- assert(defined(invoker.source), "Source must be defined for $target_name")
+ 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")
action(target_name) {
@@ -43,33 +63,49 @@ 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,
- invoker.source,
lastchange_path,
branding_path,
+ template_path,
]
outputs = [
invoker.output,
]
- args = [
+ args = []
+
+ if (defined(invoker.sources)) {
+ inputs += invoker.sources
+ foreach(i, invoker.sources) {
+ args += [
+ "-f",
+ rebase_path(i, root_build_dir),
+ ]
+ }
+ }
+
+ args += [
"-f",
rebase_path(version_path, root_build_dir),
"-f",
rebase_path(branding_path, root_build_dir),
"-f",
rebase_path(lastchange_path, root_build_dir),
- "-i",
- rebase_path(invoker.source, root_build_dir),
- "-o",
- rebase_path(invoker.output, root_build_dir),
]
-
if (defined(invoker.extra_args)) {
args += invoker.extra_args
}
+ args += [
+ rebase_path(template_path, root_build_dir),
+ rebase_path(invoker.output, root_build_dir),
+ ]
}
}
diff --git a/chrome_elf/BUILD.gn b/chrome_elf/BUILD.gn
index 74a217f..092ba7a 100644
--- a/chrome_elf/BUILD.gn
+++ b/chrome_elf/BUILD.gn
@@ -6,12 +6,10 @@ import("//chrome/version.gni")
import("//testing/test.gni")
process_version("chrome_elf_resources") {
- source = "//chrome/app/chrome_version.rc.version"
- output = "$target_gen_dir/chrome_elf_version.rc"
- extra_args = [
- "-f",
- rebase_path("chrome_elf.ver"),
+ sources = [
+ "chrome_elf.ver",
]
+ output = "$target_gen_dir/chrome_elf_version.rc"
}
shared_library("chrome_elf") {
diff --git a/components/data_reduction_proxy/core/common/BUILD.gn b/components/data_reduction_proxy/core/common/BUILD.gn
index 4f760ae..674c361 100644
--- a/components/data_reduction_proxy/core/common/BUILD.gn
+++ b/components/data_reduction_proxy/core/common/BUILD.gn
@@ -2,7 +2,7 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
-import("//components/data_reduction_proxy/core/common/version.gni")
+import("//chrome/version.gni")
static_library("common") {
sources = [
@@ -69,6 +69,6 @@ source_set("unit_tests") {
}
process_version("version_header") {
- source = "version.h.in"
+ template_file = "version.h.in"
output = "$target_gen_dir/version.h"
}
diff --git a/components/data_reduction_proxy/core/common/version.gni b/components/data_reduction_proxy/core/common/version.gni
deleted file mode 100644
index 48184d7..0000000
--- a/components/data_reduction_proxy/core/common/version.gni
+++ /dev/null
@@ -1,53 +0,0 @@
-# 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.
-
-# Runs the version processing script over the given template file to produce
-# an output file. This is used for generating various forms of files that
-# incorporate the product name and version.
-#
-# This template automatically includes VERSION,
-#
-# Parameters:
-# source:
-# File name of source template file to read.
-#
-# output:
-# File name of file to write.
-#
-# visibility (optional)
-#
-# Example:
-# process_version("myversion") {
-# source = "myfile.h.in"
-# output = "$target_gen_dir/myfile.h"
-# }
-template("process_version") {
- assert(defined(invoker.source), "Source must be defined for $target_name")
- assert(defined(invoker.output), "Output must be defined for $target_name")
-
- action(target_name) {
- if (defined(invoker.visibility)) {
- visibility = invoker.visibility
- }
- script = "//build/util/version.py"
-
- version_path = "//chrome/VERSION"
-
- inputs = [
- version_path,
- invoker.source,
- ]
-
- outputs = [
- invoker.output,
- ]
-
- args = [
- "-f",
- rebase_path(version_path, root_build_dir),
- rebase_path(invoker.source, root_build_dir),
- rebase_path(invoker.output, root_build_dir),
- ]
- }
-}
diff --git a/crypto/BUILD.gn b/crypto/BUILD.gn
index d717197..6f99a8e 100644
--- a/crypto/BUILD.gn
+++ b/crypto/BUILD.gn
@@ -286,6 +286,14 @@ source_set("test_support") {
}
}
+config("platform_config") {
+ if (!use_openssl && is_clang) {
+ # There is a broken header guard in /usr/include/nss/secmod.h:
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=884072
+ cflags = [ "-Wno-header-guard" ]
+ }
+}
+
# This is a meta-target that forwards to NSS's SSL library or OpenSSL,
# according to the state of the crypto flags. A target just wanting to depend
# on the current SSL library should just depend on this.
@@ -309,6 +317,7 @@ group("platform") {
# Therefore, we need to explicitly list our custom libssl's config here
# before the system one.
public_configs = [
+ ":platform_config",
"//net/third_party/nss/ssl:ssl_config",
"//third_party/nss:system_nss_no_ssl_config",
]
diff --git a/extensions/shell/BUILD.gn b/extensions/shell/BUILD.gn
index 89d2d24..cea781f 100644
--- a/extensions/shell/BUILD.gn
+++ b/extensions/shell/BUILD.gn
@@ -183,6 +183,6 @@ test("app_shell_unittests") {
}
process_version("version_header") {
- source = "common/version.h.in"
+ template_file = "common/version.h.in"
output = "$target_gen_dir/common/version.h"
}
diff --git a/media/cdm/ppapi/BUILD.gn b/media/cdm/ppapi/BUILD.gn
index 9a85bd3..5bcca69 100644
--- a/media/cdm/ppapi/BUILD.gn
+++ b/media/cdm/ppapi/BUILD.gn
@@ -3,6 +3,8 @@
# found in the LICENSE file.
import("//build/config/features.gni")
+import("//chrome/version.gni") # TODO layering violation!
+import("//media/cdm/ppapi/cdm_adapter.gni")
# Android doesn't use ffmpeg.
use_ffmpeg = !is_android
@@ -47,14 +49,34 @@ shared_library("clearkeycdm") {
# TODO(GYP) on Mac: 'DYLIB_INSTALL_NAME_BASE': '@loader_path',
}
-# TODO(GYP): clearkeycdmadapter_resources
+clearkeycdmadapter_rc_file = "$target_gen_dir/clearkeycdmadapter_version.rc"
-group("clearkeycdmadapter") {
+process_version("clearkeycdmadapter_resources") {
+ visibility = [ ":*" ]
+ sources = [
+ "external_clear_key/BRANDING",
+ "//media/clearkeycdmadapter.ver",
+ ]
+ output = clearkeycdmadapter_rc_file
+}
+
+cdm_adapter("clearkeycdmadapter") {
+ sources = [
+ clearkeycdmadapter_rc_file,
+ ]
+
+ # Check whether the plugin's origin URL is valid.
+ defines = [ "CHECK_DOCUMENT_URL" ]
deps = [
- #":cdmadapter", TODO(GYP)
":clearkeycdm",
-
- #":clearkeycdmadapter_resources", TODO(GYP)
+ ":clearkeycdmadapter_resources",
"//ppapi/cpp",
]
+
+ if (is_posix && !is_mac && enable_pepper_cdms) {
+ # Because clearkeycdm has type 'loadable_module', we must explicitly
+ # specify this dependency.
+ ldflags = [ rebase_path("$root_out_dir/libclearkeycdm.so", root_build_dir) ]
+ libs = [ "rt" ]
+ }
}
diff --git a/media/cdm/ppapi/cdm_adapter.gni b/media/cdm/ppapi/cdm_adapter.gni
new file mode 100644
index 0000000..cee8ce6
--- /dev/null
+++ b/media/cdm/ppapi/cdm_adapter.gni
@@ -0,0 +1,129 @@
+# 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.
+
+# This template defines a CDM adapter target. Just use this as you would a
+# normal target and everything should work correctly. If GYP, you would instead
+# depend on media/media_cdm_adapter.gyp:cdmadapter which would in turn modify
+# your target with direct_dependent_settings.
+template("cdm_adapter") {
+ # TODO(GYP) On Mac/Linux this should be a loadable_module.
+ shared_library(target_name) {
+ # Don't filter sources list again.
+ set_sources_assignment_filter([])
+
+ sources = [
+ "//media/cdm/ppapi/api/content_decryption_module.h",
+ "//media/cdm/ppapi/cdm_adapter.cc",
+ "//media/cdm/ppapi/cdm_adapter.h",
+ "//media/cdm/ppapi/cdm_file_io_impl.cc",
+ "//media/cdm/ppapi/cdm_file_io_impl.h",
+ "//media/cdm/ppapi/cdm_helpers.cc",
+ "//media/cdm/ppapi/cdm_helpers.h",
+ "//media/cdm/ppapi/cdm_logging.cc",
+ "//media/cdm/ppapi/cdm_logging.h",
+ "//media/cdm/ppapi/cdm_wrapper.h",
+ "//media/cdm/ppapi/linked_ptr.h",
+ "//media/cdm/ppapi/supported_cdm_versions.h",
+ ]
+ if (defined(invoker.sources)) {
+ sources += invoker.sources
+ }
+
+ if (is_mac) {
+ ldflags = [
+ # Not to strip important symbols by -Wl,-dead_strip.
+ "-Wl,-exported_symbol,_PPP_GetInterface",
+ "-Wl,-exported_symbol,_PPP_InitializeModule",
+ "-Wl,-exported_symbol,_PPP_ShutdownModule",
+ ]
+ #TODO(GYP) Mac: 'DYLIB_INSTALL_NAME_BASE': '@loader_path',
+ } else if (is_posix && !is_mac) {
+ cflags = [ "-fvisibility=hidden" ]
+ # Note GYP sets rpath but this is set by default on shared libraries in
+ # the GN build.
+ }
+
+ # TODO(jschuh) crbug.com/167187
+ configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
+
+ if (defined(invoker.all_dependent_configs)) {
+ all_dependent_configs = invoker.all_dependent_configs
+ }
+ if (defined(invoker.allow_circular_includes_from)) {
+ allow_circular_includes_from = invoker.allow_circular_includes_from
+ }
+ if (defined(invoker.cflags)) {
+ cflags = invoker.cflags
+ }
+ if (defined(invoker.cflags_c)) {
+ cflags_c = invoker.cflags_c
+ }
+ if (defined(invoker.cflags_cc)) {
+ cflags_cc = invoker.cflags_cc
+ }
+ if (defined(invoker.cflags_objc)) {
+ cflags_objc = invoker.cflags_objc
+ }
+ if (defined(invoker.cflags_objcc)) {
+ cflags_objcc = invoker.cflags_objcc
+ }
+ if (defined(invoker.check_includes)) {
+ check_includes = invoker.check_includes
+ }
+ if (defined(invoker.data)) {
+ data = invoker.data
+ }
+ if (defined(invoker.data_deps)) {
+ data_deps = invoker.data_deps
+ }
+ if (defined(invoker.datadeps)) {
+ datadeps = invoker.datadeps
+ }
+ if (defined(invoker.defines)) {
+ defines = invoker.defines
+ }
+ if (defined(invoker.deps)) {
+ deps = invoker.deps
+ }
+ if (defined(invoker.direct_dependent_configs)) {
+ direct_dependent_configs = invoker.direct_dependent_configs
+ }
+ if (defined(invoker.forward_dependent_configs_from)) {
+ forward_dependent_configs_from = invoker.forward_dependent_configs_from
+ }
+ if (defined(invoker.include_dirs)) {
+ include_dirs = invoker.include_dirs
+ }
+ if (defined(invoker.ldflags)) {
+ ldflags = invoker.ldflags
+ }
+ if (defined(invoker.lib_dirs)) {
+ lib_dirs = invoker.lib_dirs
+ }
+ if (defined(invoker.libs)) {
+ libs = invoker.libs
+ }
+ if (defined(invoker.output_extension)) {
+ output_extension = invoker.output_extension
+ }
+ if (defined(invoker.output_name)) {
+ output_name = invoker.output_name
+ }
+ if (defined(invoker.public)) {
+ public = invoker.public
+ }
+ if (defined(invoker.public_configs)) {
+ public_configs = invoker.public_configs
+ }
+ if (defined(invoker.public_deps)) {
+ public_deps = invoker.public_deps
+ }
+ if (defined(invoker.testonly)) {
+ testonly = invoker.testonly
+ }
+ if (defined(invoker.visibility)) {
+ visibility = invoker.visibility
+ }
+ }
+}
diff --git a/media/media_cdm.gypi b/media/media_cdm.gypi
index 85c8276..7d92732 100644
--- a/media/media_cdm.gypi
+++ b/media/media_cdm.gypi
@@ -98,6 +98,7 @@
'msvs_disabled_warnings': [ 4267, ],
},
{
+ # GN version: //media/cdm/ppapi:clearkeycdmadapter_resources
'target_name': 'clearkeycdmadapter_resources',
'type': 'none',
'conditions': [
diff --git a/media/media_cdm_adapter.gyp b/media/media_cdm_adapter.gyp
index bb21c96..d833819 100644
--- a/media/media_cdm_adapter.gyp
+++ b/media/media_cdm_adapter.gyp
@@ -16,8 +16,8 @@
['enable_pepper_cdms==1', {
'targets': [
{
- # For GN, we may want a template that defines a target of the right
- # type with the right dependencies.
+ # GN version: Use the template cdm_adapter in
+ # //media/cdm/ppapi/cdm_adapter.gni.
'target_name': 'cdmadapter',
'type': 'none',
'direct_dependent_settings': {
diff --git a/net/third_party/nss/ssl/BUILD.gn b/net/third_party/nss/ssl/BUILD.gn
index a40b71b..d8f7961 100644
--- a/net/third_party/nss/ssl/BUILD.gn
+++ b/net/third_party/nss/ssl/BUILD.gn
@@ -96,6 +96,10 @@ component("libssl") {
if (is_clang) {
# SSL triggers some of these Clang warnings.
configs -= [ "//build/config/clang:extra_warnings" ]
+
+ # There is a broken header guard in /usr/include/nss/secmod.h:
+ # https://bugzilla.mozilla.org/show_bug.cgi?id=884072
+ cflags = [ "-Wno-header-guard" ]
}
if (is_posix) {
diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn
index d322294..3fce784 100644
--- a/third_party/widevine/cdm/BUILD.gn
+++ b/third_party/widevine/cdm/BUILD.gn
@@ -2,6 +2,10 @@
# 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("//chrome/version.gni") # TODO layering violation
+import("//media/cdm/ppapi/cdm_adapter.gni")
+
widevine_arch = current_cpu
if (widevine_arch == "x86") {
widevine_arch = "ia32"
@@ -70,26 +74,46 @@ if (widevine_cdm_binary_files == []) {
}
}
-source_set("adapter") {
- if (is_chrome_branded) {
+if (is_chrome_branded && enable_pepper_cdms) {
+ adapter_resource_file = "$target_gen_dir/widevinecdmadapter_version.rc"
+
+ # Produce the .rc file.
+ process_version("adapter_resources") {
+ visibility = [ ":*" ]
+ sources = [
+ "BRANDING",
+ "widevinecdmadapter.ver",
+ ]
+ output = adapter_resource_file
+ }
+
+ cdm_adapter("adapter") {
+ sources = [
+ adapter_resource_file,
+ ]
deps = [
- ":version_h",
+ ":adapter_resources",
":binaries",
+ ":version_h",
"//ppapi/cpp",
-
- #'<(DEPTH)/media/media_cdm_adapter.gyp:cdmadapter', TODO(GYP)
]
if (is_linux) {
- libs = [ rebase_path("$root_out_dir/libwidevinecdm.so", root_build_dir) ]
+ ldflags =
+ [ rebase_path("$root_out_dir/libwidevinecdm.so", root_build_dir) ]
+ libs = [ "rt" ]
} else if (is_win) {
- libs =
+ ldflags =
[ rebase_path("$root_out_dir/widevinecdm.dll.lib", root_build_dir) ]
} else if (is_mac) {
- libs =
+ ldflags =
[ rebase_path("$root_out_dir/libwidevinecdm.dylib", root_build_dir) ]
}
}
+} else {
+ # Placeholder when we're not compiling the adapter.
+ group("adapter") {
+ }
}
# This target exists for tests to depend on that pulls in a runtime dependency
diff --git a/third_party/widevine/cdm/widevine_cdm.gyp b/third_party/widevine/cdm/widevine_cdm.gyp
index d21d3474..eacbdb3 100644
--- a/third_party/widevine/cdm/widevine_cdm.gyp
+++ b/third_party/widevine/cdm/widevine_cdm.gyp
@@ -54,6 +54,7 @@
# anything to be done in this file (instead of a higher-level .gyp file).
'targets': [
{
+ # GN version: //third_party/widevine/cdm:adapter_resources
'target_name': 'widevinecdmadapter_resources',
'type': 'none',
'conditions': [