Files
ce_cdm/platforms/x86-64/settings.gypi
2020-10-09 16:08:56 -07:00

159 lines
4.6 KiB
Python

# Copyright 2018 Google LLC. All Rights Reserved. This file and proprietary
# source code may only be used and distributed under the Widevine Master
# License Agreement.
{
# Here you can override global gyp variables with platform-specific values.
# See cdm.gyp for a complete list of settings you can override.
'variables': {
'asm_target_arch': 'x86-64',
}, # end variables
# Here you can set platform-specific compiler settings.
'target_defaults': {
# These are flags passed to the compiler for all C & C++ files.
'cflags': [
'-fPIC',
'-fvisibility=hidden',
'-fno-common',
'-Wno-unknown-warning-option',
# Enable many warnings, and treat warnings as errors. Note that, for
# cross-compatibility reasons between GCC and Clang, we cannot just use
# -Werror to treat warnings as errors, as GCC has no equivalent of
# -Wno-unknown-warning-option.
'-Werror=all',
'-Werror=extra',
'-Werror=unused',
'-Werror=format=2',
'-Werror=format-nonliteral',
'-Werror=format-signedness',
'-Werror=cast-align',
'-Werror=return-type',
'-Werror=shadow',
'-Wno-unused-parameter', # OEC Ref requires this
'-Wno-dangling-else', # Allowed by Google C++ Style
],
# These are flags passed to the compiler for plain C only.
'cflags_c': [
# Compile using the C11 standard with POSIX extensions
'-std=c11',
'-D_POSIX_C_SOURCE=200809L',
# Enable C-specific warnings
'-Wbad-function-cast',
'-Wno-error=bad-function-cast',
'-Wcast-qual',
'-Wno-error=cast-qual',
],
# These are flags passed to the compiler for C++ only.
'cflags_cc': [
# Compile using the C++11 standard.
'-std=c++11',
# CE CDM does not use exceptions, and they are expensive.
'-fno-exceptions',
# Enable C++-specific warnings
'-Werror=cast-qual',
'-Werror=non-virtual-dtor',
'-Werror=strict-null-sentinel',
'-Werror=useless-cast',
# TODO(b/156766290): We cannot enable these until we update to gTest 1.10
# and update all our tests to use the new version of MOCK_METHOD that
# allows specifying |override|.
#
#'-Werror=overloaded-virtual',
#'-Werror=suggest-override',
#'-Werror=zero-as-null-pointer-constant',
'-Wdeprecated-declarations',
'-Wno-error=deprecated-declarations',
],
# These are flags passed to the linker.
'ldflags': [
],
# These are macros set by the compiler.
'defines': [
#'EXAMPLE_MACRO_WITH_NO_VALUE',
#'EXAMPLE_KEY=EXAMPLE_VALUE',
],
# These are additional include paths to search for headers.
'include_dirs': [
#'/usr/local/include',
],
'target_conditions': [
['_toolset == "host"', {
# These are settings specifically for the host toolchain.
# The extra equals sign in the key name instructs gyp to replace
# the generic settings above rather than append to them.
'cflags=': [],
'cflags_c=': [],
'cflags_cc=': [],
'ldflags=': [],
'defines=': [],
'include_dirs=': [],
}], # end _toolset == "host" condition
], # end target_conditions
'configurations': {
# These are additional settings per build configuration.
# You may specify any of the keys above in this section
# (cflags, cflags_c, cflags_cc, ldflags, defines, include_dirs).
'debug': {
'cflags': [
'-g3',
'-fsanitize=address,undefined,float-divide-by-zero,bounds',
'-fno-sanitize-recover=address,undefined,float-divide-by-zero,bounds',
'-fsanitize-address-use-after-scope',
# These are the flags recommended by the Address Sanitizer team when
# enabling Address Sanitizer.
'-U_FORTIFY_SOURCE',
'-O1',
'-fno-omit-frame-pointer',
'-fno-inline',
'-fno-optimize-sibling-calls',
],
'cflags_cc': [
# CE CDM does not use RTTI, but UBSan needs it for its vptr checks
'-frtti',
],
'defines': [
'_DEBUG',
'_GLIBCXX_DEBUG',
],
'ldflags': [
'-g3',
'-fsanitize=address,undefined,float-divide-by-zero,bounds',
],
},
'release': {
'cflags': [
'-O2',
'-g0',
],
'cflags_cc': [
# CE CDM does not use RTTI, and it is expensive.
'-fno-rtti',
],
'ldflags': [
'-flto',
],
'defines': [
'NDEBUG',
],
},
}, # end configurations
}, # end target_defaults
}