123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
- # 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'
- if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
- NO_VISIBILITY_FLAGS = True
- # 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['CLANG_CL']:
- # clang-cl can't handle libtheora's inline asm.
- pass
- elif 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 CONFIG['CLANG_CL']:
- # clang-cl can't handle libtheora's inline asm.
- pass
- elif '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',
- ]
- ASFLAGS += CONFIG['NEON_FLAGS']
- if CONFIG['CLANG_CXX']:
- ASFLAGS += [
- '-no-integrated-as',
- ]
|