Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  moz.build   Sprache: unbekannt

 
# -*- 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/.

with Files("**"):
    BUG_COMPONENT = ("Core", "Graphics: ImageLib")

# Not technically necessary, but set for consistency with the 12/16-bit ones.
DEFINES['BITS_IN_JSAMPLE'] = 8

# libjpeg-turbo 3 requires rebuilding some files multiple times in order to
# pick up 12-bit and 16-bit support. Failure to do so results in missing
# symbols during linking.
#
# Since we can't build the same files multiple times with different
# BITS_IN_JSAMPLE values defined, we instead create separate moz.build files
# for each configuration. The files must be kept in sync with JPEG12_SOURCES
# and JPEG16_SOURCES from the upstream CMakeLists.txt.
DIRS += [
    "jpeg12",
    "jpeg16",
]

EXPORTS += [
    'jconfig.h',
    'jerror.h',
    'jinclude.h',
    'jmorecfg.h',
    'jpegint.h',
    'jpeglib.h',
]

SOURCES += [
    'jcomapi.c',
    'jdapimin.c',
    'jdapistd.c',
    'jdatadst.c',
    'jdatasrc.c',
    'jdcoefct.c',
    'jdcolor.c',
    'jddctmgr.c',
    'jddiffct.c',
    'jdhuff.c',
    'jdicc.c',
    'jdinput.c',
    'jdlhuff.c',
    'jdlossls.c',
    'jdmainct.c',
    'jdmarker.c',
    'jdmaster.c',
    'jdmerge.c',
    'jdphuff.c',
    'jdpostct.c',
    'jdsample.c',
    'jdtrans.c',
    'jerror.c',
    'jfdctflt.c',
    'jfdctfst.c',
    'jfdctint.c',
    'jidctflt.c',
    'jidctfst.c',
    'jidctint.c',
    'jidctred.c',
    'jmemmgr.c',
    'jmemnobs.c',
    'jpeg_nbits.c',
    'jquant1.c',
    'jquant2.c',
    'jutils.c',
]

# These files enable support for writing JPEGs
SOURCES += [
    'jcapimin.c',
    'jcapistd.c',
    'jccoefct.c',
    'jccolor.c',
    'jcdctmgr.c',
    'jcdiffct.c',
    'jchuff.c',
    'jcicc.c',
    'jcinit.c',
    'jclhuff.c',
    'jclossls.c',
    'jcmainct.c',
    'jcmarker.c',
    'jcmaster.c',
    'jcparam.c',
    'jcphuff.c',
    'jcprepct.c',
    'jcsample.c',
    'jctrans.c',
]

if CONFIG['LIBJPEG_TURBO_HAVE_VLD1_S16_X3']:
    DEFINES['HAVE_VLD1_S16_X3'] = True

if CONFIG['LIBJPEG_TURBO_HAVE_VLD1_U16_X2']:
    DEFINES['HAVE_VLD1_U16_X2'] = True

if CONFIG['LIBJPEG_TURBO_HAVE_VLD1Q_U8_X4']:
    DEFINES['HAVE_VLD1Q_U8_X4'] = True

if CONFIG['LIBJPEG_TURBO_NEON_INTRINSICS']:
    DEFINES['NEON_INTRINSICS'] = True

if CONFIG['LIBJPEG_TURBO_USE_NASM']:
    USE_NASM = True

if CONFIG['LIBJPEG_TURBO_SIMD_FLAGS']:
    DEFINES['MOZ_WITH_SIMD'] = 1
    if CONFIG['TARGET_CPU'] == 'arm':
        LOCAL_INCLUDES += [
            '/media/libjpeg/simd/arm',
            '/media/libjpeg/simd/arm/aarch32',
        ]
        SOURCES += [
            'simd/arm/aarch32/jsimd.c',
        ]

        simd_sources = [
            'simd/arm/aarch32/jchuff-neon.c',
            'simd/arm/jcgray-neon.c',
            'simd/arm/jcphuff-neon.c',
            'simd/arm/jcsample-neon.c',
            'simd/arm/jdcolor-neon.c',
            'simd/arm/jdmerge-neon.c',
            'simd/arm/jdsample-neon.c',
            'simd/arm/jfdctfst-neon.c',
            'simd/arm/jfdctint-neon.c',
            'simd/arm/jidctred-neon.c',
            'simd/arm/jquanti-neon.c',
        ]
        SOURCES += simd_sources

        if CONFIG['LIBJPEG_TURBO_NEON_INTRINSICS']:
            simd_sources_intrinsics = [
                'simd/arm/jccolor-neon.c',
                'simd/arm/jidctfst-neon.c',
                'simd/arm/jidctint-neon.c',
            ]
            SOURCES += simd_sources_intrinsics
            simd_sources += simd_sources_intrinsics
        else:
            SOURCES += [
                'simd/arm/aarch32/jsimd_neon.S',
            ]

        for srcfile in simd_sources:
            SOURCES[srcfile].flags += CONFIG['LIBJPEG_TURBO_SIMD_FLAGS']
    elif CONFIG['TARGET_CPU'] == 'aarch64':
        LOCAL_INCLUDES += [
            '/media/libjpeg/simd/arm',
            '/media/libjpeg/simd/arm/aarch64',
        ]
        SOURCES += [
            'simd/arm/aarch64/jsimd.c',
        ]

        simd_sources = [
                'simd/arm/jcgray-neon.c',
                'simd/arm/jcphuff-neon.c',
                'simd/arm/jcsample-neon.c',
                'simd/arm/jdmerge-neon.c',
                'simd/arm/jdsample-neon.c',
                'simd/arm/jfdctfst-neon.c',
                'simd/arm/jidctfst-neon.c',
                'simd/arm/jidctred-neon.c',
                'simd/arm/jquanti-neon.c',
        ]
        SOURCES += simd_sources

        if CONFIG['LIBJPEG_TURBO_NEON_INTRINSICS']:
            simd_sources_intrinsics = [
                'simd/arm/aarch64/jchuff-neon.c',
                'simd/arm/jccolor-neon.c',
                'simd/arm/jdcolor-neon.c',
                'simd/arm/jfdctint-neon.c',
                'simd/arm/jidctint-neon.c',
            ]
            SOURCES += simd_sources_intrinsics
            simd_sources += simd_sources_intrinsics
        else:
            SOURCES += [
                'simd/arm/aarch64/jsimd_neon.S',
            ]

        for srcfile in simd_sources:
            SOURCES[srcfile].flags += CONFIG['LIBJPEG_TURBO_SIMD_FLAGS']
    elif CONFIG['TARGET_CPU'] == 'mips32':
        SOURCES += [
            'simd/mips/jsimd.c',
            'simd/mips/jsimd_dspr2.S',
        ]
        if CONFIG['CC_TYPE'] == 'clang':
            SOURCES['simd/mips/jsimd_dspr2.S'].flags += [
                '-fno-integrated-as',
            ]
    elif CONFIG['TARGET_CPU'] == 'mips64':
        LOCAL_INCLUDES += ['/media/libjpeg/simd/mips64']
        simd_sources = [
            'simd/mips64/jccolor-mmi.c',
            'simd/mips64/jcgray-mmi.c',
            'simd/mips64/jcsample-mmi.c',
            'simd/mips64/jdcolor-mmi.c',
            'simd/mips64/jdmerge-mmi.c',
            'simd/mips64/jdsample-mmi.c',
            'simd/mips64/jfdctfst-mmi.c',
            'simd/mips64/jfdctint-mmi.c',
            'simd/mips64/jidctfst-mmi.c',
            'simd/mips64/jidctint-mmi.c',
            'simd/mips64/jquanti-mmi.c',
        ]
        SOURCES += simd_sources
        SOURCES += [
            'simd/mips64/jsimd.c'
        ]
        for srcfile in simd_sources:
            SOURCES[srcfile].flags += CONFIG['LIBJPEG_TURBO_SIMD_FLAGS']
    elif CONFIG['TARGET_CPU'] == 'x86_64':
        SOURCES += [
            'simd/x86_64/jccolor-avx2.asm',
            'simd/x86_64/jccolor-sse2.asm',
            'simd/x86_64/jcgray-avx2.asm',
            'simd/x86_64/jcgray-sse2.asm',
            'simd/x86_64/jchuff-sse2.asm',
            'simd/x86_64/jcphuff-sse2.asm',
            'simd/x86_64/jcsample-avx2.asm',
            'simd/x86_64/jcsample-sse2.asm',
            'simd/x86_64/jdcolor-avx2.asm',
            'simd/x86_64/jdcolor-sse2.asm',
            'simd/x86_64/jdmerge-avx2.asm',
            'simd/x86_64/jdmerge-sse2.asm',
            'simd/x86_64/jdsample-avx2.asm',
            'simd/x86_64/jdsample-sse2.asm',
            'simd/x86_64/jfdctflt-sse.asm',
            'simd/x86_64/jfdctfst-sse2.asm',
            'simd/x86_64/jfdctint-avx2.asm',
            'simd/x86_64/jfdctint-sse2.asm',
            'simd/x86_64/jidctflt-sse2.asm',
            'simd/x86_64/jidctfst-sse2.asm',
            'simd/x86_64/jidctint-avx2.asm',
            'simd/x86_64/jidctint-sse2.asm',
            'simd/x86_64/jidctred-sse2.asm',
            'simd/x86_64/jquantf-sse2.asm',
            'simd/x86_64/jquanti-avx2.asm',
            'simd/x86_64/jquanti-sse2.asm',
            'simd/x86_64/jsimd.c',
            'simd/x86_64/jsimdcpu.asm',
        ]
    elif CONFIG['TARGET_CPU'] == 'x86':
        SOURCES += [
            'simd/i386/jccolor-avx2.asm',
            'simd/i386/jccolor-mmx.asm',
            'simd/i386/jccolor-sse2.asm',
            'simd/i386/jcgray-avx2.asm',
            'simd/i386/jcgray-mmx.asm',
            'simd/i386/jcgray-sse2.asm',
            'simd/i386/jchuff-sse2.asm',
            'simd/i386/jcphuff-sse2.asm',
            'simd/i386/jcsample-avx2.asm',
            'simd/i386/jcsample-mmx.asm',
            'simd/i386/jcsample-sse2.asm',
            'simd/i386/jdcolor-avx2.asm',
            'simd/i386/jdcolor-mmx.asm',
            'simd/i386/jdcolor-sse2.asm',
            'simd/i386/jdmerge-avx2.asm',
            'simd/i386/jdmerge-mmx.asm',
            'simd/i386/jdmerge-sse2.asm',
            'simd/i386/jdsample-avx2.asm',
            'simd/i386/jdsample-mmx.asm',
            'simd/i386/jdsample-sse2.asm',
            'simd/i386/jfdctflt-3dn.asm',
            'simd/i386/jfdctflt-sse.asm',
            'simd/i386/jfdctfst-mmx.asm',
            'simd/i386/jfdctfst-sse2.asm',
            'simd/i386/jfdctint-avx2.asm',
            'simd/i386/jfdctint-mmx.asm',
            'simd/i386/jfdctint-sse2.asm',
            'simd/i386/jidctflt-3dn.asm',
            'simd/i386/jidctflt-sse.asm',
            'simd/i386/jidctflt-sse2.asm',
            'simd/i386/jidctfst-mmx.asm',
            'simd/i386/jidctfst-sse2.asm',
            'simd/i386/jidctint-avx2.asm',
            'simd/i386/jidctint-mmx.asm',
            'simd/i386/jidctint-sse2.asm',
            'simd/i386/jidctred-mmx.asm',
            'simd/i386/jidctred-sse2.asm',
            'simd/i386/jquant-3dn.asm',
            'simd/i386/jquant-mmx.asm',
            'simd/i386/jquant-sse.asm',
            'simd/i386/jquantf-sse2.asm',
            'simd/i386/jquanti-avx2.asm',
            'simd/i386/jquanti-sse2.asm',
            'simd/i386/jsimd.c',
            'simd/i386/jsimdcpu.asm',
        ]
elif CONFIG['TARGET_CPU'].startswith('ppc'):
    DEFINES['MOZ_WITH_SIMD'] = 1
    # PowerPC has no assembly files, but still needs its own headers.
    LOCAL_INCLUDES += ['/media/libjpeg/simd/powerpc']

    # For libjpeg's internal runtime detection to work, jsimd.c must NOT
    # be compiled with -maltivec (otherwise it gets statically set),
    # but everything else should be. If -maltivec was already
    # specified in .mozconfig, though, then this won't harm anything.
    ppc_vmx_sources = [
        'simd/powerpc/jccolor-altivec.c',
        'simd/powerpc/jcgray-altivec.c',
        'simd/powerpc/jcsample-altivec.c',
        'simd/powerpc/jdcolor-altivec.c',
        'simd/powerpc/jdmerge-altivec.c',
        'simd/powerpc/jdsample-altivec.c',
        'simd/powerpc/jfdctfst-altivec.c',
        'simd/powerpc/jfdctint-altivec.c',
        'simd/powerpc/jidctfst-altivec.c',
        'simd/powerpc/jidctint-altivec.c',
        'simd/powerpc/jquanti-altivec.c',
    ]
    SOURCES += ppc_vmx_sources
    SOURCES += [
        'simd/powerpc/jsimd.c',
    ]
    for srcfile in ppc_vmx_sources:
        SOURCES[srcfile].flags += CONFIG['PPC_VMX_FLAGS']

ASFLAGS += CONFIG['LIBJPEG_TURBO_SIMD_FLAGS']

# Make sure the x86 & x86-64 ASM files can see the necessary includes.
if CONFIG['TARGET_CPU'] == 'x86':
    ASFLAGS += ['-I%s/media/libjpeg/simd/nasm/' % TOPSRCDIR]
    ASFLAGS += ['-I%s/media/libjpeg/simd/i386/' % TOPSRCDIR]
if CONFIG['TARGET_CPU'] == 'x86_64':
    ASFLAGS += ['-I%s/media/libjpeg/simd/nasm/' % TOPSRCDIR]
    ASFLAGS += ['-I%s/media/libjpeg/simd/x86_64/' % TOPSRCDIR]

# We allow warnings for third-party code that can be updated from upstream.
AllowCompilerWarnings()

FINAL_LIBRARY = 'xul'


[ Dauer der Verarbeitung: 0.15 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge