tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

moz.build (11281B)


      1 # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
      2 # vim: set filetype=python:
      3 # This Source Code Form is subject to the terms of the Mozilla Public
      4 # License, v. 2.0. If a copy of the MPL was not distributed with this
      5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
      6 
      7 with Files("**"):
      8     BUG_COMPONENT = ("Core", "Graphics: ImageLib")
      9 
     10 # Not technically necessary, but set for consistency with the 12/16-bit ones.
     11 DEFINES['BITS_IN_JSAMPLE'] = 8
     12 
     13 # libjpeg-turbo 3 requires rebuilding some files multiple times in order to
     14 # pick up 12-bit and 16-bit support. Failure to do so results in missing
     15 # symbols during linking.
     16 #
     17 # Since we can't build the same files multiple times with different
     18 # BITS_IN_JSAMPLE values defined, we instead create separate moz.build files
     19 # for each configuration. The files must be kept in sync with JPEG12_SOURCES
     20 # and JPEG16_SOURCES from the upstream CMakeLists.txt.
     21 DIRS += [
     22     "jpeg12",
     23     "jpeg16",
     24 ]
     25 
     26 EXPORTS += [
     27     'jconfig.h',
     28     'jerror.h',
     29     'jinclude.h',
     30     'jmorecfg.h',
     31     'jpegint.h',
     32     'jpeglib.h',
     33 ]
     34 
     35 SOURCES += [
     36     'jcomapi.c',
     37     'jdapimin.c',
     38     'jdapistd.c',
     39     'jdatadst.c',
     40     'jdatasrc.c',
     41     'jdcoefct.c',
     42     'jdcolor.c',
     43     'jddctmgr.c',
     44     'jddiffct.c',
     45     'jdhuff.c',
     46     'jdicc.c',
     47     'jdinput.c',
     48     'jdlhuff.c',
     49     'jdlossls.c',
     50     'jdmainct.c',
     51     'jdmarker.c',
     52     'jdmaster.c',
     53     'jdmerge.c',
     54     'jdphuff.c',
     55     'jdpostct.c',
     56     'jdsample.c',
     57     'jdtrans.c',
     58     'jerror.c',
     59     'jfdctflt.c',
     60     'jfdctfst.c',
     61     'jfdctint.c',
     62     'jidctflt.c',
     63     'jidctfst.c',
     64     'jidctint.c',
     65     'jidctred.c',
     66     'jmemmgr.c',
     67     'jmemnobs.c',
     68     'jpeg_nbits.c',
     69     'jquant1.c',
     70     'jquant2.c',
     71     'jutils.c',
     72 ]
     73 
     74 # These files enable support for writing JPEGs
     75 SOURCES += [
     76     'jcapimin.c',
     77     'jcapistd.c',
     78     'jccoefct.c',
     79     'jccolor.c',
     80     'jcdctmgr.c',
     81     'jcdiffct.c',
     82     'jchuff.c',
     83     'jcicc.c',
     84     'jcinit.c',
     85     'jclhuff.c',
     86     'jclossls.c',
     87     'jcmainct.c',
     88     'jcmarker.c',
     89     'jcmaster.c',
     90     'jcparam.c',
     91     'jcphuff.c',
     92     'jcprepct.c',
     93     'jcsample.c',
     94     'jctrans.c',
     95 ]
     96 
     97 if CONFIG['LIBJPEG_TURBO_HAVE_VLD1_S16_X3']:
     98     DEFINES['HAVE_VLD1_S16_X3'] = True
     99 
    100 if CONFIG['LIBJPEG_TURBO_HAVE_VLD1_U16_X2']:
    101     DEFINES['HAVE_VLD1_U16_X2'] = True
    102 
    103 if CONFIG['LIBJPEG_TURBO_HAVE_VLD1Q_U8_X4']:
    104     DEFINES['HAVE_VLD1Q_U8_X4'] = True
    105 
    106 if CONFIG['LIBJPEG_TURBO_NEON_INTRINSICS']:
    107     DEFINES['NEON_INTRINSICS'] = True
    108 
    109 if CONFIG['LIBJPEG_TURBO_USE_NASM']:
    110     USE_NASM = True
    111 
    112 if CONFIG['LIBJPEG_TURBO_SIMD_FLAGS']:
    113     DEFINES['MOZ_WITH_SIMD'] = 1
    114     if CONFIG['TARGET_CPU'] == 'arm':
    115         LOCAL_INCLUDES += [
    116             '/media/libjpeg/simd/arm',
    117             '/media/libjpeg/simd/arm/aarch32',
    118         ]
    119         SOURCES += [
    120             'simd/arm/aarch32/jsimd.c',
    121         ]
    122 
    123         simd_sources = [
    124             'simd/arm/aarch32/jchuff-neon.c',
    125             'simd/arm/jcgray-neon.c',
    126             'simd/arm/jcphuff-neon.c',
    127             'simd/arm/jcsample-neon.c',
    128             'simd/arm/jdcolor-neon.c',
    129             'simd/arm/jdmerge-neon.c',
    130             'simd/arm/jdsample-neon.c',
    131             'simd/arm/jfdctfst-neon.c',
    132             'simd/arm/jfdctint-neon.c',
    133             'simd/arm/jidctred-neon.c',
    134             'simd/arm/jquanti-neon.c',
    135         ]
    136         SOURCES += simd_sources
    137 
    138         if CONFIG['LIBJPEG_TURBO_NEON_INTRINSICS']:
    139             simd_sources_intrinsics = [
    140                 'simd/arm/jccolor-neon.c',
    141                 'simd/arm/jidctfst-neon.c',
    142                 'simd/arm/jidctint-neon.c',
    143             ]
    144             SOURCES += simd_sources_intrinsics
    145             simd_sources += simd_sources_intrinsics
    146         else:
    147             SOURCES += [
    148                 'simd/arm/aarch32/jsimd_neon.S',
    149             ]
    150 
    151         for srcfile in simd_sources:
    152             SOURCES[srcfile].flags += CONFIG['LIBJPEG_TURBO_SIMD_FLAGS']
    153     elif CONFIG['TARGET_CPU'] == 'aarch64':
    154         LOCAL_INCLUDES += [
    155             '/media/libjpeg/simd/arm',
    156             '/media/libjpeg/simd/arm/aarch64',
    157         ]
    158         SOURCES += [
    159             'simd/arm/aarch64/jsimd.c',
    160         ]
    161 
    162         simd_sources = [
    163                 'simd/arm/jcgray-neon.c',
    164                 'simd/arm/jcphuff-neon.c',
    165                 'simd/arm/jcsample-neon.c',
    166                 'simd/arm/jdmerge-neon.c',
    167                 'simd/arm/jdsample-neon.c',
    168                 'simd/arm/jfdctfst-neon.c',
    169                 'simd/arm/jidctfst-neon.c',
    170                 'simd/arm/jidctred-neon.c',
    171                 'simd/arm/jquanti-neon.c',
    172         ]
    173         SOURCES += simd_sources
    174 
    175         if CONFIG['LIBJPEG_TURBO_NEON_INTRINSICS']:
    176             simd_sources_intrinsics = [
    177                 'simd/arm/aarch64/jchuff-neon.c',
    178                 'simd/arm/jccolor-neon.c',
    179                 'simd/arm/jdcolor-neon.c',
    180                 'simd/arm/jfdctint-neon.c',
    181                 'simd/arm/jidctint-neon.c',
    182             ]
    183             SOURCES += simd_sources_intrinsics
    184             simd_sources += simd_sources_intrinsics
    185         else:
    186             SOURCES += [
    187                 'simd/arm/aarch64/jsimd_neon.S',
    188             ]
    189 
    190         for srcfile in simd_sources:
    191             SOURCES[srcfile].flags += CONFIG['LIBJPEG_TURBO_SIMD_FLAGS']
    192     elif CONFIG['TARGET_CPU'] == 'mips32':
    193         SOURCES += [
    194             'simd/mips/jsimd.c',
    195             'simd/mips/jsimd_dspr2.S',
    196         ]
    197         if CONFIG['CC_TYPE'] == 'clang':
    198             SOURCES['simd/mips/jsimd_dspr2.S'].flags += [
    199                 '-fno-integrated-as',
    200             ]
    201     elif CONFIG['TARGET_CPU'] == 'mips64':
    202         LOCAL_INCLUDES += ['/media/libjpeg/simd/mips64']
    203         simd_sources = [
    204             'simd/mips64/jccolor-mmi.c',
    205             'simd/mips64/jcgray-mmi.c',
    206             'simd/mips64/jcsample-mmi.c',
    207             'simd/mips64/jdcolor-mmi.c',
    208             'simd/mips64/jdmerge-mmi.c',
    209             'simd/mips64/jdsample-mmi.c',
    210             'simd/mips64/jfdctfst-mmi.c',
    211             'simd/mips64/jfdctint-mmi.c',
    212             'simd/mips64/jidctfst-mmi.c',
    213             'simd/mips64/jidctint-mmi.c',
    214             'simd/mips64/jquanti-mmi.c',
    215         ]
    216         SOURCES += simd_sources
    217         SOURCES += [
    218             'simd/mips64/jsimd.c'
    219         ]
    220         for srcfile in simd_sources:
    221             SOURCES[srcfile].flags += CONFIG['LIBJPEG_TURBO_SIMD_FLAGS']
    222     elif CONFIG['TARGET_CPU'] == 'x86_64':
    223         SOURCES += [
    224             'simd/x86_64/jccolor-avx2.asm',
    225             'simd/x86_64/jccolor-sse2.asm',
    226             'simd/x86_64/jcgray-avx2.asm',
    227             'simd/x86_64/jcgray-sse2.asm',
    228             'simd/x86_64/jchuff-sse2.asm',
    229             'simd/x86_64/jcphuff-sse2.asm',
    230             'simd/x86_64/jcsample-avx2.asm',
    231             'simd/x86_64/jcsample-sse2.asm',
    232             'simd/x86_64/jdcolor-avx2.asm',
    233             'simd/x86_64/jdcolor-sse2.asm',
    234             'simd/x86_64/jdmerge-avx2.asm',
    235             'simd/x86_64/jdmerge-sse2.asm',
    236             'simd/x86_64/jdsample-avx2.asm',
    237             'simd/x86_64/jdsample-sse2.asm',
    238             'simd/x86_64/jfdctflt-sse.asm',
    239             'simd/x86_64/jfdctfst-sse2.asm',
    240             'simd/x86_64/jfdctint-avx2.asm',
    241             'simd/x86_64/jfdctint-sse2.asm',
    242             'simd/x86_64/jidctflt-sse2.asm',
    243             'simd/x86_64/jidctfst-sse2.asm',
    244             'simd/x86_64/jidctint-avx2.asm',
    245             'simd/x86_64/jidctint-sse2.asm',
    246             'simd/x86_64/jidctred-sse2.asm',
    247             'simd/x86_64/jquantf-sse2.asm',
    248             'simd/x86_64/jquanti-avx2.asm',
    249             'simd/x86_64/jquanti-sse2.asm',
    250             'simd/x86_64/jsimd.c',
    251             'simd/x86_64/jsimdcpu.asm',
    252         ]
    253     elif CONFIG['TARGET_CPU'] == 'x86':
    254         SOURCES += [
    255             'simd/i386/jccolor-avx2.asm',
    256             'simd/i386/jccolor-mmx.asm',
    257             'simd/i386/jccolor-sse2.asm',
    258             'simd/i386/jcgray-avx2.asm',
    259             'simd/i386/jcgray-mmx.asm',
    260             'simd/i386/jcgray-sse2.asm',
    261             'simd/i386/jchuff-sse2.asm',
    262             'simd/i386/jcphuff-sse2.asm',
    263             'simd/i386/jcsample-avx2.asm',
    264             'simd/i386/jcsample-mmx.asm',
    265             'simd/i386/jcsample-sse2.asm',
    266             'simd/i386/jdcolor-avx2.asm',
    267             'simd/i386/jdcolor-mmx.asm',
    268             'simd/i386/jdcolor-sse2.asm',
    269             'simd/i386/jdmerge-avx2.asm',
    270             'simd/i386/jdmerge-mmx.asm',
    271             'simd/i386/jdmerge-sse2.asm',
    272             'simd/i386/jdsample-avx2.asm',
    273             'simd/i386/jdsample-mmx.asm',
    274             'simd/i386/jdsample-sse2.asm',
    275             'simd/i386/jfdctflt-3dn.asm',
    276             'simd/i386/jfdctflt-sse.asm',
    277             'simd/i386/jfdctfst-mmx.asm',
    278             'simd/i386/jfdctfst-sse2.asm',
    279             'simd/i386/jfdctint-avx2.asm',
    280             'simd/i386/jfdctint-mmx.asm',
    281             'simd/i386/jfdctint-sse2.asm',
    282             'simd/i386/jidctflt-3dn.asm',
    283             'simd/i386/jidctflt-sse.asm',
    284             'simd/i386/jidctflt-sse2.asm',
    285             'simd/i386/jidctfst-mmx.asm',
    286             'simd/i386/jidctfst-sse2.asm',
    287             'simd/i386/jidctint-avx2.asm',
    288             'simd/i386/jidctint-mmx.asm',
    289             'simd/i386/jidctint-sse2.asm',
    290             'simd/i386/jidctred-mmx.asm',
    291             'simd/i386/jidctred-sse2.asm',
    292             'simd/i386/jquant-3dn.asm',
    293             'simd/i386/jquant-mmx.asm',
    294             'simd/i386/jquant-sse.asm',
    295             'simd/i386/jquantf-sse2.asm',
    296             'simd/i386/jquanti-avx2.asm',
    297             'simd/i386/jquanti-sse2.asm',
    298             'simd/i386/jsimd.c',
    299             'simd/i386/jsimdcpu.asm',
    300         ]
    301 elif CONFIG['TARGET_CPU'].startswith('ppc'):
    302     DEFINES['MOZ_WITH_SIMD'] = 1
    303     # PowerPC has no assembly files, but still needs its own headers.
    304     LOCAL_INCLUDES += ['/media/libjpeg/simd/powerpc']
    305 
    306     # For libjpeg's internal runtime detection to work, jsimd.c must NOT
    307     # be compiled with -maltivec (otherwise it gets statically set),
    308     # but everything else should be. If -maltivec was already
    309     # specified in .mozconfig, though, then this won't harm anything.
    310     ppc_vmx_sources = [
    311         'simd/powerpc/jccolor-altivec.c',
    312         'simd/powerpc/jcgray-altivec.c',
    313         'simd/powerpc/jcsample-altivec.c',
    314         'simd/powerpc/jdcolor-altivec.c',
    315         'simd/powerpc/jdmerge-altivec.c',
    316         'simd/powerpc/jdsample-altivec.c',
    317         'simd/powerpc/jfdctfst-altivec.c',
    318         'simd/powerpc/jfdctint-altivec.c',
    319         'simd/powerpc/jidctfst-altivec.c',
    320         'simd/powerpc/jidctint-altivec.c',
    321         'simd/powerpc/jquanti-altivec.c',
    322     ]
    323     SOURCES += ppc_vmx_sources
    324     SOURCES += [
    325         'simd/powerpc/jsimd.c',
    326     ]
    327     for srcfile in ppc_vmx_sources:
    328         SOURCES[srcfile].flags += CONFIG['PPC_VMX_FLAGS']
    329 
    330 ASFLAGS += CONFIG['LIBJPEG_TURBO_SIMD_FLAGS']
    331 
    332 # Make sure the x86 & x86-64 ASM files can see the necessary includes.
    333 if CONFIG['TARGET_CPU'] == 'x86':
    334     ASFLAGS += ['-I%s/media/libjpeg/simd/nasm/' % TOPSRCDIR]
    335     ASFLAGS += ['-I%s/media/libjpeg/simd/i386/' % TOPSRCDIR]
    336 if CONFIG['TARGET_CPU'] == 'x86_64':
    337     ASFLAGS += ['-I%s/media/libjpeg/simd/nasm/' % TOPSRCDIR]
    338     ASFLAGS += ['-I%s/media/libjpeg/simd/x86_64/' % TOPSRCDIR]
    339 
    340 # We allow warnings for third-party code that can be updated from upstream.
    341 AllowCompilerWarnings()
    342 
    343 FINAL_LIBRARY = 'xul'
    344