# -*- 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 ] if CONFIG['CC_TYPE'] == 'clang': CFLAGS += [ # Workaround for https://bugs.llvm.org/show_bug.cgi?id=26828#c4 : '-ffreestanding', ] 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')