Index: third_party/widevine/cdm/BUILD.gn |
diff --git a/third_party/widevine/cdm/BUILD.gn b/third_party/widevine/cdm/BUILD.gn |
index 3fce784ad36a59bdcca36b6239cac6b1cb12110a..8ebea0ab0d73fa435c5bd967f60296688810f461 100644 |
--- a/third_party/widevine/cdm/BUILD.gn |
+++ b/third_party/widevine/cdm/BUILD.gn |
@@ -5,6 +5,7 @@ |
import("//build/config/features.gni") |
import("//chrome/version.gni") # TODO layering violation |
import("//media/cdm/ppapi/cdm_adapter.gni") |
+import("//third_party/widevine/cdm/widevine.gni") |
widevine_arch = current_cpu |
if (widevine_arch == "x86") { |
@@ -37,6 +38,9 @@ if (is_android) { |
widevine_cdm_version_h_file = "widevine_cdm_version.h" |
widevine_cdm_binary_files = [] |
} |
+} else if (enable_widevine) { |
+ widevine_cdm_version_h_file = "stub/widevine_cdm_version.h" |
+ widevine_cdm_binary_files = [] |
} else { |
# No branding, use the default one. |
widevine_cdm_version_h_file = "widevine_cdm_version.h" |
@@ -57,13 +61,9 @@ copy("version_h") { |
] |
} |
-# GYP version: third_party/widevine/cdm/widevine_cdm.gyp:widevine_cdm_binaries |
-if (widevine_cdm_binary_files == []) { |
- group("binaries") { |
- # NOP |
- } |
-} else { |
- copy("binaries") { |
+# GYP version: third_party/widevine/cdm/widevine_cdm.gyp:widevinecdm |
+if (widevine_cdm_binary_files != []) { |
DaleCurtis
2015/04/13 18:35:58
is the != [] necessary, does !widevine_cdm_binary_
jrummell
2015/04/13 22:22:35
Doesn't work. Error is "Operand of ! operator is n
|
+ copy("widevinecdm") { |
sources = widevine_cdm_binary_files |
outputs = [ |
"$root_out_dir/{{source_file_part}}", |
@@ -72,13 +72,46 @@ if (widevine_cdm_binary_files == []) { |
# TODO(GYP) |
xhwang
2015/04/14 21:27:30
Here and below, put a real name after TODO.
jrummell
2015/04/14 22:47:43
Done.
|
# 'COPY_PHASE_STRIP': 'NO', |
} |
+} else if (!is_android && !is_chrome_branded && enable_widevine) { |
xhwang
2015/04/14 21:27:30
Can we do something like?
else if (!is_android &&
xhwang
2015/04/14 21:27:30
Here !is_android is pretty much the same as enable
jrummell
2015/04/14 22:47:43
Done.
jrummell
2015/04/14 22:47:43
Done.
|
+ # TODO(GYP) On Mac/Linux this should be a loadable_module. |
jrummell
2015/04/14 22:47:43
Removed this TODO since it came from cdm_adapter t
|
+ shared_library("widevinecdm") { |
+ sources = [ |
+ "//media/cdm/stub/stub_cdm.cc", |
+ "//media/cdm/stub/stub_cdm.h", |
+ ] |
+ |
+ defines = [ "CDM_IMPLEMENTATION" ] |
+ |
+ deps = [ |
+ ":version_h", |
+ "//base", |
+ ] |
+ |
+ 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. |
+ } |
+ } |
+} else { |
+ group("widevinecdm") { |
+ # NOP |
+ } |
} |
-if (is_chrome_branded && enable_pepper_cdms) { |
+if ((is_chrome_branded || enable_widevine) && enable_pepper_cdms) { |
adapter_resource_file = "$target_gen_dir/widevinecdmadapter_version.rc" |
# Produce the .rc file. |
- process_version("adapter_resources") { |
+ process_version("widevinecdmadapter_resources") { |
visibility = [ ":*" ] |
sources = [ |
"BRANDING", |
@@ -87,13 +120,13 @@ if (is_chrome_branded && enable_pepper_cdms) { |
output = adapter_resource_file |
} |
- cdm_adapter("adapter") { |
+ cdm_adapter("widevinecdmadapter") { |
sources = [ |
adapter_resource_file, |
] |
deps = [ |
- ":adapter_resources", |
- ":binaries", |
+ ":widevinecdmadapter_resources", |
+ ":widevinecdm", |
":version_h", |
"//ppapi/cpp", |
] |
@@ -112,7 +145,7 @@ if (is_chrome_branded && enable_pepper_cdms) { |
} |
} else { |
# Placeholder when we're not compiling the adapter. |
- group("adapter") { |
+ group("widevinecdmadapter") { |
} |
} |