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..10a61b97623e047043c9cbdf164a513f4e9ee5b4 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,28 +61,58 @@ 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 != []) { |
+ copy("widevinecdm") { |
sources = widevine_cdm_binary_files |
outputs = [ |
"$root_out_dir/{{source_file_part}}", |
] |
- # TODO(GYP) |
+ # TODO(jrummell) |
# 'COPY_PHASE_STRIP': 'NO', |
} |
+} else if (enable_widevine && enable_pepper_cdms) { |
+ assert(!is_chrome_branded, "Branded Chrome should have binary files to copy.") |
+ assert(!is_android, "Android should not have enable_pepper_cdms.") |
+ 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(jrummell) 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 +121,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 +146,7 @@ if (is_chrome_branded && enable_pepper_cdms) { |
} |
} else { |
# Placeholder when we're not compiling the adapter. |
- group("adapter") { |
+ group("widevinecdmadapter") { |
} |
} |
@@ -121,7 +155,7 @@ if (is_chrome_branded && enable_pepper_cdms) { |
source_set("widevine_test_license_server") { |
if (is_chrome_branded && is_linux) { |
deps = [ |
- # TODO(GYP) |
+ # TODO(jrummell) |
# This target should be removed and targets should have datadeps on this target: |
#"//third_party/widevine/test/license_server/license_server.gyp:test_license_server" |
] |