Chromium Code Reviews| Index: third_party/widevine/cdm/BUILD.gn |
| diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn |
| index dda97991ca4b0c533ae7a5830d9e9d9195a86811..028339ad20551620b804479643e3ee34bb775320 100644 |
| --- a/third_party/widevine/cdm/BUILD.gn |
| +++ b/third_party/widevine/cdm/BUILD.gn |
| @@ -18,6 +18,16 @@ if (widevine_arch == "x86") { |
| widevine_cdm_binary_files = [] |
| widevine_cdm_manifest_file = [] |
| +# Due to crbug.com/707488, in linux and chromeos chrome, we temporarily use |
| +# stub cdm for building cdm adapter and copy the real cdm after that. |
| +# The stub libwidevinecdm.so is in the sub-directory "./stub_cdm" to avoid |
| +# GN's complaint about generating the same output in two targets. |
| +# TODO(hmchen): Revert this change after crbug.com/707488 fixed. |
| +use_stub_cdm_for_chrome = false |
| +if (is_chrome_branded && (is_linux || is_chromeos)) { |
|
xhwang
2017/04/04 17:45:10
is_linux includes is_chromeos, so "is_chromeos" is
Haoming Chen
2017/04/04 18:11:45
Done. Also fixed line 100.
|
| + use_stub_cdm_for_chrome = true |
| +} |
| + |
| if (is_android) { |
| # Always available on Android regardless of branding. |
| widevine_cdm_version_h_file = "android/widevine_cdm_version.h" |
| @@ -82,7 +92,40 @@ source_set("headers") { |
| ] |
| } |
| -if (widevine_cdm_binary_files != []) { |
| +if (use_stub_cdm_for_chrome) { |
| + widevine_cdm_binary_files = [] |
| + copy("copy_widevinecdm") { |
| + if (is_linux) { |
| + widevine_cdm = [ "linux/$widevine_arch/libwidevinecdm.so" ] |
| + } else if (is_chromeos) { |
| + widevine_cdm = [ "chromeos/$widevine_arch/libwidevinecdm.so" ] |
| + } |
| + sources = widevine_cdm |
| + outputs = [ |
| + "$root_out_dir/$widevine_cdm_path/{{source_file_part}}", |
| + ] |
| + } |
| + |
| + shared_library("widevinecdm") { |
| + output_dir = "$root_out_dir/$widevine_cdm_path/stub_cdm" |
| + sources = [ |
| + "//media/cdm/stub/stub_cdm.cc", |
| + "//media/cdm/stub/stub_cdm.h", |
| + ] |
| + |
| + defines = [ "CDM_IMPLEMENTATION" ] |
| + |
| + deps = [ |
| + ":version_h", |
| + ":copy_widevinecdm", |
| + "//base", |
| + "//build/config/sanitizers:deps", |
| + ] |
| + |
| + public_deps = [ ":copy_widevinecdm" ] |
| + cflags = [ "-fvisibility=hidden" ] |
| + } |
| +} else if (widevine_cdm_binary_files != []) { |
| copy("widevinecdm") { |
| sources = widevine_cdm_binary_files |
| outputs = [ |
| @@ -165,7 +208,7 @@ if ((is_chrome_branded || enable_widevine) && enable_pepper_cdms) { |
| ":widevinecdm", |
| ] |
| - if (is_linux) { |
| + if (is_linux && !use_stub_cdm_for_chrome) { |
| ldflags = |
| [ rebase_path("$root_out_dir/$widevine_cdm_path/libwidevinecdm.so", |
| root_build_dir) ] |