summaryrefslogtreecommitdiffstats
path: root/media/libwebp/src/dsp/moz.build
blob: eed1facf19b4f899e172d60b453b23f093ffe42d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# -*- 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/.

SOURCES += [
    'alpha_processing.c',
    'cost.c',
    'dec.c',
    'dec_clip_tables.c',
    'enc.c',
    'filters.c',
    'lossless.c',
    'lossless_enc.c',
    'rescaler.c',
    'ssim.c',
    'upsampling.c',
    'yuv.c',
]

LOCAL_INCLUDES += [
    '/media/libwebp',
]

if CONFIG['CPU_ARCH'] == 'arm' and CONFIG['BUILD_ARM_NEON']:
    SOURCES += [
        'alpha_processing_neon.c',
        'cost_neon.c',
        'dec_neon.c',
        'enc_neon.c',
        'filters_neon.c',
        'lossless_enc_neon.c',
        'lossless_neon.c',
        'rescaler_neon.c',
        'upsampling_neon.c',
        'yuv_neon.c',
    ]
    DEFINES['WEBP_HAVE_NEON'] = 1;
    for f in SOURCES:
      if f.endswith('neon.c'):
        SOURCES[f].flags += CONFIG['NEON_FLAGS']
elif CONFIG['CPU_ARCH'] == 'aarch64':
    SOURCES += [
        'alpha_processing_neon.c',
        'cost_neon.c',
        'dec_neon.c',
        'enc_neon.c',
        'filters_neon.c',
        'lossless_enc_neon.c',
        'lossless_neon.c',
        'rescaler_neon.c',
        'upsampling_neon.c',
        'yuv_neon.c',
    ]
    DEFINES['WEBP_HAVE_NEON'] = 1;
elif CONFIG['INTEL_ARCHITECTURE']:
    SOURCES += [
        'alpha_processing_sse2.c',
        'alpha_processing_sse41.c',
        'cost_sse2.c',
        'dec_sse2.c',
        'dec_sse41.c',
        'enc_sse2.c',
        'enc_sse41.c',
        'filters_sse2.c',
        'lossless_enc_sse2.c',
        'lossless_enc_sse41.c',
        'lossless_sse2.c',
        'lossless_sse41.c',
        'rescaler_sse2.c',
        'ssim_sse2.c',
        'upsampling_sse2.c',
        'upsampling_sse41.c',
        'yuv_sse2.c',
        'yuv_sse41.c',
    ]
    DEFINES['WEBP_HAVE_SSE2'] = 1;
    DEFINES['WEBP_HAVE_SSE41'] = 1;
    for f in SOURCES:
      if f.endswith('sse2.c'):
        SOURCES[f].flags += CONFIG['SSE2_FLAGS']
      elif f.endswith('sse41.c'):
        SOURCES[f].flags += ['-msse4.1']
elif CONFIG['CPU_ARCH'].startswith('mips'):
    SOURCES += [
        'alpha_processing_mips_dsp_r2.c',
        'cost_mips32.c',
        'cost_mips_dsp_r2.c',
        'dec_mips32.c',
        'dec_mips_dsp_r2.c',
        'enc_mips32.c',
        'enc_mips_dsp_r2.c',
        'filters_mips_dsp_r2.c',
        'lossless_enc_mips32.c',
        'lossless_enc_mips_dsp_r2.c',
        'lossless_mips_dsp_r2.c',
        'lossless_msa.c',
        'rescaler_mips32.c',
        'rescaler_mips_dsp_r2.c',
        'rescaler_msa.c',
        'upsampling_mips_dsp_r2.c',
        'upsampling_msa.c',
        'yuv_mips32.c',
        'yuv_mips_dsp_r2.c',
    ]

if CONFIG['CC_TYPE'] in ('clang', 'clang-cl'):
    CFLAGS += ['-Wno-unreachable-code']

# Add libFuzzer configuration directives
include('/tools/fuzzing/libfuzzer-config.mozbuild')

FINAL_LIBRARY = 'gkmedias'

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