219 lines
9.7 KiB
Python
219 lines
9.7 KiB
Python
# Copyright 2020 Google LLC. All Rights Reserved. This file and proprietary
|
|
# source code may only be used and distributed under the Widevine License
|
|
# Agreement.
|
|
|
|
# This file contains all the variables that Widevine exposes for integration
|
|
# partners to customize in their platforms' settings.gypi files. Partners will
|
|
# usually need to override some or all of these variables in the 'variables'
|
|
# section of their platform's settings.gypi file.
|
|
#
|
|
# This file is included into multiple GYP files throughout the project. Those
|
|
# files may also define their own variables. However, variables defined outside
|
|
# this file are *not* intended to be overridden by integration partners. If
|
|
# your device requires overriding a variable from outside this file, please let
|
|
# Widevine know so that we can evaluate whether it should be included in this
|
|
# file or whether there is a better way to achieve what you are trying to
|
|
# achieve.
|
|
{
|
|
'variables': {
|
|
# Choose whether the client information is compiled into the binary at
|
|
# compile-time or whether it is gathered by the CDM at runtime. The client
|
|
# information ends up as client identification in license requests. All
|
|
# values may be used by a license server proxy to drive business logic.
|
|
# Valid values are:
|
|
#
|
|
# 'compiled' - The client information is read from the platform properties
|
|
# and compiled into the CE CDM binary. The platform properties
|
|
# that define client info must be defined.
|
|
#
|
|
# 'runtime' - The client information is read at runtime using
|
|
# read_client_info.h. The property 'read_client_info_path' must
|
|
# also be defined, pointing to a GYP target that provides an
|
|
# implementation of read_client_info.h.
|
|
'client_info_source%': 'compiled',
|
|
|
|
# The following variables define the client info that is baked into the CDM
|
|
# binary at build-time. If 'client_info_source' is 'compiled'. You *must*
|
|
# set meaningful values for all of these variables as part of defining your
|
|
# platform. Values may not contain double quotes, percent signs, or the
|
|
# substring " | ". (a vertical pipe surrounded by spaces) If
|
|
# 'client_info_source' is 'runtime', these variables are ignored.
|
|
|
|
# The name of the company who makes the client, e.g. "KubrickTech".
|
|
# This should match the "Make" field in the Widevine Integration Console.
|
|
#'client_company_name%': '',
|
|
|
|
# The client's model name, e.g. "HAL 9000".
|
|
# This should match the "Model" field in the Widevine Integration Console.
|
|
#'client_model_name%': '',
|
|
|
|
# The client's model year, e.g. "2001".
|
|
# Can be used to distinguish different devices with the same model name.
|
|
# This should match the "Year" field in the Widevine Integration Console.
|
|
#'client_model_year%': '',
|
|
|
|
# The name or codename of the product or application, e.g. "clarke".
|
|
# This may be the same as "client_model_name".
|
|
#'client_product_name%': '',
|
|
|
|
# The name or codename of the client, e.g. "HAL".
|
|
# This may be the same as "client_model_name" or "client_product_name".
|
|
#'client_device_name%': '',
|
|
|
|
# The CPU architecture of the client, e.g. "ARMv7".
|
|
#'client_arch_name%': '',
|
|
# The OS platform of the client, e.g. "Linux".
|
|
# This should match the "Platform" field in the Widevine Integration
|
|
# Console.
|
|
#'client_platform%': '',
|
|
|
|
# The form factor of the client, e.g. "TV".
|
|
# This should match the "Type" field in the Widevine Integration Console.
|
|
#'client_form_factor%': '',
|
|
|
|
# The version number of the client that the CE CDM is integrated into. This
|
|
# is the operating system or app version, not the CDM version.
|
|
#'client_version%': '',
|
|
|
|
# If 'client_info_source' is 'runtime', this variable must be set to the
|
|
# path to a GYP target that provides an implementation of
|
|
# read_client_info.h. This implementation will be compiled into the CDM and
|
|
# used at runtime to get the client info. If 'client_info_source' is
|
|
# 'compiled', this variable is ignored.
|
|
'read_client_info_path%': '',
|
|
|
|
|
|
# Choose type of OEMCrypto library to compile in. Valid values are:
|
|
#
|
|
# 'vendor' - Production Level 1 systems should use 'vendor' to indicate that
|
|
# they are providing their own OEMCrypto library and the Widevine
|
|
# CE CDM build system is not responsible for building anything.
|
|
#
|
|
# 'level3' - Partners who have received a Widevine-generated Level 3 library
|
|
# should use 'level3' to indicate that the Widevine CE CDM build
|
|
# system should include it in the build.
|
|
#
|
|
# 'target' - If your vendor OEMCrypto is built using GYP and you would like
|
|
# the Widevine CE CDM build system to build it as part of the CE
|
|
# CDM build process, you can use 'target' and also set the
|
|
# variable 'oemcrypto_gyp_path' below. Most vendors will want to
|
|
# use 'vendor', above, instead. This setting exists primarily for
|
|
# Google's internal testing.
|
|
#'oemcrypto_lib%': '',
|
|
|
|
# You only need to set this value if you set 'oemcrypto_lib' to 'target'
|
|
# above.
|
|
#'oemcrypto_gyp_path%': '',
|
|
|
|
# Choose the oemcrypto adapter type. Valid values are:
|
|
#
|
|
# 'static' - (default). Statically link oemcrypto into the tests.
|
|
# other values - for internal testing.
|
|
'oemcrypto_adapter_type%': 'static',
|
|
|
|
# Whether to include OTA Keybox functionality or not. This is an optional
|
|
# feature that is only used a few platforms. Generally, to qualify as an L1
|
|
# device, a keybox must be installed on the device in the factory.
|
|
# Valid values are 'true' or 'false'.
|
|
'support_ota_keybox_functions%': 'false',
|
|
|
|
# Compile with clang source based code coverage tool when run a code coverage
|
|
# build by set this to true.
|
|
'generate_code_coverage_report%': 'false',
|
|
|
|
# Override this to indicate what CPU architecture's assembly-language files
|
|
# should be used when building assembly language files. Or, set it to
|
|
# "none" to turn off the use of assembly language. The default is "none" for
|
|
# compatibility, but we strongly recommend overriding this value to
|
|
# improve performance. Turning it off or leaving it turned off is not
|
|
# recommended unless your CPU architecture is unsupported or you are using
|
|
# a tool that does not play nice with assembly language, like Address
|
|
# Sanitizer.
|
|
#
|
|
# Valid values are:
|
|
# * x86
|
|
# * x64 or x86-64
|
|
# * arm
|
|
# * arm64
|
|
# * ppc64
|
|
# * none
|
|
'asm_target_arch%': 'none',
|
|
|
|
# When building on Windows, we have to use the NASM assembler. By default
|
|
# we disable assembly on Windows since this is usually not installed. You
|
|
# can override it with these variables.
|
|
'has_nasm%': 'false',
|
|
'nasm_path%': 'nasm.exe',
|
|
|
|
# Although OEMCrypto is used to perform secure crypto operations, the
|
|
# Widevine CE CDM also needs a crypto library to perform non-secure crypto
|
|
# operations for Privacy Mode and Provisioning 3.0. By default, the copy
|
|
# of BoringSSL in third_party/boringssl/ is compiled statically into the CE
|
|
# CDM with hidden linkage. However, by overriding these values, partners can
|
|
# choose to use other crypto libraries.
|
|
#
|
|
# Valid values are:
|
|
# * boringssl
|
|
# * openssl
|
|
# * dummy
|
|
#
|
|
# If this option is set to 'dummy', the CDM will compile, but Privacy Mode
|
|
# and Provisioning 3.0 will always fail.
|
|
#
|
|
# Some of these libraries can be further configured with the options that
|
|
# follow this one.
|
|
'privacy_crypto_impl%': 'boringssl',
|
|
|
|
# BoringSSL Configuration
|
|
# These options are only relevant if privacy_crypto_impl is 'boringssl'.
|
|
#
|
|
# When using BoringSSL, the Widevine CE CDM defaults to the copy of
|
|
# BoringSSL in third_party/boringssl/. If you have an alternative BoringSSL
|
|
# GYP build, you can override these variables to point to it instead.
|
|
'boringssl_libcrypto_path%': '<(DEPTH)/third_party/boringssl/boringssl.gyp:crypto',
|
|
'boringssl_libssl_path%': '<(DEPTH)/third_party/boringssl/boringssl.gyp:ssl',
|
|
|
|
# There are three protobuf configurations:
|
|
#
|
|
# 1) protobuf_config == 'system'
|
|
# Use a system-wide installation of protobuf.
|
|
# Specify the protobuf library in protobuf_lib.
|
|
# Specify the path to protoc in protoc_bin.
|
|
#
|
|
# 2) protobuf_config == 'target'
|
|
# Use an existing protobuf gyp target from your project.
|
|
# Specify the protobuf gyp file and target in protobuf_lib_path.
|
|
# Specify the protoc gyp file and target in protoc_host_path.
|
|
# Specify the path to protoc in protoc_bin.
|
|
#
|
|
# 3) protobuf_config == 'source' (default)
|
|
# Build protobuf and protoc from the copy in third_party/protobuf.
|
|
'protobuf_config%': 'source',
|
|
'protobuf_lib%': '',
|
|
'protoc_bin%': '',
|
|
'protobuf_lib_path%': '',
|
|
'protoc_host_path%': '',
|
|
|
|
# Protobuf Generation and Build configurations:
|
|
#
|
|
# These options allow for different build steps to be specified for proto
|
|
# cc file generation than the default step. This can be used to customize
|
|
# cc file generation or add additional cc file processing steps before
|
|
# proto cc files are built.
|
|
#
|
|
# The directory where proto cc files that will be compiled are located.
|
|
'proto_cc_dir%': '<(SHARED_INTERMEDIATE_DIR)/protoc_out',
|
|
|
|
# The directory where proto cc files generated from proto files will be
|
|
# located.
|
|
'proto_gen_dir%': '<(SHARED_INTERMEDIATE_DIR)/protoc_out',
|
|
|
|
# Path to the GYP file that contains the proto cc file generation targets.
|
|
# This file must provide the following targets:
|
|
# - generate_license_protocol
|
|
# - generate_device_files
|
|
# - generate_metrics_proto
|
|
'proto_gen_gyp_path%': '<(DEPTH)/third_party/generate_proto_cc.gyp',
|
|
}, # variables
|
|
}
|