diff options
-rw-r--r-- | chrome/BUILD.gn | 37 | ||||
-rw-r--r-- | chrome/android/BUILD.gn | 2 | ||||
-rw-r--r-- | chrome/chrome_watcher/BUILD.gn | 8 | ||||
-rw-r--r-- | chrome/common/BUILD.gn | 4 | ||||
-rw-r--r-- | chrome/test/BUILD.gn | 16 | ||||
-rw-r--r-- | chrome/version.gni | 64 | ||||
-rw-r--r-- | chrome_elf/BUILD.gn | 8 | ||||
-rw-r--r-- | components/data_reduction_proxy/core/common/BUILD.gn | 4 | ||||
-rw-r--r-- | components/data_reduction_proxy/core/common/version.gni | 53 | ||||
-rw-r--r-- | crypto/BUILD.gn | 9 | ||||
-rw-r--r-- | extensions/shell/BUILD.gn | 2 | ||||
-rw-r--r-- | media/cdm/ppapi/BUILD.gn | 32 | ||||
-rw-r--r-- | media/cdm/ppapi/cdm_adapter.gni | 129 | ||||
-rw-r--r-- | media/media_cdm.gypi | 1 | ||||
-rw-r--r-- | media/media_cdm_adapter.gyp | 4 | ||||
-rw-r--r-- | net/third_party/nss/ssl/BUILD.gn | 4 | ||||
-rw-r--r-- | third_party/widevine/cdm/BUILD.gn | 40 | ||||
-rw-r--r-- | third_party/widevine/cdm/widevine_cdm.gyp | 1 |
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': [ |