av1.cmake 19.8 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
##
## Copyright (c) 2017, Alliance for Open Media. All rights reserved
##
## This source code is subject to the terms of the BSD 2 Clause License and
## the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
## was not distributed with this source code in the LICENSE file, you can
## obtain it at www.aomedia.org/license/software. If the Alliance for Open
## Media Patent License 1.0 was not distributed with this source code in the
## PATENTS file, you can obtain it at www.aomedia.org/license/patent.
##
11 12 13
if (NOT AOM_AV1_AV1_CMAKE_)
set(AOM_AV1_AV1_CMAKE_ 1)

14 15 16 17 18 19 20 21
set(AOM_AV1_COMMON_SOURCES
    "${AOM_ROOT}/av1/av1_iface_common.h"
    "${AOM_ROOT}/av1/common/alloccommon.c"
    "${AOM_ROOT}/av1/common/alloccommon.h"
    # TODO(tomfinegan): Foward transform belongs in encoder.
    "${AOM_ROOT}/av1/common/av1_fwd_txfm1d.c"
    "${AOM_ROOT}/av1/common/av1_fwd_txfm1d.h"
    "${AOM_ROOT}/av1/common/av1_fwd_txfm2d.c"
22
    "${AOM_ROOT}/av1/common/av1_fwd_txfm1d_cfg.h"
23 24 25
    "${AOM_ROOT}/av1/common/av1_inv_txfm1d.c"
    "${AOM_ROOT}/av1/common/av1_inv_txfm1d.h"
    "${AOM_ROOT}/av1/common/av1_inv_txfm2d.c"
26
    "${AOM_ROOT}/av1/common/av1_inv_txfm1d_cfg.h"
27 28 29 30 31 32 33 34 35
    "${AOM_ROOT}/av1/common/av1_loopfilter.c"
    "${AOM_ROOT}/av1/common/av1_loopfilter.h"
    "${AOM_ROOT}/av1/common/av1_txfm.h"
    "${AOM_ROOT}/av1/common/blockd.c"
    "${AOM_ROOT}/av1/common/blockd.h"
    "${AOM_ROOT}/av1/common/common.h"
    "${AOM_ROOT}/av1/common/common_data.h"
    "${AOM_ROOT}/av1/common/convolve.c"
    "${AOM_ROOT}/av1/common/convolve.h"
36 37
    "${AOM_ROOT}/av1/common/daala_tx.c"
    "${AOM_ROOT}/av1/common/daala_tx.h"
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
    "${AOM_ROOT}/av1/common/debugmodes.c"
    "${AOM_ROOT}/av1/common/entropy.c"
    "${AOM_ROOT}/av1/common/entropy.h"
    "${AOM_ROOT}/av1/common/entropymode.c"
    "${AOM_ROOT}/av1/common/entropymode.h"
    "${AOM_ROOT}/av1/common/entropymv.c"
    "${AOM_ROOT}/av1/common/entropymv.h"
    "${AOM_ROOT}/av1/common/enums.h"
    "${AOM_ROOT}/av1/common/filter.c"
    "${AOM_ROOT}/av1/common/filter.h"
    "${AOM_ROOT}/av1/common/frame_buffers.c"
    "${AOM_ROOT}/av1/common/frame_buffers.h"
    "${AOM_ROOT}/av1/common/idct.c"
    "${AOM_ROOT}/av1/common/idct.h"
    "${AOM_ROOT}/av1/common/mv.h"
    "${AOM_ROOT}/av1/common/mvref_common.c"
    "${AOM_ROOT}/av1/common/mvref_common.h"
    "${AOM_ROOT}/av1/common/odintrin.c"
    "${AOM_ROOT}/av1/common/odintrin.h"
    "${AOM_ROOT}/av1/common/onyxc_int.h"
    "${AOM_ROOT}/av1/common/pred_common.c"
    "${AOM_ROOT}/av1/common/pred_common.h"
    "${AOM_ROOT}/av1/common/quant_common.c"
    "${AOM_ROOT}/av1/common/quant_common.h"
    "${AOM_ROOT}/av1/common/reconinter.c"
    "${AOM_ROOT}/av1/common/reconinter.h"
    "${AOM_ROOT}/av1/common/reconintra.c"
    "${AOM_ROOT}/av1/common/reconintra.h"
66 67
    "${AOM_ROOT}/av1/common/resize.c"
    "${AOM_ROOT}/av1/common/resize.h"
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
    "${AOM_ROOT}/av1/common/scale.c"
    "${AOM_ROOT}/av1/common/scale.h"
    "${AOM_ROOT}/av1/common/scan.c"
    "${AOM_ROOT}/av1/common/scan.h"
    "${AOM_ROOT}/av1/common/seg_common.c"
    "${AOM_ROOT}/av1/common/seg_common.h"
    "${AOM_ROOT}/av1/common/thread_common.c"
    "${AOM_ROOT}/av1/common/thread_common.h"
    "${AOM_ROOT}/av1/common/tile_common.c"
    "${AOM_ROOT}/av1/common/tile_common.h")

set(AOM_AV1_DECODER_SOURCES
    "${AOM_ROOT}/av1/av1_dx_iface.c"
    "${AOM_ROOT}/av1/decoder/decodeframe.c"
    "${AOM_ROOT}/av1/decoder/decodeframe.h"
    "${AOM_ROOT}/av1/decoder/decodemv.c"
    "${AOM_ROOT}/av1/decoder/decodemv.h"
    "${AOM_ROOT}/av1/decoder/decoder.c"
    "${AOM_ROOT}/av1/decoder/decoder.h"
    "${AOM_ROOT}/av1/decoder/detokenize.c"
    "${AOM_ROOT}/av1/decoder/detokenize.h"
    "${AOM_ROOT}/av1/decoder/dsubexp.c"
    "${AOM_ROOT}/av1/decoder/dsubexp.h"
    "${AOM_ROOT}/av1/decoder/dthread.c"
92 93
    "${AOM_ROOT}/av1/decoder/dthread.h"
    "${AOM_ROOT}/av1/decoder/symbolrate.h")
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126

set(AOM_AV1_ENCODER_SOURCES
    "${AOM_ROOT}/av1/av1_cx_iface.c"
    "${AOM_ROOT}/av1/encoder/aq_complexity.c"
    "${AOM_ROOT}/av1/encoder/aq_complexity.h"
    "${AOM_ROOT}/av1/encoder/aq_cyclicrefresh.c"
    "${AOM_ROOT}/av1/encoder/aq_cyclicrefresh.h"
    "${AOM_ROOT}/av1/encoder/aq_variance.c"
    "${AOM_ROOT}/av1/encoder/aq_variance.h"
    "${AOM_ROOT}/av1/encoder/av1_quantize.c"
    "${AOM_ROOT}/av1/encoder/av1_quantize.h"
    "${AOM_ROOT}/av1/encoder/bitstream.c"
    "${AOM_ROOT}/av1/encoder/bitstream.h"
    "${AOM_ROOT}/av1/encoder/block.h"
    "${AOM_ROOT}/av1/encoder/context_tree.c"
    "${AOM_ROOT}/av1/encoder/context_tree.h"
    "${AOM_ROOT}/av1/encoder/cost.c"
    "${AOM_ROOT}/av1/encoder/cost.h"
    "${AOM_ROOT}/av1/encoder/dct.c"
    "${AOM_ROOT}/av1/encoder/encodeframe.c"
    "${AOM_ROOT}/av1/encoder/encodeframe.h"
    "${AOM_ROOT}/av1/encoder/encodemb.c"
    "${AOM_ROOT}/av1/encoder/encodemb.h"
    "${AOM_ROOT}/av1/encoder/encodemv.c"
    "${AOM_ROOT}/av1/encoder/encodemv.h"
    "${AOM_ROOT}/av1/encoder/encoder.c"
    "${AOM_ROOT}/av1/encoder/encoder.h"
    "${AOM_ROOT}/av1/encoder/ethread.c"
    "${AOM_ROOT}/av1/encoder/ethread.h"
    "${AOM_ROOT}/av1/encoder/extend.c"
    "${AOM_ROOT}/av1/encoder/extend.h"
    "${AOM_ROOT}/av1/encoder/firstpass.c"
    "${AOM_ROOT}/av1/encoder/firstpass.h"
127 128
    "${AOM_ROOT}/av1/encoder/hash.c"
    "${AOM_ROOT}/av1/encoder/hash.h"
129 130 131 132 133 134 135 136
    "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.c"
    "${AOM_ROOT}/av1/encoder/hybrid_fwd_txfm.h"
    "${AOM_ROOT}/av1/encoder/lookahead.c"
    "${AOM_ROOT}/av1/encoder/lookahead.h"
    "${AOM_ROOT}/av1/encoder/mbgraph.c"
    "${AOM_ROOT}/av1/encoder/mbgraph.h"
    "${AOM_ROOT}/av1/encoder/mcomp.c"
    "${AOM_ROOT}/av1/encoder/mcomp.h"
Urvang Joshi's avatar
Urvang Joshi committed
137
    "${AOM_ROOT}/av1/encoder/palette.c"
138
    "${AOM_ROOT}/av1/encoder/palette.h"
139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157
    "${AOM_ROOT}/av1/encoder/picklpf.c"
    "${AOM_ROOT}/av1/encoder/picklpf.h"
    "${AOM_ROOT}/av1/encoder/ratectrl.c"
    "${AOM_ROOT}/av1/encoder/ratectrl.h"
    "${AOM_ROOT}/av1/encoder/rd.c"
    "${AOM_ROOT}/av1/encoder/rd.h"
    "${AOM_ROOT}/av1/encoder/rdopt.c"
    "${AOM_ROOT}/av1/encoder/rdopt.h"
    "${AOM_ROOT}/av1/encoder/segmentation.c"
    "${AOM_ROOT}/av1/encoder/segmentation.h"
    "${AOM_ROOT}/av1/encoder/speed_features.c"
    "${AOM_ROOT}/av1/encoder/speed_features.h"
    "${AOM_ROOT}/av1/encoder/subexp.c"
    "${AOM_ROOT}/av1/encoder/subexp.h"
    "${AOM_ROOT}/av1/encoder/temporal_filter.c"
    "${AOM_ROOT}/av1/encoder/temporal_filter.h"
    "${AOM_ROOT}/av1/encoder/tokenize.c"
    "${AOM_ROOT}/av1/encoder/tokenize.h"
    "${AOM_ROOT}/av1/encoder/treewriter.c"
Thomas Daede's avatar
Thomas Daede committed
158
    "${AOM_ROOT}/av1/encoder/treewriter.h")
159

160
set(AOM_AV1_COMMON_INTRIN_SSE2
161 162
    "${AOM_ROOT}/av1/common/x86/idct_intrin_sse2.c")

163
set(AOM_AV1_COMMON_INTRIN_SSSE3
164 165
    "${AOM_ROOT}/av1/common/x86/av1_convolve_ssse3.c")

166
set(AOM_AV1_COMMON_INTRIN_SSE4_1
167
    "${AOM_ROOT}/av1/common/x86/av1_fwd_txfm1d_sse4.c"
168 169
    "${AOM_ROOT}/av1/common/x86/av1_fwd_txfm2d_sse4.c"
    "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_sse4.c")
170

171
set(AOM_AV1_COMMON_INTRIN_AVX2
172
    "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_avx2.c"
173 174
    "${AOM_ROOT}/av1/common/x86/hybrid_inv_txfm_avx2.c")

175
set(AOM_AV1_COMMON_INTRIN_MSA
176 177 178 179
    "${AOM_ROOT}/av1/common/mips/msa/av1_idct16x16_msa.c"
    "${AOM_ROOT}/av1/common/mips/msa/av1_idct4x4_msa.c"
    "${AOM_ROOT}/av1/common/mips/msa/av1_idct8x8_msa.c")

180
set(AOM_AV1_ENCODER_ASM_SSE2
181 182 183 184
    "${AOM_ROOT}/av1/encoder/x86/dct_sse2.asm"
    "${AOM_ROOT}/av1/encoder/x86/error_sse2.asm"
    "${AOM_ROOT}/av1/encoder/x86/temporal_filter_apply_sse2.asm")

185
set(AOM_AV1_ENCODER_INTRIN_SSE2
186 187 188 189
    "${AOM_ROOT}/av1/encoder/x86/dct_intrin_sse2.c"
    "${AOM_ROOT}/av1/encoder/x86/highbd_block_error_intrin_sse2.c"
    "${AOM_ROOT}/av1/encoder/x86/av1_quantize_sse2.c")

190
set(AOM_AV1_ENCODER_ASM_SSSE3_X86_64
191 192
    "${AOM_ROOT}/av1/encoder/x86/av1_quantize_ssse3_x86_64.asm")

193 194 195 196 197
set(AOM_AV1_ENCODER_INTRIN_SSE4_1
    ${AOM_AV1_ENCODER_INTRIN_SSE4_1}
    "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_sse4.c"
    "${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_sse4.c")

198
set(AOM_AV1_ENCODER_INTRIN_AVX2
199
    "${AOM_ROOT}/av1/encoder/x86/av1_quantize_avx2.c"
200
    "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_avx2.c"
201 202
    "${AOM_ROOT}/av1/encoder/x86/error_intrin_avx2.c"
    "${AOM_ROOT}/av1/encoder/x86/hybrid_fwd_txfm_avx2.c")
203

204
set(AOM_AV1_ENCODER_INTRIN_NEON
205 206
    "${AOM_ROOT}/av1/encoder/arm/neon/quantize_neon.c")

207
set(AOM_AV1_ENCODER_INTRIN_MSA
208 209 210 211 212 213 214
    "${AOM_ROOT}/av1/encoder/mips/msa/error_msa.c"
    "${AOM_ROOT}/av1/encoder/mips/msa/fdct16x16_msa.c"
    "${AOM_ROOT}/av1/encoder/mips/msa/fdct4x4_msa.c"
    "${AOM_ROOT}/av1/encoder/mips/msa/fdct8x8_msa.c"
    "${AOM_ROOT}/av1/encoder/mips/msa/fdct_msa.h"
    "${AOM_ROOT}/av1/encoder/mips/msa/temporal_filter_msa.c")

215
if (CONFIG_HIGHBITDEPTH)
216 217
  set(AOM_AV1_COMMON_INTRIN_SSE4_1
      ${AOM_AV1_COMMON_INTRIN_SSE4_1}
218
      "${AOM_ROOT}/av1/common/x86/av1_highbd_convolve_sse4.c")
219
else ()
220 221
  set(AOM_AV1_COMMON_INTRIN_NEON
      ${AOM_AV1_COMMON_INTRIN_NEON}
222 223
      "${AOM_ROOT}/av1/common/arm/neon/iht4x4_add_neon.c"
      "${AOM_ROOT}/av1/common/arm/neon/iht8x8_add_neon.c")
224 225 226 227

  set(AOM_AV1_ENCODER_INTRIN_NEON
      ${AOM_AV1_ENCODER_INTRIN_NEON}
      "${AOM_ROOT}/av1/encoder/arm/neon/error_neon.c")
228 229
endif ()

230 231 232
if (CONFIG_CDEF)
  set(AOM_AV1_COMMON_SOURCES
      ${AOM_AV1_COMMON_SOURCES}
233 234
      "${AOM_ROOT}/av1/common/cdef.c"
      "${AOM_ROOT}/av1/common/cdef.h"
Steinar Midtskogen's avatar
Steinar Midtskogen committed
235
      "${AOM_ROOT}/av1/common/cdef_block.c"
236
      "${AOM_ROOT}/av1/common/cdef_block.h")
237 238 239

  set(AOM_AV1_ENCODER_SOURCES
      ${AOM_AV1_ENCODER_SOURCES}
240
      "${AOM_ROOT}/av1/encoder/pickcdef.c")
241

242 243
  set(AOM_AV1_COMMON_INTRIN_SSE2
      ${AOM_AV1_COMMON_INTRIN_SSE2}
Steinar Midtskogen's avatar
Steinar Midtskogen committed
244
      "${AOM_ROOT}/av1/common/cdef_block_sse2.c")
245

246 247
  set(AOM_AV1_COMMON_INTRIN_SSSE3
      ${AOM_AV1_COMMON_INTRIN_SSSE3}
Steinar Midtskogen's avatar
Steinar Midtskogen committed
248
      "${AOM_ROOT}/av1/common/cdef_block_ssse3.c")
249

250 251
  set(AOM_AV1_COMMON_INTRIN_SSE4_1
      ${AOM_AV1_COMMON_INTRIN_SSE4_1}
Steinar Midtskogen's avatar
Steinar Midtskogen committed
252
      "${AOM_ROOT}/av1/common/cdef_block_sse4.c")
253

254 255 256 257
  set(AOM_AV1_COMMON_INTRIN_AVX2
      ${AOM_AV1_COMMON_INTRIN_AVX2}
      "${AOM_ROOT}/av1/common/cdef_block_avx2.c")

258 259
  set(AOM_AV1_COMMON_INTRIN_NEON
      ${AOM_AV1_COMMON_INTRIN_NEON}
Steinar Midtskogen's avatar
Steinar Midtskogen committed
260
      "${AOM_ROOT}/av1/common/cdef_block_neon.c")
261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284

  if (NOT CONFIG_CDEF_SINGLEPASS)
    set(AOM_AV1_COMMON_SOURCES
        ${AOM_AV1_COMMON_SOURCES}
        "${AOM_ROOT}/av1/common/clpf.c"
        "${AOM_ROOT}/av1/common/clpf_simd.h"
        "${AOM_ROOT}/av1/common/cdef_block_simd.h")

    set(AOM_AV1_COMMON_INTRIN_SSE2
        ${AOM_AV1_COMMON_INTRIN_SSE2}
        "${AOM_ROOT}/av1/common/clpf_sse2.c")

    set(AOM_AV1_COMMON_INTRIN_SSSE3
        ${AOM_AV1_COMMON_INTRIN_SSSE3}
        "${AOM_ROOT}/av1/common/clpf_ssse3.c")

    set(AOM_AV1_COMMON_INTRIN_SSE4_1
        ${AOM_AV1_COMMON_INTRIN_SSE4_1}
        "${AOM_ROOT}/av1/common/clpf_sse4.c")

    set(AOM_AV1_COMMON_INTRIN_NEON
        ${AOM_AV1_COMMON_INTRIN_NEON}
        "${AOM_ROOT}/av1/common/clpf_neon.c")
  endif ()
285 286
endif ()

287
if (CONFIG_CONVOLVE_ROUND)
288 289 290 291 292 293 294 295 296
  set(AOM_AV1_COMMON_INTRIN_SSE2
      ${AOM_AV1_COMMON_INTRIN_SSE2}
      "${AOM_ROOT}/av1/common/x86/convolve_2d_sse2.c")
  if (CONFIG_HIGHBITDEPTH)
    set(AOM_AV1_COMMON_INTRIN_SSSE3
        ${AOM_AV1_COMMON_INTRIN_SSSE3}
        "${AOM_ROOT}/av1/common/x86/highbd_convolve_2d_ssse3.c")
  endif ()

297 298 299 300 301 302
  if(NOT CONFIG_COMPOUND_ROUND)
    set(AOM_AV1_COMMON_INTRIN_SSE4_1
        ${AOM_AV1_COMMON_INTRIN_SSE4_1}
        "${AOM_ROOT}/av1/common/x86/av1_convolve_scale_sse4.c")
  endif()

303 304 305 306 307
  set(AOM_AV1_COMMON_INTRIN_AVX2
      ${AOM_AV1_COMMON_INTRIN_AVX2}
      "${AOM_ROOT}/av1/common/x86/convolve_avx2.c")
endif ()

308 309 310 311
  set(AOM_AV1_ENCODER_SOURCES
      ${AOM_AV1_ENCODER_SOURCES}
      "${AOM_ROOT}/av1/encoder/wedge_utils.c")

312 313
  set(AOM_AV1_ENCODER_INTRIN_SSE2
      ${AOM_AV1_ENCODER_INTRIN_SSE2}
314 315
      "${AOM_ROOT}/av1/encoder/x86/wedge_utils_sse2.c")

316 317 318 319 320 321 322
if (CONFIG_ACCOUNTING)
  set(AOM_AV1_DECODER_SOURCES
      ${AOM_AV1_DECODER_SOURCES}
      "${AOM_ROOT}/av1/decoder/accounting.c"
      "${AOM_ROOT}/av1/decoder/accounting.h")
endif ()

323 324 325 326 327 328 329
if (CONFIG_BGSPRITE)
  set(AOM_AV1_ENCODER_SOURCES
      ${AOM_AV1_ENCODER_SOURCES}
      "${AOM_ROOT}/av1/encoder/bgsprite.c"
      "${AOM_ROOT}/av1/encoder/bgsprite.h")
endif ()

330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347
set(AOM_AV1_ENCODER_SOURCES
    ${AOM_AV1_ENCODER_SOURCES}
    "${AOM_ROOT}/av1/encoder/corner_detect.c"
    "${AOM_ROOT}/av1/encoder/corner_detect.h"
    "${AOM_ROOT}/av1/encoder/corner_match.c"
    "${AOM_ROOT}/av1/encoder/corner_match.h"
    "${AOM_ROOT}/av1/encoder/global_motion.c"
    "${AOM_ROOT}/av1/encoder/global_motion.h"
    "${AOM_ROOT}/av1/encoder/ransac.c"
    "${AOM_ROOT}/av1/encoder/ransac.h"
    "${AOM_ROOT}/third_party/fastfeat/fast_9.c"
    "${AOM_ROOT}/third_party/fastfeat/fast.c"
    "${AOM_ROOT}/third_party/fastfeat/fast.h"
    "${AOM_ROOT}/third_party/fastfeat/nonmax.c")

set(AOM_AV1_ENCODER_INTRIN_SSE4_1
    ${AOM_AV1_ENCODER_INTRIN_SSE4_1}
    "${AOM_ROOT}/av1/encoder/x86/corner_match_sse4.c")
348

349 350 351 352 353 354 355
if (CONFIG_INSPECTION)
  set(AOM_AV1_DECODER_SOURCES
      ${AOM_AV1_DECODER_SOURCES}
      "${AOM_ROOT}/av1/decoder/inspection.c"
      "${AOM_ROOT}/av1/decoder/inspection.h")
endif ()

356 357 358 359 360 361
if (CONFIG_INTERNAL_STATS)
  set(AOM_AV1_ENCODER_SOURCES
      ${AOM_AV1_ENCODER_SOURCES}
      "${AOM_ROOT}/av1/encoder/blockiness.c")
endif ()

362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378
if (CONFIG_LV_MAP)
  set(AOM_AV1_COMMON_SOURCES
      ${AOM_AV1_COMMON_SOURCES}
      "${AOM_ROOT}/av1/common/txb_common.c"
      "${AOM_ROOT}/av1/common/txb_common.h")

  set(AOM_AV1_DECODER_SOURCES
      ${AOM_AV1_DECODER_SOURCES}
      "${AOM_ROOT}/av1/decoder/decodetxb.c"
      "${AOM_ROOT}/av1/decoder/decodetxb.h")

  set(AOM_AV1_ENCODER_SOURCES
      ${AOM_AV1_ENCODER_SOURCES}
      "${AOM_ROOT}/av1/encoder/encodetxb.c"
      "${AOM_ROOT}/av1/encoder/encodetxb.h")
endif ()

Luc Trudeau's avatar
Luc Trudeau committed
379 380 381 382 383 384 385
if (CONFIG_CFL)
  set(AOM_AV1_COMMON_SOURCES
      ${AOM_AV1_COMMON_SOURCES}
    "${AOM_ROOT}/av1/common/cfl.c"
    "${AOM_ROOT}/av1/common/cfl.h")
endif ()

386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401
if (CONFIG_LOOP_RESTORATION)
  set(AOM_AV1_COMMON_SOURCES
      ${AOM_AV1_COMMON_SOURCES}
      "${AOM_ROOT}/av1/common/restoration.c"
      "${AOM_ROOT}/av1/common/restoration.h")

  set(AOM_AV1_COMMON_INTRIN_SSE4_1
      ${AOM_AV1_COMMON_INTRIN_SSE4_1}
      "${AOM_ROOT}/av1/common/x86/selfguided_sse4.c")

  set(AOM_AV1_ENCODER_SOURCES
      ${AOM_AV1_ENCODER_SOURCES}
      "${AOM_ROOT}/av1/encoder/pickrst.c"
      "${AOM_ROOT}/av1/encoder/pickrst.h")
endif ()

402 403 404 405 406 407
if (CONFIG_INTRA_EDGE)
  set(AOM_AV1_COMMON_INTRIN_SSE4_1
      ${AOM_AV1_COMMON_INTRIN_SSE4_1}
      "${AOM_ROOT}/av1/common/x86/intra_edge_sse4.c")
endif ()

408 409 410 411
set(AOM_AV1_COMMON_SOURCES
    ${AOM_AV1_COMMON_SOURCES}
    "${AOM_ROOT}/av1/common/warped_motion.c"
    "${AOM_ROOT}/av1/common/warped_motion.h")
412

413 414 415
set(AOM_AV1_COMMON_INTRIN_SSE2
    ${AOM_AV1_COMMON_INTRIN_SSE2}
    "${AOM_ROOT}/av1/common/x86/warp_plane_sse2.c")
416

417 418 419 420 421
set(AOM_AV1_COMMON_INTRIN_SSSE3
    ${AOM_AV1_COMMON_INTRIN_SSSE3}
    "${AOM_ROOT}/av1/common/x86/warp_plane_ssse3.c")

if (CONFIG_HIGHBITDEPTH)
422 423
  set(AOM_AV1_COMMON_INTRIN_SSSE3
      ${AOM_AV1_COMMON_INTRIN_SSSE3}
424
      "${AOM_ROOT}/av1/common/x86/highbd_warp_plane_ssse3.c")
425 426
endif ()

427 428 429 430 431 432 433 434 435
if (CONFIG_HASH_ME)
  set(AOM_AV1_ENCODER_SOURCES
      ${AOM_AV1_ENCODER_SOURCES}
      "${AOM_ROOT}/av1/encoder/hash_motion.h"
      "${AOM_ROOT}/av1/encoder/hash_motion.c"
      "${AOM_ROOT}/third_party/vector/vector.h"
      "${AOM_ROOT}/third_party/vector/vector.c")
endif ()

hui su's avatar
hui su committed
436 437 438 439 440 441
if (CONFIG_Q_ADAPT_PROBS)
  set(AOM_AV1_COMMON_SOURCES
      ${AOM_AV1_COMMON_SOURCES}
      "${AOM_ROOT}/av1/common/token_cdfs.h")
endif ()

442 443 444 445 446 447 448
if (CONFIG_XIPHRC)
  set(AOM_AV1_ENCODER_SOURCES
      ${AOM_AV1_ENCODER_SOURCES}
      "${AOM_ROOT}/av1/encoder/ratectrl_xiph.c"
      "${AOM_ROOT}/av1/encoder/ratectrl_xiph.h")
endif ()

449 450 451 452
# Setup AV1 common/decoder/encoder targets. The libaom target must exist before
# this function is called.
function (setup_av1_targets)
  add_library(aom_av1_common OBJECT ${AOM_AV1_COMMON_SOURCES})
453
  list(APPEND AOM_LIB_TARGETS aom_av1_common)
454 455 456 457

  create_dummy_source_file("aom_av1" "c" "dummy_source_file")
  add_library(aom_av1 OBJECT "${dummy_source_file}")
  target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_common>)
458 459 460 461 462
  list(APPEND AOM_LIB_TARGETS aom_av1)

  # Not all generators support libraries consisting only of object files. Add a
  # dummy source file to the aom_av1 target.
  add_dummy_source_file_to_target("aom_av1" "c")
463 464 465 466

  if (CONFIG_AV1_DECODER)
    add_library(aom_av1_decoder OBJECT ${AOM_AV1_DECODER_SOURCES})
    set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_decoder)
467
    target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_decoder>)
468 469 470 471 472
  endif ()

  if (CONFIG_AV1_ENCODER)
    add_library(aom_av1_encoder OBJECT ${AOM_AV1_ENCODER_SOURCES})
    set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} aom_av1_encoder)
473
    target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_av1_encoder>)
474 475 476
  endif ()

  if (HAVE_SSE2)
477
    require_compiler_flag_nomsvc("-msse2" NO)
478
    add_intrinsics_object_library("-msse2" "sse2" "aom_av1_common"
479
                                  "AOM_AV1_COMMON_INTRIN_SSE2" "aom")
480
    if (CONFIG_AV1_DECODER)
481
      if (AOM_AV1_DECODER_ASM_SSE2)
482
        add_asm_library("aom_av1_decoder_sse2" "AOM_AV1_DECODER_ASM_SSE2" "aom")
483 484
      endif ()

485
      if (AOM_AV1_DECODER_INTRIN_SSE2)
486
        add_intrinsics_object_library("-msse2" "sse2" "aom_av1_decoder"
487
                                      "AOM_AV1_DECODER_INTRIN_SSE2" "aom")
488 489 490
      endif ()
    endif ()

491
    if (CONFIG_AV1_ENCODER)
492
      add_asm_library("aom_av1_encoder_sse2" "AOM_AV1_ENCODER_ASM_SSE2" "aom")
493
      add_intrinsics_object_library("-msse2" "sse2" "aom_av1_encoder"
494
                                    "AOM_AV1_ENCODER_INTRIN_SSE2" "aom")
495 496 497 498
    endif ()
  endif ()

  if (HAVE_SSSE3)
499
    require_compiler_flag_nomsvc("-mssse3" NO)
500
    add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_common"
501
                                  "AOM_AV1_COMMON_INTRIN_SSSE3" "aom")
502

503
    if (CONFIG_AV1_DECODER)
504
      if (AOM_AV1_DECODER_INTRIN_SSSE3)
505
        add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_decoder"
506
                                      "AOM_AV1_DECODER_INTRIN_SSSE3" "aom")
507 508
      endif ()
    endif ()
509 510 511
  endif ()

  if (HAVE_SSE4_1)
512
    require_compiler_flag_nomsvc("-msse4.1" NO)
513
    add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_common"
514
                                  "AOM_AV1_COMMON_INTRIN_SSE4_1" "aom")
515 516 517 518

    if (CONFIG_AV1_ENCODER)
      if ("${AOM_TARGET_CPU}" STREQUAL "x86_64")
        add_asm_library("aom_av1_encoder_ssse3"
519
                        "AOM_AV1_ENCODER_ASM_SSSE3_X86_64" "aom")
520 521
      endif ()

522
      if (AOM_AV1_ENCODER_INTRIN_SSE4_1)
523
        add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_encoder"
524
                                      "AOM_AV1_ENCODER_INTRIN_SSE4_1" "aom")
525 526 527 528 529
      endif ()
    endif ()
  endif ()

  if (HAVE_AVX2)
530
    require_compiler_flag_nomsvc("-mavx2" NO)
531
    add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_common"
532
                                  "AOM_AV1_COMMON_INTRIN_AVX2" "aom")
533 534 535

    if (CONFIG_AV1_ENCODER)
      add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_encoder"
536
                                    "AOM_AV1_ENCODER_INTRIN_AVX2" "aom")
537 538 539
    endif ()
  endif ()

540
  if (HAVE_NEON)
541 542
    if (AOM_AV1_COMMON_INTRIN_NEON)
      add_intrinsics_object_library("${AOM_INTRIN_NEON_FLAG}"
543 544
                                    "neon"
                                    "aom_av1_common"
545
                                    "AOM_AV1_COMMON_INTRIN_NEON" "aom")
546 547
    endif ()

548 549
    if (AOM_AV1_ENCODER_INTRIN_NEON)
      add_intrinsics_object_library("${AOM_INTRIN_NEON_FLAG}"
550 551
                                    "neon"
                                    "aom_av1_encoder"
552
                                    "AOM_AV1_ENCODER_INTRIN_NEON" "aom")
553 554
    endif ()
  endif ()
555 556 557

  if (HAVE_MSA)
    add_intrinsics_object_library("" "msa" "aom_av1_common"
558
                                  "AOM_AV1_COMMON_INTRIN_MSA" "aom")
559
    add_intrinsics_object_library("" "msa" "aom_av1_encoder"
560
                                  "AOM_AV1_ENCODER_INTRIN_MSA" "aom")
561 562
  endif ()

563 564
  target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp>)
  target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_scale>)
565

566 567 568 569 570 571 572
  # Pass the new lib targets up to the parent scope instance of
  # $AOM_LIB_TARGETS.
  set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE)
endfunction ()

function (setup_av1_test_targets)
endfunction ()
573 574

endif ()  # AOM_AV1_AV1_CMAKE_