mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-14 13:55:43 +00:00
31c615bd95
We have a lot of assembly written assuming gas's conventions, which clang's integrated assembler doesn't support. Disable the integrated assembler for those pieces of code.
112 lines
3.1 KiB
Python
112 lines
3.1 KiB
Python
# -*- Mode: python; c-basic-offset: 4; 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/.
|
|
|
|
with Files('*'):
|
|
BUG_COMPONENT = ('Core', 'Video/Audio')
|
|
|
|
EXPORTS.theora += [
|
|
'include/theora/codec.h',
|
|
'include/theora/theoradec.h',
|
|
'include/theora/theoraenc.h',
|
|
]
|
|
|
|
# We allow warnings for third-party code that can be updated from upstream.
|
|
ALLOW_COMPILER_WARNINGS = True
|
|
|
|
FINAL_LIBRARY = 'gkmedias'
|
|
|
|
# The encoder is currently not included.
|
|
DEFINES['THEORA_DISABLE_ENCODE'] = True
|
|
|
|
# Suppress warnings in third-party code.
|
|
if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']:
|
|
CFLAGS += ['-Wno-type-limits']
|
|
if CONFIG['CLANG_CXX'] or CONFIG['CLANG_CL']:
|
|
CFLAGS += ['-Wno-tautological-compare']
|
|
if CONFIG['CLANG_CL']:
|
|
CFLAGS += [
|
|
'-Wno-pointer-sign',
|
|
'-Wno-shift-op-parentheses',
|
|
]
|
|
|
|
UNIFIED_SOURCES += [
|
|
'lib/apiwrapper.c',
|
|
'lib/bitpack.c',
|
|
'lib/decapiwrapper.c',
|
|
'lib/decinfo.c',
|
|
'lib/decode.c',
|
|
'lib/dequant.c',
|
|
'lib/fragment.c',
|
|
'lib/huffdec.c',
|
|
'lib/idct.c',
|
|
'lib/info.c',
|
|
'lib/internal.c',
|
|
'lib/quant.c',
|
|
'lib/state.c',
|
|
]
|
|
|
|
LOCAL_INCLUDES += ['include']
|
|
|
|
if '86' in CONFIG['OS_TEST']:
|
|
if CONFIG['OS_ARCH'] != 'SunOS':
|
|
if CONFIG['OS_ARCH'] != 'WINNT' or CONFIG['OS_TEST'] != 'x86_64':
|
|
DEFINES['OC_X86_ASM'] = True
|
|
if '64' in CONFIG['OS_TEST']:
|
|
DEFINES['OC_X86_64_ASM'] = True
|
|
if CONFIG['_MSC_VER']:
|
|
if '64' not in CONFIG['OS_TEST']:
|
|
SOURCES += [
|
|
'lib/x86_vc/mmxfrag.c',
|
|
'lib/x86_vc/mmxidct.c',
|
|
'lib/x86_vc/mmxstate.c',
|
|
'lib/x86_vc/x86cpu.c',
|
|
'lib/x86_vc/x86state.c',
|
|
]
|
|
else:
|
|
SOURCES += [
|
|
'lib/x86/mmxfrag.c',
|
|
'lib/x86/mmxidct.c',
|
|
'lib/x86/mmxstate.c',
|
|
'lib/x86/sse2idct.c',
|
|
'lib/x86/x86cpu.c',
|
|
'lib/x86/x86state.c',
|
|
]
|
|
|
|
if CONFIG['GNU_AS']:
|
|
if 'arm' in CONFIG['OS_TEST']:
|
|
SOURCES += [
|
|
'lib/arm/armcpu.c',
|
|
'lib/arm/armstate.c',
|
|
]
|
|
for var in ('OC_ARM_ASM',
|
|
'OC_ARM_ASM_EDSP',
|
|
'OC_ARM_ASM_MEDIA',
|
|
'OC_ARM_ASM_NEON'):
|
|
DEFINES[var] = True
|
|
# The Android NDK doesn't pre-define anything to indicate the OS it's
|
|
# on, so do it for them.
|
|
if CONFIG['OS_TARGET'] == 'Android':
|
|
DEFINES['__linux__'] = True
|
|
|
|
SOURCES += [ '!%s.s' % f for f in [
|
|
'armbits-gnu',
|
|
'armfrag-gnu',
|
|
'armidct-gnu',
|
|
'armloop-gnu',
|
|
]]
|
|
|
|
# These flags are a lie; they're just used to enable the requisite
|
|
# opcodes; actual arch detection is done at runtime.
|
|
ASFLAGS += [
|
|
'-march=armv7-a',
|
|
'-mfpu=neon',
|
|
]
|
|
|
|
if CONFIG['CLANG_CXX']:
|
|
ASFLAGS += [
|
|
'-no-integrated-as',
|
|
]
|