tenfourfox/gfx/ycbcr/moz.build

78 lines
2.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/.
EXPORTS += [
'chromium_types.h',
'ycbcr_to_rgb565.h',
'YCbCrUtils.h',
'yuv_convert.h',
'yuv_row.h',
]
UNIFIED_SOURCES += [
'ycbcr_to_rgb565.cpp',
'YCbCrUtils.cpp',
'yuv_convert.cpp',
'yuv_row_c.cpp',
]
if CONFIG['TENFOURFOX_VMX']:
SOURCES += ['yuv_convert_ppc.cpp']
SOURCES['yuv_convert_ppc.cpp'].flags += ['-maltivec']
# Use fast aligned version for VMX.
UNIFIED_SOURCES += ['yuv_row_table16.cpp']
else:
UNIFIED_SOURCES += ['yuv_convert_ppc.cpp']
UNIFIED_SOURCES += ['yuv_row_table.cpp']
if CONFIG['INTEL_ARCHITECTURE']:
# These files use MMX and SSE2 intrinsics, so they need special compile flags
# on some compilers.
SOURCES += ['yuv_convert_sse2.cpp']
SOURCES['yuv_convert_sse2.cpp'].flags += CONFIG['SSE2_FLAGS']
# MSVC doesn't support MMX when targeting AMD64.
if CONFIG['_MSC_VER']:
if CONFIG['OS_TEST'] != 'x86_64':
SOURCES += [
'yuv_convert_mmx.cpp',
]
else:
SOURCES += ['yuv_convert_mmx.cpp']
SOURCES['yuv_convert_mmx.cpp'].flags += CONFIG['MMX_FLAGS']
if CONFIG['_MSC_VER']:
if CONFIG['OS_TEST'] == 'x86_64':
SOURCES += [
'yuv_row_win64.cpp',
]
else:
SOURCES += [
'yuv_row_win.cpp',
]
elif CONFIG['OS_ARCH'] in ('Linux', 'SunOS', 'Darwin', 'DragonFly',
'FreeBSD', 'NetBSD', 'OpenBSD'):
SOURCES += [
'yuv_row_posix.cpp',
]
else:
SOURCES += [
'yuv_row_other.cpp',
]
if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['HAVE_ARM_NEON']:
SOURCES += [
'yuv_row_arm.s',
]
SOURCES += [
'yuv_convert_arm.cpp',
]
FINAL_LIBRARY = 'xul'
if CONFIG['GNU_CXX']:
CXXFLAGS += ['-Wshadow']