blob: 091ca56a424bc6fdb841c9229dfa84c998003aab [file] [log] [blame]
# Copyright 2017 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.
import("//media/media_options.gni")
if (enable_library_cdms) {
source_set("cdm_api") {
sources = [
"api/content_decryption_module.h",
]
}
}
source_set("cdm") {
# Do not expand the visibility here without double-checking with OWNERS, this
# is a roll-up target which is part of the //media component. Most other DEPs
# should be using //media and not directly DEP this roll-up target.
visibility = [
"//media",
# TODO(crbug.com/583067): These files should not be in //media/base.
"//media/base/android",
"//media/filters",
]
sources = [
"aes_cbc_crypto.cc",
"aes_cbc_crypto.h",
"aes_decryptor.cc",
"aes_decryptor.h",
"cbcs_decryptor.cc",
"cbcs_decryptor.h",
"cdm_context_ref_impl.cc",
"cdm_context_ref_impl.h",
"cenc_decryptor.cc",
"cenc_decryptor.h",
# TODO(crbug.com/676224): Move this to |enable_library_cdms| block below
# when EnabledIf attribute is supported in mojom.
"cdm_proxy.cc",
"cdm_proxy.h",
"cdm_proxy_context.cc",
"cdm_proxy_context.h",
"cenc_utils.cc",
"cenc_utils.h",
"default_cdm_factory.cc",
"default_cdm_factory.h",
"json_web_key.cc",
"json_web_key.h",
"player_tracker_impl.cc",
"player_tracker_impl.h",
]
# TODO(crbug.com/167187): Fix size_t to int truncations.
configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]
deps = [
"//crypto",
"//media/base",
"//media/formats",
"//third_party/boringssl",
"//ui/gfx/geometry",
"//url",
]
configs += [ "//media:subcomponent_config" ]
if (enable_library_cdms) {
deps += [
":cdm_api",
":cdm_paths",
"//components/crash/core/common:crash_key",
]
sources += [
"cdm_adapter.cc",
"cdm_adapter.h",
"cdm_adapter_factory.cc",
"cdm_adapter_factory.h",
"cdm_allocator.cc",
"cdm_allocator.h",
"cdm_auxiliary_helper.cc",
"cdm_auxiliary_helper.h",
"cdm_helpers.cc",
"cdm_helpers.h",
"cdm_module.cc",
"cdm_module.h",
"cdm_type_conversion.cc",
"cdm_type_conversion.h",
"cdm_wrapper.h",
"output_protection.h",
"platform_verification.h",
"supported_cdm_versions.cc",
"supported_cdm_versions.h",
]
if (enable_cdm_host_verification) {
sources += [
"cdm_host_file.cc",
"cdm_host_file.h",
"cdm_host_files.cc",
"cdm_host_files.h",
]
}
}
}
config("cdm_manager_implementation") {
defines = [ "CDM_MANAGER_IMPLEMENTATION" ]
}
# cdm_manager must not be a source_set() because CdmManager exposes a static
# singleton, shared by multiple component()s.
#
# TODO(xhwang): Remove this component once AVDA no longer depends on it.
component("cdm_manager") {
visibility = [
"//media/gpu",
"//media/mojo/services",
]
sources = [
"cdm_manager.cc",
"cdm_manager.h",
"cdm_manager_export.h",
]
configs += [ ":cdm_manager_implementation" ]
deps = [
"//base",
"//media",
]
}
static_library("cdm_paths") {
sources = [
"cdm_paths.cc",
"cdm_paths.h",
]
deps = [
"//base",
]
}
source_set("unit_tests") {
testonly = true
sources = [
"aes_cbc_crypto_unittest.cc",
"aes_decryptor_unittest.cc",
"cbcs_decryptor_unittest.cc",
"cenc_decryptor_unittest.cc",
"json_web_key_unittest.cc",
]
deps = [
"//base/test:test_support",
"//crypto",
"//media:test_support",
"//testing/gmock",
"//testing/gtest",
"//third_party/boringssl",
"//ui/gfx:test_support",
"//url",
]
configs += [
# TODO(crbug.com/167187): Fix size_t to int truncations.
"//build/config/compiler:no_size_t_to_int_warning",
"//media:media_config",
]
data_deps = []
if (enable_library_cdms) {
sources += [
"cdm_adapter_unittest.cc",
"external_clear_key_test_helper.cc",
"external_clear_key_test_helper.h",
"mock_helpers.cc",
"mock_helpers.h",
"simple_cdm_allocator.cc",
"simple_cdm_allocator.h",
"simple_cdm_allocator_unittest.cc",
"simple_cdm_buffer.cc",
"simple_cdm_buffer.h",
]
data_deps += [ "//media/cdm/library_cdm/clear_key_cdm" ]
deps += [
":cdm_api",
":cdm_paths",
"//media/cdm/library_cdm:cdm_host_proxy",
"//media/cdm/library_cdm:test_support",
]
}
if (proprietary_codecs) {
sources += [ "cenc_utils_unittest.cc" ]
}
}