summaryrefslogtreecommitdiffstats
path: root/media/ffvpx/ffvpxcommon.mozbuild
blob: e1220e77a3281896cc4a79196ca9a559f7411df2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# vim: set filetype=python:
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

# Add assembler flags and includes
if CONFIG['CPU_ARCH'] != 'aarch64':
    ASFLAGS += CONFIG['FFVPX_ASFLAGS']
    ASFLAGS += ['-I%s/media/ffvpx/' % TOPSRCDIR]
    ASFLAGS += ['-I%s/media/ffvpx/libavcodec/x86/' % TOPSRCDIR]
    ASFLAGS += ['-I%s/media/ffvpx/libavutil/x86/' % TOPSRCDIR]

if CONFIG['FFVPX_ASFLAGS']:
    if CONFIG['FFVPX_USE_YASM']:
        USE_YASM = True

    if CONFIG['OS_ARCH'] == 'WINNT':
       # Fix inline symbols and math defines for windows.
        DEFINES['_USE_MATH_DEFINES'] = True
        DEFINES['inline'] = "__inline"

    if USE_YASM and not CONFIG['YASM_HAS_AVX2']:
        DEFINES['YASM_MISSING_AVX2'] = True


LOCAL_INCLUDES += ['/media/ffvpx']

# We allow warnings for third-party code that can be updated from upstream.
AllowCompilerWarnings()

# Suppress warnings in third-party code.
CFLAGS += [
    '-Wno-parentheses',
    '-Wno-pointer-sign',
    '-Wno-sign-compare',
    '-Wno-switch',
    '-Wno-type-limits',
    '-Wno-unused-function',
    # XXX This does not seem to have any effect on some versions of GCC.
    '-Wno-deprecated-declarations',
]
if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
    CFLAGS += [
        '-Wno-absolute-value',
        '-Wno-incompatible-pointer-types',
        '-Wno-string-conversion',
        '-Wno-visibility',
    ]
    if CONFIG['CC_TYPE'] == 'clang-cl':
        CFLAGS += [
            '-Wno-inconsistent-dllimport',
            '-Wno-macro-redefined', # 'WIN32_LEAN_AND_MEAN' macro redefined
        ]
else:
    CFLAGS += [
        '-Wno-discarded-qualifiers',
        '-Wno-maybe-uninitialized',
    ]
if CONFIG['CC_TYPE'] in ('clang', 'gcc'):
    # Force visibility of cpu and av_log symbols.
    CFLAGS += ['-include', 'libavutil_visibility.h']
if CONFIG['CC_TYPE'] == 'clang-cl':
    LOCAL_INCLUDES += ['/media/ffvpx/compat/atomics/win32']
DEFINES['HAVE_AV_CONFIG_H'] = True

if CONFIG['MOZ_DEBUG']:
    # Enable all assertions in debug builds.
    DEFINES['ASSERT_LEVEL'] = 2
elif not CONFIG['RELEASE_OR_BETA']:
    # Enable fast assertions in opt builds of Nightly and Aurora.
    DEFINES['ASSERT_LEVEL'] = 1

# Add libFuzzer configuration directives
include('/tools/fuzzing/libfuzzer-config.mozbuild')