Chromium Code Reviews| Index: chrome/BUILD.gn |
| diff --git a/chrome/BUILD.gn b/chrome/BUILD.gn |
| index d6e93d34e896c90421074a595c7488e3c7b4859a..3e154b6eadbbdbcc33d54552e777f7339dcba2e0 100644 |
| --- a/chrome/BUILD.gn |
| +++ b/chrome/BUILD.gn |
| @@ -648,6 +648,10 @@ if (is_win) { |
| # verify_chrome_framework_order depends on :chrome_framework and, for |
| # non-component builds, will ensure the export symbol table is correct. |
| ":verify_chrome_framework_order", |
| + |
| + # framework_signed_for_widevine depends on :chrome_framework as the |
| + # framework needs to be linked before signing can occur. |
| + ":framework_signed_for_widevine", |
| ] |
| } |
| @@ -887,6 +891,111 @@ if (is_win) { |
| "//third_party/widevine/cdm:widevine_cdm_manifest", |
| ] |
| } |
| + |
| + # Bundle the signature files for Widevine and the CdmAdapter. |
|
xhwang
2017/01/26 01:22:56
nit: s/Widevine and the CdmAdapter/Widevine CDM an
jrummell
2017/01/27 23:13:41
Removed.
|
| + bundle_data("widevine_cdm_library_signatures") { |
| + sources = [ |
| + "$root_out_dir/signatures/libwidevinecdm.dylib.sig", |
| + "$root_out_dir/signatures/widevinecdmadapter.plugin.sig", |
| + ] |
| + |
| + # Signature files must end up in the same directory as the |
| + # file they are created for. |
| + outputs = [ |
| + "{{bundle_root_dir}}/Libraries/$widevine_cdm_path/{{source_file_part}}", |
| + ] |
| + public_deps = [ |
| + ":widevine_copy_cdm_library_signature", |
| + ":widevine_generate_cdm_adapter_signature", |
| + ] |
| + } |
| + |
| + copy("widevine_copy_cdm_library_signature") { |
| + sources = [ |
| + "$root_out_dir/$widevine_cdm_path/libwidevinecdm.dylib.sig", |
| + ] |
| + outputs = [ |
| + "$root_out_dir/signatures/{{source_file_part}}", |
| + ] |
| + deps = [ |
| + "//third_party/widevine/cdm:widevinecdm", |
| + ] |
| + } |
| + |
| + action("widevine_generate_cdm_adapter_signature") { |
| + script = "//third_party/widevine/scripts/signature_generator.py" |
| + plugin = "$root_out_dir/$widevine_cdm_path/widevinecdmadapter.plugin" |
| + signature_file = "$root_out_dir/signatures/widevinecdmadapter.plugin.sig" |
|
xhwang
2017/01/26 01:22:56
Is it possible that we generate the sig file direc
jrummell
2017/01/27 23:13:41
Done.
|
| + sources = [ |
| + "$plugin", |
| + ] |
| + outputs = [ |
| + "$signature_file", |
| + ] |
| + args = [ |
| + "--input_file", |
| + rebase_path("$plugin", root_build_dir), |
| + "--output_file", |
| + rebase_path("$signature_file", root_build_dir), |
| + ] |
| + deps = [ |
| + "//third_party/widevine/cdm:widevinecdmadapter", |
| + ] |
| + } |
| + |
| + # Bundle the framework signature. As the framework can only be signed once |
| + # the framework has been linked, bundle it into the app as well as copy |
| + # it next to the framework. |
| + bundle_data("widevine_framework_signature") { |
| + sources = [ |
| + "$root_out_dir/signatures/$chrome_framework_name.sig", |
| + ] |
| + |
| + # Signature files must end up in the same directory as the |
| + # file they are created for. |
| + outputs = [ |
| + "{{bundle_root_dir}}/Versions/$chrome_version_full/$chrome_framework_name.framework/{{source_file_part}}", |
| + ] |
| + public_deps = [ |
| + ":widevine_copy_framework_signature", |
| + ":widevine_generate_framework_signature", |
| + ] |
| + } |
| + |
| + # As the framework is signed after the local bundle is created, copy the |
| + # signature into the local bundle. |
| + copy("widevine_copy_framework_signature") { |
| + sources = [ |
| + "$root_out_dir/signatures/$chrome_framework_name.sig", |
| + ] |
| + outputs = [ |
| + "$root_out_dir/$chrome_framework_name.framework/$chrome_framework_name.sig", |
| + ] |
| + public_deps = [ |
| + ":widevine_generate_framework_signature", |
| + ] |
| + } |
| + |
| + action("widevine_generate_framework_signature") { |
| + script = "//third_party/widevine/scripts/signature_generator.py" |
| + framework = "$root_out_dir/$chrome_framework_name.framework/$chrome_framework_name" |
| + signature_file = "$root_out_dir/signatures/$chrome_framework_name.sig" |
|
xhwang
2017/01/26 01:22:56
Is it possible to generate the framework sig file
jrummell
2017/01/27 23:13:41
Done.
|
| + sources = [ |
| + "$framework", |
| + ] |
| + outputs = [ |
| + "$signature_file", |
| + ] |
| + args = [ |
| + "--input_file", |
| + rebase_path("$framework", root_out_dir), |
| + "--output_file", |
| + rebase_path("$signature_file", root_out_dir), |
| + ] |
| + public_deps = [ |
| + ":chrome_framework", |
| + ] |
| + } |
| } |
| group("widevine_cdm_library") { |
| @@ -895,6 +1004,20 @@ if (is_win) { |
| ":widevine_cdm_library_binaries", |
| ":widevine_cdm_library_manifest", |
| ] |
| + |
| + # Signatures are only generated for official chrome. |
| + if (is_chrome_branded) { |
| + deps += [ ":widevine_cdm_library_signatures" ] |
| + } |
| + } |
| + } |
| + |
| + group("framework_signed_for_widevine") { |
| + # Only do this for official Chrome. |
| + if (is_chrome_branded && _should_bundle_widevine) { |
| + deps = [ |
| + ":widevine_framework_signature", |
| + ] |
| } |
| } |