blob: cff4a68afbecdb14e5e859673e9413455dc31222 [file] [log] [blame]
Tom Finegan44916e72017-02-27 14:12:31 -08001##
2## Copyright (c) 2017, Alliance for Open Media. All rights reserved
3##
4## This source code is subject to the terms of the BSD 2 Clause License and
5## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
6## was not distributed with this source code in the LICENSE file, you can
7## obtain it at www.aomedia.org/license/software. If the Alliance for Open
8## Media Patent License 1.0 was not distributed with this source code in the
9## PATENTS file, you can obtain it at www.aomedia.org/license/patent.
10##
11set(AOM_AV1_COMMON_SOURCES
12 "${AOM_ROOT}/av1/av1_iface_common.h"
13 "${AOM_ROOT}/av1/common/alloccommon.c"
14 "${AOM_ROOT}/av1/common/alloccommon.h"
15 # TODO(tomfinegan): Foward transform belongs in encoder.
16 "${AOM_ROOT}/av1/common/av1_fwd_txfm1d.c"
17 "${AOM_ROOT}/av1/common/av1_fwd_txfm1d.h"
18 "${AOM_ROOT}/av1/common/av1_fwd_txfm2d.c"
19 "${AOM_ROOT}/av1/common/av1_fwd_txfm2d_cfg.h"
20 "${AOM_ROOT}/av1/common/av1_inv_txfm1d.c"
21 "${AOM_ROOT}/av1/common/av1_inv_txfm1d.h"
22 "${AOM_ROOT}/av1/common/av1_inv_txfm2d.c"
23 "${AOM_ROOT}/av1/common/av1_inv_txfm2d_cfg.h"
24 "${AOM_ROOT}/av1/common/av1_loopfilter.c"
25 "${AOM_ROOT}/av1/common/av1_loopfilter.h"
26 "${AOM_ROOT}/av1/common/av1_txfm.h"
27 "${AOM_ROOT}/av1/common/blockd.c"
28 "${AOM_ROOT}/av1/common/blockd.h"
29 "${AOM_ROOT}/av1/common/common.h"
30 "${AOM_ROOT}/av1/common/common_data.h"
31 "${AOM_ROOT}/av1/common/convolve.c"
32 "${AOM_ROOT}/av1/common/convolve.h"
33 "${AOM_ROOT}/av1/common/debugmodes.c"
34 "${AOM_ROOT}/av1/common/entropy.c"
35 "${AOM_ROOT}/av1/common/entropy.h"
36 "${AOM_ROOT}/av1/common/entropymode.c"
37 "${AOM_ROOT}/av1/common/entropymode.h"
38 "${AOM_ROOT}/av1/common/entropymv.c"
39 "${AOM_ROOT}/av1/common/entropymv.h"
40 "${AOM_ROOT}/av1/common/enums.h"
41 "${AOM_ROOT}/av1/common/filter.c"
42 "${AOM_ROOT}/av1/common/filter.h"
43 "${AOM_ROOT}/av1/common/frame_buffers.c"
44 "${AOM_ROOT}/av1/common/frame_buffers.h"
45 "${AOM_ROOT}/av1/common/idct.c"
46 "${AOM_ROOT}/av1/common/idct.h"
47 "${AOM_ROOT}/av1/common/mv.h"
48 "${AOM_ROOT}/av1/common/mvref_common.c"
49 "${AOM_ROOT}/av1/common/mvref_common.h"
50 "${AOM_ROOT}/av1/common/odintrin.c"
51 "${AOM_ROOT}/av1/common/odintrin.h"
52 "${AOM_ROOT}/av1/common/onyxc_int.h"
53 "${AOM_ROOT}/av1/common/pred_common.c"
54 "${AOM_ROOT}/av1/common/pred_common.h"
55 "${AOM_ROOT}/av1/common/quant_common.c"
56 "${AOM_ROOT}/av1/common/quant_common.h"
57 "${AOM_ROOT}/av1/common/reconinter.c"
58 "${AOM_ROOT}/av1/common/reconinter.h"
59 "${AOM_ROOT}/av1/common/reconintra.c"
60 "${AOM_ROOT}/av1/common/reconintra.h"
Fergus Simpsond0565002017-03-27 16:51:52 -070061 "${AOM_ROOT}/av1/common/resize.c"
62 "${AOM_ROOT}/av1/common/resize.h"
Tom Finegan44916e72017-02-27 14:12:31 -080063 "${AOM_ROOT}/av1/common/restoration.h"
64 "${AOM_ROOT}/av1/common/scale.c"
65 "${AOM_ROOT}/av1/common/scale.h"
66 "${AOM_ROOT}/av1/common/scan.c"
67 "${AOM_ROOT}/av1/common/scan.h"
68 "${AOM_ROOT}/av1/common/seg_common.c"
69 "${AOM_ROOT}/av1/common/seg_common.h"
70 "${AOM_ROOT}/av1/common/thread_common.c"
71 "${AOM_ROOT}/av1/common/thread_common.h"
72 "${AOM_ROOT}/av1/common/tile_common.c"
73 "${AOM_ROOT}/av1/common/tile_common.h")
74
75set(AOM_AV1_DECODER_SOURCES
76 "${AOM_ROOT}/av1/av1_dx_iface.c"
77 "${AOM_ROOT}/av1/decoder/decodeframe.c"
78 "${AOM_ROOT}/av1/decoder/decodeframe.h"
79 "${AOM_ROOT}/av1/decoder/decodemv.c"
80 "${AOM_ROOT}/av1/decoder/decodemv.h"
81 "${AOM_ROOT}/av1/decoder/decoder.c"
82 "${AOM_ROOT}/av1/decoder/decoder.h"
83 "${AOM_ROOT}/av1/decoder/detokenize.c"
84 "${AOM_ROOT}/av1/decoder/detokenize.h"
85 "${AOM_ROOT}/av1/decoder/dsubexp.c"
86 "${AOM_ROOT}/av1/decoder/dsubexp.h"
87 "${AOM_ROOT}/av1/decoder/dthread.c"
88 "${AOM_ROOT}/av1/decoder/dthread.h")
89
90set(AOM_AV1_ENCODER_SOURCES
91 "${AOM_ROOT}/av1/av1_cx_iface.c"
92 "${AOM_ROOT}/av1/encoder/aq_complexity.c"
93 "${AOM_ROOT}/av1/encoder/aq_complexity.h"
94 "${AOM_ROOT}/av1/encoder/aq_cyclicrefresh.c"
95 "${AOM_ROOT}/av1/encoder/aq_cyclicrefresh.h"
96 "${AOM_ROOT}/av1/encoder/aq_variance.c"
97 "${AOM_ROOT}/av1/encoder/aq_variance.h"
98 "${AOM_ROOT}/av1/encoder/av1_quantize.c"
99 "${AOM_ROOT}/av1/encoder/av1_quantize.h"
100 "${AOM_ROOT}/av1/encoder/bitstream.c"
101 "${AOM_ROOT}/av1/encoder/bitstream.h"
102 "${AOM_ROOT}/av1/encoder/block.h"
103 "${AOM_ROOT}/av1/encoder/context_tree.c"
104 "${AOM_ROOT}/av1/encoder/context_tree.h"
105 "${AOM_ROOT}/av1/encoder/cost.c"
106 "${AOM_ROOT}/av1/encoder/cost.h"
107 "${AOM_ROOT}/av1/encoder/dct.c"
108 "${AOM_ROOT}/av1/encoder/encodeframe.c"
109 "${AOM_ROOT}/av1/encoder/encodeframe.h"
110 "${AOM_ROOT}/av1/encoder/encodemb.c"
111 "${AOM_ROOT}/av1/encoder/encodemb.h"
112 "${AOM_ROOT}/av1/encoder/encodemv.c"
113 "${AOM_ROOT}/av1/encoder/encodemv.h"
114 "${AOM_ROOT}/av1/encoder/encoder.c"
115 "${AOM_ROOT}/av1/encoder/encoder.h"
116 "${AOM_ROOT}/av1/encoder/ethread.c"
117 "${AOM_ROOT}/av1/encoder/ethread.h"
118 "${AOM_ROOT}/av1/encoder/extend.c"
119 "${AOM_ROOT}/av1/encoder/extend.h"
120 "${AOM_ROOT}/av1/encoder/firstpass.c"
121 "${AOM_ROOT}/av1/encoder/firstpass.h"
122 "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.c"
123 "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.h"
124 "${AOM_ROOT}/av1/encoder/lookahead.c"
125 "${AOM_ROOT}/av1/encoder/lookahead.h"
126 "${AOM_ROOT}/av1/encoder/mbgraph.c"
127 "${AOM_ROOT}/av1/encoder/mbgraph.h"
128 "${AOM_ROOT}/av1/encoder/mcomp.c"
129 "${AOM_ROOT}/av1/encoder/mcomp.h"
130 "${AOM_ROOT}/av1/encoder/picklpf.c"
131 "${AOM_ROOT}/av1/encoder/picklpf.h"
132 "${AOM_ROOT}/av1/encoder/ratectrl.c"
133 "${AOM_ROOT}/av1/encoder/ratectrl.h"
134 "${AOM_ROOT}/av1/encoder/rd.c"
135 "${AOM_ROOT}/av1/encoder/rd.h"
136 "${AOM_ROOT}/av1/encoder/rdopt.c"
137 "${AOM_ROOT}/av1/encoder/rdopt.h"
Tom Finegan44916e72017-02-27 14:12:31 -0800138 "${AOM_ROOT}/av1/encoder/segmentation.c"
139 "${AOM_ROOT}/av1/encoder/segmentation.h"
140 "${AOM_ROOT}/av1/encoder/speed_features.c"
141 "${AOM_ROOT}/av1/encoder/speed_features.h"
142 "${AOM_ROOT}/av1/encoder/subexp.c"
143 "${AOM_ROOT}/av1/encoder/subexp.h"
144 "${AOM_ROOT}/av1/encoder/temporal_filter.c"
145 "${AOM_ROOT}/av1/encoder/temporal_filter.h"
146 "${AOM_ROOT}/av1/encoder/tokenize.c"
147 "${AOM_ROOT}/av1/encoder/tokenize.h"
148 "${AOM_ROOT}/av1/encoder/treewriter.c"
149 "${AOM_ROOT}/av1/encoder/treewriter.h"
150 "${AOM_ROOT}/av1/encoder/variance_tree.c"
151 "${AOM_ROOT}/av1/encoder/variance_tree.h")
152
Tom Finegan44916e72017-02-27 14:12:31 -0800153set(AOM_AV1_COMMON_SSE2_INTRIN
154 # Requires CONFIG_GLOBAL_MOTION or CONFIG_WARPED_MOTION
155 #"${AOM_ROOT}/av1/common/x86/warp_plane_sse2.c"
156 "${AOM_ROOT}/av1/common/x86/idct_intrin_sse2.c")
157
158set(AOM_AV1_COMMON_SSSE3_INTRIN
159 "${AOM_ROOT}/av1/common/x86/av1_convolve_ssse3.c")
160
161set(AOM_AV1_COMMON_SSE4_1_INTRIN
Tom Finegan44916e72017-02-27 14:12:31 -0800162 "${AOM_ROOT}/av1/common/x86/av1_fwd_txfm1d_sse4.c"
163 "${AOM_ROOT}/av1/common/x86/av1_fwd_txfm2d_sse4.c")
164
Tom Finegan44916e72017-02-27 14:12:31 -0800165set(AOM_AV1_COMMON_AVX2_INTRIN
166 "${AOM_ROOT}/av1/common/x86/hybrid_inv_txfm_avx2.c")
167
168set(AOM_AV1_ENCODER_SSE2_ASM
169 "${AOM_ROOT}/av1/encoder/x86/dct_sse2.asm"
170 "${AOM_ROOT}/av1/encoder/x86/error_sse2.asm"
171 "${AOM_ROOT}/av1/encoder/x86/temporal_filter_apply_sse2.asm")
172
173set(AOM_AV1_ENCODER_SSE2_INTRIN
174 "${AOM_ROOT}/av1/encoder/x86/dct_intrin_sse2.c"
175 "${AOM_ROOT}/av1/encoder/x86/highbd_block_error_intrin_sse2.c"
176 "${AOM_ROOT}/av1/encoder/x86/av1_quantize_sse2.c")
177
178set(AOM_AV1_ENCODER_SSSE3_ASM_X86_64
179 "${AOM_ROOT}/av1/encoder/x86/av1_quantize_ssse3_x86_64.asm")
180
181set(AOM_AV1_ENCODER_SSSE3_INTRIN
182 "${AOM_ROOT}/av1/encoder/x86/dct_ssse3.c")
183
184set(AOM_AV1_ENCODER_AVX2_INTRIN
185 "${AOM_ROOT}/av1/encoder/x86/error_intrin_avx2.c"
186 "${AOM_ROOT}/av1/encoder/x86/hybrid_fwd_txfm_avx2.c")
187
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700188set(AOM_AV1_ENCODER_NEON_INTRIN
189 "${AOM_ROOT}/av1/encoder/arm/neon/quantize_neon.c")
190
Tom Finegan44916e72017-02-27 14:12:31 -0800191if (CONFIG_ACCOUNTING)
192 set(AOM_AV1_COMMON_SOURCES
193 ${AOM_AV1_COMMON_SOURCES}
194 "${AOM_ROOT}/av1/common/accounting.c"
195 "${AOM_ROOT}/av1/common/accounting.h")
196endif ()
197
Tom Finegan7bb58b12017-03-02 21:11:36 -0800198if (CONFIG_AOM_HIGHBITDEPTH)
199 set(AOM_AV1_COMMON_SSE4_1_INTRIN
200 ${AOM_AV1_COMMON_SSE4_1_INTRIN}
201 "${AOM_ROOT}/av1/common/x86/av1_highbd_convolve_sse4.c"
202 "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_sse4.c")
203
204 set(AOM_AV1_COMMON_AVX2_INTRIN
205 ${AOM_AV1_COMMON_AVX2_INTRIN}
206 "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_avx2.c")
207
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700208 set(AOM_AV1_ENCODER_NEON_INTRIN
209 ${AOM_AV1_ENCODER_NEON_INTRIN}
210 "${AOM_ROOT}/av1/encoder/arm/neon/dct_neon.c"
211 "${AOM_ROOT}/av1/encoder/arm/neon/error_neon.c")
212
Tom Finegan7bb58b12017-03-02 21:11:36 -0800213 set(AOM_AV1_ENCODER_SSE4_1_INTRIN
214 ${AOM_AV1_ENCODER_SSE4_1_INTRIN}
215 "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_sse4.c"
216 "${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_sse4.c")
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700217else ()
218 set(AOM_AV1_COMMON_NEON_INTRIN
219 ${AOM_AV1_COMMON_NEON_INTRIN}
220 "${AOM_ROOT}/av1/common/arm/neon/iht4x4_add_neon.c"
221 "${AOM_ROOT}/av1/common/arm/neon/iht8x8_add_neon.c")
Tom Finegan7bb58b12017-03-02 21:11:36 -0800222endif ()
223
Tom Finegan44916e72017-02-27 14:12:31 -0800224if (CONFIG_CDEF)
225 set(AOM_AV1_COMMON_SOURCES
226 ${AOM_AV1_COMMON_SOURCES}
227 "${AOM_ROOT}/av1/common/clpf.c"
Tom Fineganb4875822017-03-02 18:33:31 -0800228 "${AOM_ROOT}/av1/common/clpf.h"
229 "${AOM_ROOT}/av1/common/clpf_simd.h"
Steinar Midtskogen8ff52fc2017-04-04 12:29:19 +0200230 "${AOM_ROOT}/av1/common/cdef_simd.h"
Steinar Midtskogena9d41e82017-03-17 12:48:15 +0100231 "${AOM_ROOT}/av1/common/cdef.c"
232 "${AOM_ROOT}/av1/common/cdef.h"
Tom Fineganb4875822017-03-02 18:33:31 -0800233 "${AOM_ROOT}/av1/common/od_dering.c"
Steinar Midtskogenb8ff6aa2017-03-25 18:52:22 +0100234 "${AOM_ROOT}/av1/common/od_dering.h"
235 "${AOM_ROOT}/av1/common/od_dering_simd.h")
Tom Finegan44916e72017-02-27 14:12:31 -0800236
237 set(AOM_AV1_ENCODER_SOURCES
238 ${AOM_AV1_ENCODER_SOURCES}
Steinar Midtskogena9d41e82017-03-17 12:48:15 +0100239 "${AOM_ROOT}/av1/encoder/pickcdef.c")
Tom Finegan44916e72017-02-27 14:12:31 -0800240
241 set(AOM_AV1_COMMON_SSE2_INTRIN
242 ${AOM_AV1_COMMON_SSE2_INTRIN}
Steinar Midtskogenb8ff6aa2017-03-25 18:52:22 +0100243 "${AOM_ROOT}/av1/common/clpf_sse2.c"
244 "${AOM_ROOT}/av1/common/od_dering_sse2.c")
Tom Finegan44916e72017-02-27 14:12:31 -0800245
246 set(AOM_AV1_COMMON_SSSE3_INTRIN
247 ${AOM_AV1_COMMON_SSSE3_INTRIN}
Steinar Midtskogenb8ff6aa2017-03-25 18:52:22 +0100248 "${AOM_ROOT}/av1/common/clpf_ssse3.c"
249 "${AOM_ROOT}/av1/common/od_dering_ssse3.c")
Tom Finegan44916e72017-02-27 14:12:31 -0800250
251 set(AOM_AV1_COMMON_SSE4_1_INTRIN
252 ${AOM_AV1_COMMON_SSE4_1_INTRIN}
Steinar Midtskogenb8ff6aa2017-03-25 18:52:22 +0100253 "${AOM_ROOT}/av1/common/clpf_sse4.c"
254 "${AOM_ROOT}/av1/common/od_dering_sse4.c")
Tom Finegan44916e72017-02-27 14:12:31 -0800255
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700256 set(AOM_AV1_COMMON_NEON_INTRIN
257 ${AOM_AV1_COMMON_NEON_INTRIN}
Steinar Midtskogenb8ff6aa2017-03-25 18:52:22 +0100258 "${AOM_ROOT}/av1/common/clpf_neon.c"
259 "${AOM_ROOT}/av1/common/od_dering_neon.c")
Tom Finegan44916e72017-02-27 14:12:31 -0800260endif ()
261
262if (CONFIG_EXT_INTER)
263 set(AOM_AV1_ENCODER_SOURCES
264 ${AOM_AV1_ENCODER_SOURCES}
265 "${AOM_ROOT}/av1/encoder/wedge_utils.c")
266
267 set(AOM_AV1_ENCODER_SSE2_INTRIN
268 ${AOM_AV1_ENCODER_SSE2_INTRIN}
269 "${AOM_ROOT}/av1/encoder/x86/wedge_utils_sse2.c")
270endif ()
271
Tom Finegan7bb58b12017-03-02 21:11:36 -0800272if (CONFIG_FILTER_INTRA)
273 set(AOM_AV1_COMMON_SSE4_1_INTRIN
274 ${AOM_AV1_COMMON_SSE4_1_INTRIN}
275 "${AOM_ROOT}/av1/common/x86/filterintra_sse4.c")
276endif ()
277
278if (CONFIG_INSPECTION)
279 set(AOM_AV1_DECODER_SOURCES
280 ${AOM_AV1_DECODER_SOURCES}
281 "${AOM_ROOT}/av1/decoder/inspection.c"
282 "${AOM_ROOT}/av1/decoder/inspection.h")
283endif ()
284
Tom Finegan44916e72017-02-27 14:12:31 -0800285if (CONFIG_INTERNAL_STATS)
286 set(AOM_AV1_ENCODER_SOURCES
287 ${AOM_AV1_ENCODER_SOURCES}
288 "${AOM_ROOT}/av1/encoder/blockiness.c")
289endif ()
290
Tom Finegan7bb58b12017-03-02 21:11:36 -0800291if (CONFIG_PALETTE)
292 set(AOM_AV1_ENCODER_SOURCES
293 ${AOM_AV1_ENCODER_SOURCES}
294 "${AOM_ROOT}/av1/encoder/palette.c"
295 "${AOM_ROOT}/av1/encoder/palette.h")
296endif ()
Tom Finegan44916e72017-02-27 14:12:31 -0800297
Tom Finegan27f65d92017-03-02 22:03:10 -0800298if (CONFIG_PVQ)
299 set(AOM_AV1_COMMON_SOURCES
300 ${AOM_AV1_COMMON_SOURCES}
301 "${AOM_ROOT}/av1/common/laplace_tables.c"
302 "${AOM_ROOT}/av1/common/pvq.c"
303 "${AOM_ROOT}/av1/common/pvq.h"
304 "${AOM_ROOT}/av1/common/pvq_state.c"
305 "${AOM_ROOT}/av1/common/pvq_state.h"
306 "${AOM_ROOT}/av1/common/partition.c"
307 "${AOM_ROOT}/av1/common/partition.h"
308 "${AOM_ROOT}/av1/common/generic_code.c"
309 "${AOM_ROOT}/av1/common/generic_code.h"
310 "${AOM_ROOT}/av1/common/zigzag4.c"
311 "${AOM_ROOT}/av1/common/zigzag8.c"
312 "${AOM_ROOT}/av1/common/zigzag16.c"
313 "${AOM_ROOT}/av1/common/zigzag32.c")
314
315 set(AOM_AV1_DECODER_SOURCES
316 ${AOM_AV1_DECODER_SOURCES}
317 "${AOM_ROOT}/av1/decoder/decint.h"
318 "${AOM_ROOT}/av1/decoder/pvq_decoder.c"
319 "${AOM_ROOT}/av1/decoder/pvq_decoder.h"
320 "${AOM_ROOT}/av1/decoder/generic_decoder.c"
321 "${AOM_ROOT}/av1/decoder/laplace_decoder.c")
322
323 set(AOM_AV1_ENCODER_SOURCES
324 ${AOM_AV1_ENCODER_SOURCES}
325 "${AOM_ROOT}/av1/encoder/daala_compat_enc.c"
326 "${AOM_ROOT}/av1/encoder/encint.h"
327 "${AOM_ROOT}/av1/encoder/pvq_encoder.c"
328 "${AOM_ROOT}/av1/encoder/pvq_encoder.h"
329 "${AOM_ROOT}/av1/encoder/generic_encoder.c"
330 "${AOM_ROOT}/av1/encoder/laplace_encoder.c")
331
332 set(AOM_AV1_COMMON_SSE4_1_INTRIN
333 ${AOM_AV1_COMMON_SSE4_1_INTRIN}
334 "${AOM_ROOT}/av1/common/x86/pvq_sse4.c"
335 "${AOM_ROOT}/av1/common/x86/pvq_sse4.h")
336
337 if (NOT CONFIG_AV1_ENCODER)
338 # TODO(tomfinegan): These should probably be in av1/common, and in a
339 # common source list. For now this mirrors the original build system.
340 set(AOM_AV1_DECODER_SOURCES
341 ${AOM_AV1_DECODER_SOURCES}
342 "${AOM_ROOT}/av1/encoder/dct.c"
343 "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.c"
344 "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.h")
345
346 set(AOM_AV1_DECODER_SSE2_ASM
347 ${AOM_AV1_DECODER_SSE2_ASM}
348 "${AOM_ROOT}/av1/encoder/x86/dct_sse2.asm")
349
350 set(AOM_AV1_DECODER_SSE2_INTRIN
351 ${AOM_AV1_DECODER_SSE2_INTRIN}
352 "${AOM_ROOT}/av1/encoder/x86/dct_intrin_sse2.c")
353
354 set(AOM_AV1_DECODER_SSSE3_INTRIN
355 ${AOM_AV1_DECODER_SSSE3_INTRIN}
356 "${AOM_ROOT}/av1/encoder/x86/dct_ssse3.c")
357 endif ()
Tom Finegan44916e72017-02-27 14:12:31 -0800358endif ()
359
Tom Finegan57338fc2017-04-05 11:47:45 -0700360if (CONFIG_WARPED_MOTION)
361 set(AOM_AV1_COMMON_SOURCES
362 ${AOM_AV1_COMMON_SOURCES}
363 "${AOM_ROOT}/av1/common/warped_motion.c"
364 "${AOM_ROOT}/av1/common/warped_motion.h")
365
366 set(AOM_AV1_COMMON_SSE2_INTRIN
367 ${AOM_AV1_COMMON_SSE2_INTRIN}
368 "${AOM_ROOT}/av1/common/x86/warp_plane_sse2.c")
369endif ()
370
Tom Finegan44916e72017-02-27 14:12:31 -0800371# Setup AV1 common/decoder/encoder targets. The libaom target must exist before
372# this function is called.
373function (setup_av1_targets)
374 add_library(aom_av1_common OBJECT ${AOM_AV1_COMMON_SOURCES})
375 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_common)
376 target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_av1_common>)
377
378 if (CONFIG_AV1_DECODER)
379 add_library(aom_av1_decoder OBJECT ${AOM_AV1_DECODER_SOURCES})
380 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_decoder)
381 target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_av1_decoder>)
382 endif ()
383
384 if (CONFIG_AV1_ENCODER)
385 add_library(aom_av1_encoder OBJECT ${AOM_AV1_ENCODER_SOURCES})
386 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_encoder)
387 target_sources(aom PUBLIC $<TARGET_OBJECTS:aom_av1_encoder>)
388 endif ()
389
390 if (HAVE_SSE2)
391 require_flag_nomsvc("-msse2" NO)
392 add_intrinsics_object_library("-msse2" "sse2" "aom_av1_common"
393 "AOM_AV1_COMMON_SSE2_INTRIN")
Tom Finegan27f65d92017-03-02 22:03:10 -0800394 if (CONFIG_AV1_DECODER)
395 if (AOM_AV1_DECODER_SSE2_ASM)
396 add_asm_library("aom_av1_decoder_sse2" "AOM_AV1_DECODER_SSE2_ASM" "aom")
397 endif ()
398
399 if (AOM_AV1_DECODER_SSE2_INTRIN)
400 add_intrinsics_object_library("-msse2" "sse2" "aom_av1_decoder"
401 "AOM_AV1_DECODER_SSE2_INTRIN")
402 endif ()
403 endif ()
404
Tom Finegan44916e72017-02-27 14:12:31 -0800405 if (CONFIG_AV1_ENCODER)
406 add_asm_library("aom_av1_encoder_sse2" "AOM_AV1_ENCODER_SSE2_ASM" "aom")
407 add_intrinsics_object_library("-msse2" "sse2" "aom_av1_encoder"
408 "AOM_AV1_ENCODER_SSE2_INTRIN")
409 endif ()
410 endif ()
411
412 if (HAVE_SSSE3)
413 require_flag_nomsvc("-mssse3" NO)
414 add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_common"
415 "AOM_AV1_COMMON_SSSE3_INTRIN")
416
Tom Finegan27f65d92017-03-02 22:03:10 -0800417 if (CONFIG_AV1_DECODER)
418 if (AOM_AV1_DECODER_SSSE3_INTRIN)
419 add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_decoder"
420 "AOM_AV1_DECODER_SSSE3_INTRIN")
421 endif ()
422 endif ()
423
Tom Finegan44916e72017-02-27 14:12:31 -0800424 if (CONFIG_AV1_ENCODER)
425 add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_encoder"
426 "AOM_AV1_ENCODER_SSSE3_INTRIN")
427 endif ()
428 endif ()
429
430 if (HAVE_SSE4_1)
431 require_flag_nomsvc("-msse4.1" NO)
432 add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_common"
433 "AOM_AV1_COMMON_SSE4_1_INTRIN")
434
435 if (CONFIG_AV1_ENCODER)
436 if ("${AOM_TARGET_CPU}" STREQUAL "x86_64")
437 add_asm_library("aom_av1_encoder_ssse3"
438 "AOM_AV1_ENCODER_SSSE3_ASM_X86_64" "aom")
439 endif ()
440
441 if (AOM_AV1_ENCODER_SSE4_1_INTRIN)
442 add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_encoder"
443 "AOM_AV1_ENCODER_SSE4_1_INTRIN")
444 endif ()
445 endif ()
446 endif ()
447
448 if (HAVE_AVX2)
449 require_flag_nomsvc("-mavx2" NO)
450 add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_common"
451 "AOM_AV1_COMMON_AVX2_INTRIN")
452
453 if (CONFIG_AV1_ENCODER)
454 add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_encoder"
455 "AOM_AV1_ENCODER_AVX2_INTRIN")
456 endif ()
457 endif ()
458
Tom Finegan5a49c6c2017-03-17 08:56:59 -0700459 if (HAVE_NEON)
460 if (AOM_AV1_COMMON_NEON_INTRIN)
461 add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}"
462 "neon"
463 "aom_av1_common"
464 "AOM_AV1_COMMON_NEON_INTRIN")
465 endif ()
466
467 if (AOM_AV1_ENCODER_NEON_INTRIN)
468 add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}"
469 "neon"
470 "aom_av1_encoder"
471 "AOM_AV1_ENCODER_NEON_INTRIN")
472 endif ()
473 endif ()
Tom Finegan44916e72017-02-27 14:12:31 -0800474 # Pass the new lib targets up to the parent scope instance of
475 # $AOM_LIB_TARGETS.
476 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE)
477endfunction ()
478
479function (setup_av1_test_targets)
480endfunction ()