# -*- 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', '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'] if CONFIG['GNU_CC']: SOURCES['yuv_convert_sse2.cpp'].flags += ['-msse2'] if CONFIG['SOLARIS_SUNPRO_CXX']: SOURCES['yuv_convert_sse2.cpp'].flags += ['-xarch=sse2', '-xO4'] # 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'] if CONFIG['GNU_CC']: SOURCES['yuv_convert_mmx.cpp'].flags += ['-mmmx'] if CONFIG['SOLARIS_SUNPRO_CXX']: SOURCES['yuv_convert_mmx.cpp'].flags += ['-xarch=mmx', '-xO4'] if CONFIG['_MSC_VER']: if CONFIG['OS_TEST'] == 'x86_64': if CONFIG['_MSC_VER'] == '1400': # VC8 doesn't support some SSE2 built-in functions SOURCES += [ 'yuv_row_win.cpp', ] else: 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'