118 lines
5.3 KiB
Python
118 lines
5.3 KiB
Python
# Copyright 2020 Google LLC. All Rights Reserved. This file and proprietary
|
|
# source code may only be used and distributed under the Widevine Master
|
|
# 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 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.
|
|
#
|
|
# 'ref' - The default value of 'ref' builds the OEMCrypto reference code, in
|
|
# order to allow the CE CDM to build without a vendor integration.
|
|
# This setting should *NEVER* be used in production systems and is
|
|
# for testing purposes only.
|
|
#
|
|
# '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_target' below. Most vendors will want
|
|
# to use 'vendor', above, instead. This setting exists primarily
|
|
# for Google's internal testing.
|
|
'oemcrypto_lib%': 'ref',
|
|
# You only need to set this value if you set 'oemcrypto_lib' to 'target'
|
|
# above.
|
|
'oemcrypto_gyp_target%': '',
|
|
|
|
# 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
|
|
# * 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%': '../third_party/boringssl/boringssl.gyp:crypto',
|
|
'boringssl_libssl_path%': '../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_target.
|
|
# Specify the protoc gyp file and target in protoc_host_target.
|
|
# Specify the path to protoc in protoc_bin.
|
|
#
|
|
# 3) protobuf_config == 'source' (default)
|
|
# Build protobuf and protoc from source.
|
|
# Specify the path to the protobuf source in protobuf_source.
|
|
'protobuf_config%': 'source',
|
|
'protobuf_source%': '../third_party/protobuf',
|
|
'protoc_host_target%': 'dummy',
|
|
}, # variables
|
|
}
|