mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-08-15 08:53:07 +09:00
This fully works for splitting gkmedias.dll back out from xul with one exception which is Skia throwing undefined externals when linking gkmedias.
156 lines
5.8 KiB
INI
156 lines
5.8 KiB
INI
# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
|
|
# 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', 'Audio/Video')
|
|
|
|
include('sources.mozbuild')
|
|
|
|
# Linux, Mac and Win share file lists for x86* but not configurations.
|
|
if CONFIG['CPU_ARCH'] == 'x86_64':
|
|
EXPORTS.aom += files['X64_EXPORTS']
|
|
SOURCES += files['X64_SOURCES']
|
|
USE_YASM = True
|
|
if CONFIG['OS_TARGET'] == 'WINNT':
|
|
if CONFIG['GNU_CC']:
|
|
ASFLAGS += [ '-I%s/media/libaom/config/win/mingw64/' % TOPSRCDIR ]
|
|
LOCAL_INCLUDES += [ '/media/libaom/config/win/mingw64/' ]
|
|
EXPORTS.aom += [ 'config/win/mingw64/config/aom_config.h' ]
|
|
else:
|
|
ASFLAGS += [ '-I%s/media/libaom/config/win/x64/' % TOPSRCDIR ]
|
|
LOCAL_INCLUDES += [ '/media/libaom/config/win/x64/' ]
|
|
EXPORTS.aom += [ 'config/win/x64/config/aom_config.h' ]
|
|
NO_PGO = True
|
|
elif CONFIG['OS_TARGET'] == 'Darwin':
|
|
ASFLAGS += [ '-I%s/media/libaom/config/mac/x64/' % TOPSRCDIR ]
|
|
LOCAL_INCLUDES += [ '/media/libaom/config/mac/x64/' ]
|
|
EXPORTS.aom += [ 'config/mac/x64/config/aom_config.h' ]
|
|
else: # Android, Linux, BSDs, etc.
|
|
ASFLAGS += [ '-I%s/media/libaom/config/linux/x64/' % TOPSRCDIR ]
|
|
LOCAL_INCLUDES += [ '/media/libaom/config/linux/x64/' ]
|
|
EXPORTS.aom += [ 'config/linux/x64/config/aom_config.h' ]
|
|
elif CONFIG['CPU_ARCH'] == 'x86':
|
|
EXPORTS.aom += files['IA32_EXPORTS']
|
|
SOURCES += files['IA32_SOURCES']
|
|
USE_YASM = True
|
|
if CONFIG['OS_TARGET'] == 'WINNT':
|
|
if CONFIG['GNU_CC']:
|
|
ASFLAGS += [ '-I%s/media/libaom/config/win/mingw32/' % TOPSRCDIR ]
|
|
LOCAL_INCLUDES += [ '/media/libaom/config/win/mingw32/' ]
|
|
EXPORTS.aom += [ 'config/win/mingw32/config/aom_config.h' ]
|
|
else:
|
|
ASFLAGS += [ '-I%s/media/libaom/config/win/ia32/' % TOPSRCDIR ]
|
|
LOCAL_INCLUDES += [ '/media/libaom/config/win/ia32/' ]
|
|
EXPORTS.aom += [ 'config/win/ia32/config/aom_config.h' ]
|
|
NO_PGO = True
|
|
else: # Android, Linux, BSDs, etc.
|
|
ASFLAGS += [ '-I%s/media/libaom/config/linux/ia32/' % TOPSRCDIR ]
|
|
LOCAL_INCLUDES += [ '/media/libaom/config/linux/ia32/' ]
|
|
EXPORTS.aom += [ 'config/linux/ia32/config/aom_config.h' ]
|
|
elif CONFIG['CPU_ARCH'] == 'arm':
|
|
EXPORTS.aom += files['ARM_EXPORTS']
|
|
ASFLAGS += [
|
|
'-I%s/media/libaom/config/linux/arm/' % TOPSRCDIR,
|
|
'-I%s/libaom' % OBJDIR,
|
|
]
|
|
LOCAL_INCLUDES += [ '/media/libaom/config/linux/arm/' ]
|
|
EXPORTS.aom += [ 'config/linux/arm/config/aom_config.h' ]
|
|
|
|
arm_asm_files = files['ARM_SOURCES']
|
|
|
|
if CONFIG['VPX_AS_CONVERSION']:
|
|
SOURCES += sorted([
|
|
"!%s.S" % f if f.endswith('.asm') else f for f in arm_asm_files
|
|
])
|
|
else:
|
|
SOURCES += sorted(arm_asm_files)
|
|
|
|
for f in SOURCES:
|
|
if f.endswith('neon.c'):
|
|
SOURCES[f].flags += CONFIG['VPX_ASFLAGS']
|
|
|
|
if CONFIG['OS_TARGET'] == 'Android':
|
|
# For cpu-features.h
|
|
LOCAL_INCLUDES += [
|
|
'%%%s/sources/android/cpufeatures' % CONFIG['ANDROID_NDK'],
|
|
]
|
|
if CONFIG['CLANG_CXX']:
|
|
ASFLAGS += [
|
|
'-no-integrated-as',
|
|
]
|
|
else:
|
|
# Generic C-only configuration
|
|
EXPORTS.aom += files['GENERIC_EXPORTS']
|
|
SOURCES += files['GENERIC_SOURCES']
|
|
ASFLAGS += [ '-I%s/media/libaom/config/generic/' % TOPSRCDIR ]
|
|
LOCAL_INCLUDES += [ '/media/libaom/config/generic/' ]
|
|
EXPORTS.aom += [ 'config/generic/config/aom_config.h' ]
|
|
|
|
if CONFIG['GKMEDIAS_SHARED_LIBRARY']:
|
|
NO_VISIBILITY_FLAGS = True
|
|
|
|
# We allow warnings for third-party code that can be updated from upstream.
|
|
ALLOW_COMPILER_WARNINGS = True
|
|
|
|
FINAL_LIBRARY = 'gkmedias'
|
|
|
|
if CONFIG['OS_TARGET'] == 'Android':
|
|
# Older versions of the Android NDK don't pre-define anything to indicate
|
|
# the OS they're on, so do it for them.
|
|
DEFINES['__linux__'] = True
|
|
|
|
if not CONFIG['MOZ_WEBRTC']:
|
|
SOURCES += [
|
|
'%%%s/sources/android/cpufeatures/cpu-features.c' % CONFIG['ANDROID_NDK'],
|
|
]
|
|
|
|
if CONFIG['CLANG_CL'] or not CONFIG['_MSC_VER']:
|
|
for f in SOURCES:
|
|
if f.endswith('sse2.c'):
|
|
SOURCES[f].flags += CONFIG['SSE2_FLAGS']
|
|
elif f.endswith('ssse3.c'):
|
|
SOURCES[f].flags += ['-mssse3']
|
|
elif f.endswith('sse4.c'):
|
|
SOURCES[f].flags += ['-msse4.1']
|
|
elif f.endswith('sse42.c'):
|
|
SOURCES[f].flags += ['-msse4.2']
|
|
elif f.endswith('avx.c'):
|
|
SOURCES[f].flags += ['-mavx']
|
|
elif f.endswith('avx2.c'):
|
|
SOURCES[f].flags += ['-mavx2']
|
|
if CONFIG['_MSC_VER']:
|
|
for f in SOURCES:
|
|
# MSVC massively chokes on inlining these SIMD sources, so disable inlining for them.
|
|
if f.endswith('cdef_block_sse2.c'):
|
|
SOURCES[f].flags += ['-Ob0']
|
|
elif f.endswith('cdef_block_ssse3.c'):
|
|
SOURCES[f].flags += ['-Ob0']
|
|
elif f.endswith('cdef_block_sse4.c'):
|
|
SOURCES[f].flags += ['-Ob0']
|
|
elif f.endswith('cdef_block_avx2.c'):
|
|
SOURCES[f].flags += ['-Ob0']
|
|
|
|
# Suppress warnings in third-party code.
|
|
if CONFIG['GNU_CC'] or CONFIG['CLANG_CL']:
|
|
CFLAGS += [
|
|
'-Wno-sign-compare',
|
|
'-Wno-unused-function', # so many of these warnings; just ignore them
|
|
]
|
|
if CONFIG['CLANG_CXX'] or CONFIG['CLANG_CL']:
|
|
CFLAGS += [
|
|
'-Wno-unreachable-code',
|
|
'-Wno-unneeded-internal-declaration',
|
|
]
|
|
|
|
ASFLAGS += CONFIG['VPX_ASFLAGS']
|
|
ASFLAGS += [
|
|
'-I.',
|
|
'-I%s/media/libaom/src' % TOPSRCDIR,
|
|
]
|
|
|
|
LOCAL_INCLUDES += [
|
|
'/media/libaom/config', # aom_version.h
|
|
'/media/libaom/src',
|
|
]
|