tor-browser

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

moz.build (6753B)


      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', 'Audio/Video')
      9 
     10 include('sources.mozbuild')
     11 
     12 if CONFIG['VPX_USE_NASM']:
     13     USE_NASM = True
     14 
     15 # Linux, Mac and Win share file lists for x86* but not configurations.
     16 if CONFIG['TARGET_CPU'] == 'x86_64':
     17     if CONFIG['OS_TARGET'] == 'WINNT':
     18         EXPORTS.vpx += files['WIN_X64_EXPORTS']
     19         SOURCES += files['WIN_X64_SOURCES']
     20         ASFLAGS += [ '-I%s/media/libvpx/config/win/x64/' % TOPSRCDIR ]
     21         LOCAL_INCLUDES += [ '/media/libvpx/config/win/x64/' ]
     22     elif CONFIG['OS_TARGET'] == 'Darwin':
     23         EXPORTS.vpx += files['MAC_X64_EXPORTS']
     24         SOURCES += files['MAC_X64_SOURCES']
     25         ASFLAGS += [ '-I%s/media/libvpx/config/mac/x64/' % TOPSRCDIR ]
     26         LOCAL_INCLUDES += [ '/media/libvpx/config/mac/x64/' ]
     27     else: # Android, Linux, BSDs, etc.
     28         EXPORTS.vpx += files['LINUX_X64_EXPORTS']
     29         SOURCES += files['LINUX_X64_SOURCES']
     30         ASFLAGS += [ '-I%s/media/libvpx/config/linux/x64/' % TOPSRCDIR ]
     31         LOCAL_INCLUDES += [ '/media/libvpx/config/linux/x64/' ]
     32 elif CONFIG['TARGET_CPU'] == 'x86':
     33     if CONFIG['OS_TARGET'] == 'WINNT':
     34         EXPORTS.vpx += files['WIN_IA32_EXPORTS']
     35         SOURCES += files['WIN_IA32_SOURCES']
     36         ASFLAGS += [ '-I%s/media/libvpx/config/win/ia32/' % TOPSRCDIR ]
     37         LOCAL_INCLUDES += [ '/media/libvpx/config/win/ia32/' ]
     38     elif CONFIG['OS_TARGET'] == 'Darwin':
     39         EXPORTS.vpx += files['MAC_IA32_EXPORTS']
     40         SOURCES += files['MAC_IA32_SOURCES']
     41         ASFLAGS += [ '-I%s/media/libvpx/config/mac/ia32/' % TOPSRCDIR ]
     42         LOCAL_INCLUDES += [ '/media/libvpx/config/mac/ia32/' ]
     43     else: # Android, Linux, BSDs, etc.
     44         EXPORTS.vpx += files['LINUX_IA32_EXPORTS']
     45         SOURCES += files['LINUX_IA32_SOURCES']
     46         ASFLAGS += [ '-I%s/media/libvpx/config/linux/ia32/' % TOPSRCDIR ]
     47         LOCAL_INCLUDES += [ '/media/libvpx/config/linux/ia32/' ]
     48 elif CONFIG['TARGET_CPU'] == 'arm':
     49     EXPORTS.vpx += files['LINUX_ARM_EXPORTS']
     50     ASFLAGS += [
     51         '-I%s/media/libvpx/config/linux/arm/' % TOPSRCDIR,
     52         '-I%s/libvpx' % OBJDIR,
     53     ]
     54     LOCAL_INCLUDES += [ '/media/libvpx/config/linux/arm/' ]
     55 
     56     arm_asm_files = files['LINUX_ARM_SOURCES']
     57 
     58     if CONFIG['GNU_AS']:
     59         for f in arm_asm_files:
     60             if not f.endswith('.asm'):
     61                 continue
     62             GeneratedFile(f + ".S",
     63                           script="ads2gas.py",
     64                           entry_point="generate",
     65                           inputs=["libvpx/build/make/ads2gas.pl", f])
     66         SOURCES += sorted([
     67             "!%s.S" % f if f.endswith('.asm') else f for f in arm_asm_files
     68         ])
     69     else:
     70         SOURCES += sorted(arm_asm_files)
     71 
     72     for f in SOURCES:
     73         if f.endswith('.c') and 'neon' in f:
     74             SOURCES[f].flags += CONFIG['VPX_ASFLAGS']
     75 
     76     if CONFIG['OS_TARGET'] == 'Android':
     77         # For cpu-features.h
     78         LOCAL_INCLUDES += [
     79             '%%%s/sources/android/cpufeatures' % CONFIG['ANDROID_NDK'],
     80         ]
     81 elif CONFIG['TARGET_CPU'] == 'aarch64':
     82     if CONFIG['OS_TARGET'] == 'WINNT':
     83         EXPORTS.vpx += files['WIN_AARCH64_EXPORTS']
     84         SOURCES += files['WIN_AARCH64_SOURCES']
     85         ASFLAGS += [ '-I%s/media/libvpx/config/win/aarch64/' % TOPSRCDIR ]
     86         LOCAL_INCLUDES += [ '/media/libvpx/config/win/aarch64/' ]
     87     elif CONFIG['OS_TARGET'] == 'Darwin':
     88         EXPORTS.vpx += files['MAC_ARM64_EXPORTS']
     89         SOURCES += files['MAC_ARM64_SOURCES']
     90         ASFLAGS += [ '-I%s/media/libvpx/config/mac/arm64/' % TOPSRCDIR ]
     91         LOCAL_INCLUDES += [ '/media/libvpx/config/mac/arm64/' ]
     92     else: # Android, Linux, BSDs, etc.
     93         EXPORTS.vpx += files['LINUX_ARM64_EXPORTS']
     94         SOURCES += files['LINUX_ARM64_SOURCES']
     95         ASFLAGS += [ '-I%s/media/libvpx/config/linux/arm64/' % TOPSRCDIR ]
     96         LOCAL_INCLUDES += [ '/media/libvpx/config/linux/arm64/' ]
     97 elif CONFIG['TARGET_CPU'] == 'loongarch64':
     98     # LoongArch64 is Linux-only for now.
     99     EXPORTS.vpx += files['LINUX_LOONGARCH64_EXPORTS']
    100     SOURCES += files['LINUX_LOONGARCH64_SOURCES']
    101     ASFLAGS += [ '-I%s/media/libvpx/config/linux/loongarch64/' % TOPSRCDIR ]
    102     LOCAL_INCLUDES += [ '/media/libvpx/config/linux/loongarch64/' ]
    103 else:
    104     # Generic C-only configuration
    105     EXPORTS.vpx += files['GENERIC_EXPORTS']
    106     SOURCES += files['GENERIC_SOURCES']
    107     ASFLAGS += [ '-I%s/media/libvpx/config/generic/' % TOPSRCDIR ]
    108     LOCAL_INCLUDES += [ '/media/libvpx/config/generic/' ]
    109 
    110 # We allow warnings for third-party code that can be updated from upstream.
    111 AllowCompilerWarnings()
    112 
    113 FINAL_LIBRARY = 'gkcodecs'
    114 NoVisibilityFlags()
    115 
    116 DEFINES['HAVE_CONFIG_H'] = 'vpx_config.h'
    117 
    118 if CONFIG['OS_TARGET'] == 'Android':
    119     # Older versions of the Android NDK don't pre-define anything to indicate
    120     # the OS they're on, so do it for them.
    121     DEFINES['__linux__'] = True
    122 
    123     SOURCES += [
    124         '%%%s/sources/android/cpufeatures/cpu-features.c' % CONFIG['ANDROID_NDK'],
    125     ]
    126 
    127 for f in SOURCES:
    128     if f.endswith('.c'):
    129         if 'mmx.c' in f:
    130             SOURCES[f].flags += ['-mmmx']
    131         if 'sse2.c' in f:
    132             SOURCES[f].flags += CONFIG['SSE2_FLAGS']
    133         if 'ssse3.c' in f:
    134             SOURCES[f].flags += ['-mssse3']
    135         if 'sse4.c' in f:
    136             SOURCES[f].flags += ['-msse4.1']
    137         if 'avx.c' in f:
    138             SOURCES[f].flags += ['-mavx']
    139         if 'avx2.c' in f:
    140             SOURCES[f].flags += ['-mavx2']
    141         if 'neon_dotprod.c' in f:
    142             SOURCES[f].flags += ['-march=armv8.2-a+dotprod']
    143         if 'neon_i8mm.c' in f:
    144             SOURCES[f].flags += ['-march=armv8.2-a+dotprod+i8mm']
    145         if 'sve.c' in f:
    146             SOURCES[f].flags += ['-march=armv8.2-a+dotprod+i8mm+sve']
    147         if 'sve2.c' in f:
    148             SOURCES[f].flags += ['-march=armv9-a+sve2']
    149         if 'lsx.c' in f:
    150             SOURCES[f].flags += ['-mlsx']
    151 
    152 # Suppress warnings in third-party code.
    153 CFLAGS += [
    154     '-Wno-sign-compare',
    155     '-Wno-unused-function', # so many of these warnings; just ignore them
    156 ]
    157 if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
    158     CFLAGS += [
    159         '-Wno-unreachable-code',
    160         '-Wno-unneeded-internal-declaration',
    161     ]
    162 
    163 ASFLAGS += CONFIG['VPX_ASFLAGS']
    164 ASFLAGS += [
    165     '-I./',
    166     '-I%s/media/libvpx/libvpx/' % TOPSRCDIR,
    167 ]
    168 
    169 LOCAL_INCLUDES += [
    170     '/media/libvpx/config', # vpx_version.h
    171     '/media/libvpx/libvpx',
    172 ]
    173 
    174 if CONFIG['OS_TARGET'] == 'Android':
    175     # For LIBVPX_RAND
    176     ASFLAGS += [
    177         '-D__ANDROID__'
    178     ]