##
## Copyright (c) 2016, 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.
##
cmake_minimum_required(VERSION 3.2)
project(AOM C CXX)

set(AOM_ROOT "${CMAKE_CURRENT_SOURCE_DIR}")
set(AOM_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}")

include("${AOM_ROOT}/build/cmake/aom_configure.cmake")
include("${AOM_ROOT}/build/cmake/aom_optimization.cmake")

set(AOM_RTCD_SOURCES
    "${AOM_CONFIG_DIR}/aom_dsp_rtcd.h"
    "${AOM_CONFIG_DIR}/aom_scale_rtcd.h"
    "${AOM_CONFIG_DIR}/av1_rtcd.h"
    "${AOM_ROOT}/aom_dsp/aom_dsp_rtcd_defs.pl"
    "${AOM_ROOT}/aom_dsp/aom_dsp_rtcd.c"
    "${AOM_ROOT}/aom_scale/aom_scale_rtcd.pl"
    "${AOM_ROOT}/aom_scale/aom_scale_rtcd.c"
    "${AOM_ROOT}/av1/common/av1_rtcd_defs.pl"
    "${AOM_ROOT}/av1/common/av1_rtcd.c"
    "${AOM_ROOT}/build/make/rtcd.pl")

# TODO(tomfinegan): Use libwebm's cmake support directly.
set(AOM_LIBWEBM_SOURCES
    "${AOM_ROOT}/third_party/libwebm/common/hdr_util.cc"
    "${AOM_ROOT}/third_party/libwebm/common/hdr_util.h"
    "${AOM_ROOT}/third_party/libwebm/common/webmids.h"
    "${AOM_ROOT}/third_party/libwebm/mkvmuxer/mkvmuxer.cc"
    "${AOM_ROOT}/third_party/libwebm/mkvmuxer/mkvmuxer.h"
    "${AOM_ROOT}/third_party/libwebm/mkvmuxer/mkvmuxertypes.h"
    "${AOM_ROOT}/third_party/libwebm/mkvmuxer/mkvmuxerutil.cc"
    "${AOM_ROOT}/third_party/libwebm/mkvmuxer/mkvmuxerutil.h"
    "${AOM_ROOT}/third_party/libwebm/mkvmuxer/mkvwriter.cc"
    "${AOM_ROOT}/third_party/libwebm/mkvmuxer/mkvwriter.h"
    "${AOM_ROOT}/third_party/libwebm/mkvparser/mkvparser.cc"
    "${AOM_ROOT}/third_party/libwebm/mkvparser/mkvparser.h"
    "${AOM_ROOT}/third_party/libwebm/mkvparser/mkvreader.cc"
    "${AOM_ROOT}/third_party/libwebm/mkvparser/mkvreader.h")

set(AOM_LIBYUV_SOURCES
    "${AOM_ROOT}/third_party/libyuv/include/libyuv/basic_types.h"
    "${AOM_ROOT}/third_party/libyuv/include/libyuv/convert.h"
    "${AOM_ROOT}/third_party/libyuv/include/libyuv/convert_argb.h"
    "${AOM_ROOT}/third_party/libyuv/include/libyuv/convert_from.h"
    "${AOM_ROOT}/third_party/libyuv/include/libyuv/cpu_id.h"
    "${AOM_ROOT}/third_party/libyuv/include/libyuv/planar_functions.h"
    "${AOM_ROOT}/third_party/libyuv/include/libyuv/rotate.h"
    "${AOM_ROOT}/third_party/libyuv/include/libyuv/row.h"
    "${AOM_ROOT}/third_party/libyuv/include/libyuv/scale.h"
    "${AOM_ROOT}/third_party/libyuv/include/libyuv/scale_row.h"
    "${AOM_ROOT}/third_party/libyuv/source/cpu_id.cc"
    "${AOM_ROOT}/third_party/libyuv/source/planar_functions.cc"
    "${AOM_ROOT}/third_party/libyuv/source/row_any.cc"
    "${AOM_ROOT}/third_party/libyuv/source/row_common.cc"
    "${AOM_ROOT}/third_party/libyuv/source/row_gcc.cc"
    "${AOM_ROOT}/third_party/libyuv/source/row_mips.cc"
    "${AOM_ROOT}/third_party/libyuv/source/row_neon.cc"
    "${AOM_ROOT}/third_party/libyuv/source/row_neon64.cc"
    "${AOM_ROOT}/third_party/libyuv/source/row_win.cc"
    "${AOM_ROOT}/third_party/libyuv/source/scale.cc"
    "${AOM_ROOT}/third_party/libyuv/source/scale_any.cc"
    "${AOM_ROOT}/third_party/libyuv/source/scale_common.cc"
    "${AOM_ROOT}/third_party/libyuv/source/scale_gcc.cc"
    "${AOM_ROOT}/third_party/libyuv/source/scale_mips.cc"
    "${AOM_ROOT}/third_party/libyuv/source/scale_neon.cc"
    "${AOM_ROOT}/third_party/libyuv/source/scale_neon64.cc"
    "${AOM_ROOT}/third_party/libyuv/source/scale_win.cc")

set(AOM_SOURCES
    "${AOM_CONFIG_DIR}/aom_config.c"
    "${AOM_CONFIG_DIR}/aom_config.h"
    "${AOM_ROOT}/aom/aom.h"
    "${AOM_ROOT}/aom/aom_codec.h"
    "${AOM_ROOT}/aom/aom_decoder.h"
    "${AOM_ROOT}/aom/aom_encoder.h"
    "${AOM_ROOT}/aom/aom_frame_buffer.h"
    "${AOM_ROOT}/aom/aom_image.h"
    "${AOM_ROOT}/aom/aom_integer.h"
    "${AOM_ROOT}/aom/aomcx.h"
    "${AOM_ROOT}/aom/aomdx.h"
    "${AOM_ROOT}/aom/internal/aom_codec_internal.h"
    "${AOM_ROOT}/aom/src/aom_codec.c"
    "${AOM_ROOT}/aom/src/aom_decoder.c"
    "${AOM_ROOT}/aom/src/aom_encoder.c"
    "${AOM_ROOT}/aom/src/aom_image.c")

set(AOM_DSP_SOURCES
    "${AOM_ROOT}/aom_dsp/aom_convolve.c"
    "${AOM_ROOT}/aom_dsp/aom_convolve.h"
    "${AOM_ROOT}/aom_dsp/aom_dsp_common.h"
    "${AOM_ROOT}/aom_dsp/aom_dsp_rtcd.c"
    "${AOM_ROOT}/aom_dsp/aom_filter.h"
    "${AOM_ROOT}/aom_dsp/aom_simd.h"
    "${AOM_ROOT}/aom_dsp/aom_simd_inline.h"
    "${AOM_ROOT}/aom_dsp/avg.c"
    "${AOM_ROOT}/aom_dsp/bitreader.h"
    "${AOM_ROOT}/aom_dsp/bitreader_buffer.c"
    "${AOM_ROOT}/aom_dsp/bitreader_buffer.h"
    "${AOM_ROOT}/aom_dsp/bitwriter.h"
    "${AOM_ROOT}/aom_dsp/bitwriter_buffer.c"
    "${AOM_ROOT}/aom_dsp/bitwriter_buffer.h"
    "${AOM_ROOT}/aom_dsp/blend.h"
    "${AOM_ROOT}/aom_dsp/blend_a64_hmask.c"
    "${AOM_ROOT}/aom_dsp/blend_a64_mask.c"
    "${AOM_ROOT}/aom_dsp/blend_a64_vmask.c"
    "${AOM_ROOT}/aom_dsp/daalaboolreader.c"
    "${AOM_ROOT}/aom_dsp/daalaboolreader.h"
    "${AOM_ROOT}/aom_dsp/daalaboolwriter.c"
    "${AOM_ROOT}/aom_dsp/daalaboolwriter.h"
    "${AOM_ROOT}/aom_dsp/dkboolreader.c"
    "${AOM_ROOT}/aom_dsp/dkboolreader.h"
    "${AOM_ROOT}/aom_dsp/dkboolwriter.c"
    "${AOM_ROOT}/aom_dsp/dkboolwriter.h"
    "${AOM_ROOT}/aom_dsp/entcode.c"
    "${AOM_ROOT}/aom_dsp/entcode.h"
    "${AOM_ROOT}/aom_dsp/entdec.c"
    "${AOM_ROOT}/aom_dsp/entdec.h"
    "${AOM_ROOT}/aom_dsp/entenc.c"
    "${AOM_ROOT}/aom_dsp/entenc.h"
    "${AOM_ROOT}/aom_dsp/fwd_txfm.c"
    "${AOM_ROOT}/aom_dsp/fwd_txfm.h"
    "${AOM_ROOT}/aom_dsp/intrapred.c"
    "${AOM_ROOT}/aom_dsp/inv_txfm.c"
    "${AOM_ROOT}/aom_dsp/inv_txfm.h"
    "${AOM_ROOT}/aom_dsp/loopfilter.c"
    "${AOM_ROOT}/aom_dsp/prob.c"
    "${AOM_ROOT}/aom_dsp/prob.h"
    "${AOM_ROOT}/aom_dsp/psnr.c"
    "${AOM_ROOT}/aom_dsp/psnr.h"
    "${AOM_ROOT}/aom_dsp/quantize.c"
    "${AOM_ROOT}/aom_dsp/quantize.h"
    "${AOM_ROOT}/aom_dsp/sad.c"
    "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics.h"
    "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics_c.h"
    "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics.h"
    "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics_c.h"
    "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics.h"
    "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics_c.h"
    "${AOM_ROOT}/aom_dsp/subtract.c"
    "${AOM_ROOT}/aom_dsp/sum_squares.c"
    "${AOM_ROOT}/aom_dsp/txfm_common.h"
    "${AOM_ROOT}/aom_dsp/variance.c"
    "${AOM_ROOT}/aom_dsp/variance.h"
    "${AOM_ROOT}/aom_dsp/x86/txfm_common_intrin.h")

set(AOM_MEM_SOURCES
    "${AOM_ROOT}/aom_mem/aom_mem.c"
    "${AOM_ROOT}/aom_mem/aom_mem.h"
    "${AOM_ROOT}/aom_mem/include/aom_mem_intrnl.h")

set(AOM_SCALE_SOURCES
    "${AOM_ROOT}/aom_scale/aom_scale.h"
    "${AOM_ROOT}/aom_scale/aom_scale_rtcd.c"
    "${AOM_ROOT}/aom_scale/generic/aom_scale.c"
    "${AOM_ROOT}/aom_scale/generic/gen_scalers.c"
    "${AOM_ROOT}/aom_scale/generic/yv12config.c"
    "${AOM_ROOT}/aom_scale/generic/yv12extend.c"
    "${AOM_ROOT}/aom_scale/yv12config.h")

set(AOM_UTIL_SOURCES
    "${AOM_ROOT}/aom_ports/aom_once.h"
    "${AOM_ROOT}/aom_ports/aom_timer.h"
    "${AOM_ROOT}/aom_ports/bitops.h"
    "${AOM_ROOT}/aom_ports/emmintrin_compat.h"
    "${AOM_ROOT}/aom_ports/mem.h"
    "${AOM_ROOT}/aom_ports/mem_ops.h"
    "${AOM_ROOT}/aom_ports/mem_ops_aligned.h"
    "${AOM_ROOT}/aom_ports/msvc.h"
    "${AOM_ROOT}/aom_ports/system_state.h"
    "${AOM_ROOT}/aom_util/aom_thread.c"
    "${AOM_ROOT}/aom_util/aom_thread.h"
    "${AOM_ROOT}/aom_util/endian_inl.h")

set(AOM_AV1_COMMON_SOURCES
    "${AOM_ROOT}/av1/av1_iface_common.h"
    "${AOM_ROOT}/av1/common/alloccommon.c"
    "${AOM_ROOT}/av1/common/alloccommon.h"
    "${AOM_ROOT}/av1/common/av1_fwd_txfm1d.c"
    "${AOM_ROOT}/av1/common/av1_fwd_txfm1d.h"
    "${AOM_ROOT}/av1/common/av1_fwd_txfm2d.c"
    "${AOM_ROOT}/av1/common/av1_fwd_txfm2d_cfg.h"
    "${AOM_ROOT}/av1/common/av1_inv_txfm1d.c"
    "${AOM_ROOT}/av1/common/av1_inv_txfm1d.h"
    "${AOM_ROOT}/av1/common/av1_inv_txfm2d.c"
    "${AOM_ROOT}/av1/common/av1_inv_txfm2d_cfg.h"
    "${AOM_ROOT}/av1/common/av1_rtcd.c"
    "${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"
    "${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/loopfilter.c"
    "${AOM_ROOT}/av1/common/loopfilter.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"
    "${AOM_ROOT}/av1/common/restoration.h"
    "${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"
    "${AOM_ROOT}/av1/decoder/dthread.h")

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/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"
    "${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"
    "${AOM_ROOT}/av1/encoder/picklpf.c"
    "${AOM_ROOT}/av1/encoder/picklpf.h"
    "${AOM_ROOT}/av1/encoder/quantize.c"
    "${AOM_ROOT}/av1/encoder/quantize.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/resize.c"
    "${AOM_ROOT}/av1/encoder/resize.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"
    "${AOM_ROOT}/av1/encoder/treewriter.h"
    "${AOM_ROOT}/av1/encoder/variance_tree.c"
    "${AOM_ROOT}/av1/encoder/variance_tree.h")

set(AOM_COMMON_APP_UTIL_SOURCES
    "${AOM_ROOT}/args.c"
    "${AOM_ROOT}/args.h"
    "${AOM_ROOT}/md5_utils.c"
    "${AOM_ROOT}/md5_utils.h"
    "${AOM_ROOT}/tools_common.c"
    "${AOM_ROOT}/tools_common.h"
    "${AOM_ROOT}/video_common.h")

set(AOM_DECODER_APP_UTIL_SOURCES
    "${AOM_ROOT}/ivfdec.c"
    "${AOM_ROOT}/ivfdec.h"
    "${AOM_ROOT}/video_reader.c"
    "${AOM_ROOT}/video_reader.h"
    "${AOM_ROOT}/y4menc.c"
    "${AOM_ROOT}/y4menc.h")

set(AOM_ENCODER_APP_UTIL_SOURCES
    "${AOM_ROOT}/ivfenc.c"
    "${AOM_ROOT}/ivfenc.h"
    "${AOM_ROOT}/video_writer.c"
    "${AOM_ROOT}/video_writer.h"
    "${AOM_ROOT}/warnings.c"
    "${AOM_ROOT}/warnings.h"
    "${AOM_ROOT}/y4minput.c"
    "${AOM_ROOT}/y4minput.h")

set(AOM_ENCODER_STATS_SOURCES
    "${AOM_ROOT}/aomstats.c"
    "${AOM_ROOT}/aomstats.h"
    "${AOM_ROOT}/rate_hist.c"
    "${AOM_ROOT}/rate_hist.h")

set(AOM_WEBM_DECODER_SOURCES
    "${AOM_ROOT}/webmdec.cc"
    "${AOM_ROOT}/webmdec.h")

set(AOM_WEBM_ENCODER_SOURCES
    "${AOM_ROOT}/webmenc.cc"
    "${AOM_ROOT}/webmenc.h")

set(AOM_DECODE_PERF_TEST_SOURCES "${AOM_ROOT}/test/decode_perf_test.cc")
set(AOM_ENCODE_PERF_TEST_SOURCES "${AOM_ROOT}/test/encode_perf_test.cc")
set(AOM_UNIT_TEST_WEBM_SOURCES "${AOM_ROOT}/test/webm_video_source.h")
set(AOM_PORTS_ASM_X86 "${AOM_ROOT}/aom_ports/x86_abi_support.asm")
set(AOM_PORTS_ASM_MMX "${AOM_ROOT}/aom_ports/emms.asm")

set(AOM_DSP_ASM_SSE2
    "${AOM_ROOT}/aom_dsp/x86/aom_convolve_copy_sse2.asm"
    "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_sse2.asm"
    "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_bilinear_sse2.asm"
    "${AOM_ROOT}/aom_dsp/x86/halfpix_variance_impl_sse2.asm"
    "${AOM_ROOT}/aom_dsp/x86/intrapred_sse2.asm"
    "${AOM_ROOT}/aom_dsp/x86/inv_wht_sse2.asm"
    "${AOM_ROOT}/aom_dsp/x86/sad4d_sse2.asm"
    "${AOM_ROOT}/aom_dsp/x86/sad_sse2.asm"
    "${AOM_ROOT}/aom_dsp/x86/subpel_variance_sse2.asm"
    "${AOM_ROOT}/aom_dsp/x86/subtract_sse2.asm")

set(AOM_DSP_INTRIN_SSE2
    "${AOM_ROOT}/aom_dsp/x86/aom_asm_stubs.c"
    "${AOM_ROOT}/aom_dsp/x86/avg_intrin_sse2.c"
    "${AOM_ROOT}/aom_dsp/x86/fwd_dct32_8cols_sse2.c"
    "${AOM_ROOT}/aom_dsp/x86/fwd_dct32x32_impl_sse2.h"
    "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_impl_sse2.h"
    "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.c"
    "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.h"
    "${AOM_ROOT}/aom_dsp/x86/halfpix_variance_sse2.c"
    "${AOM_ROOT}/aom_dsp/x86/inv_txfm_sse2.c"
    "${AOM_ROOT}/aom_dsp/x86/inv_txfm_sse2.h"
    "${AOM_ROOT}/aom_dsp/x86/loopfilter_sse2.c"
    "${AOM_ROOT}/aom_dsp/x86/quantize_sse2.c"
    "${AOM_ROOT}/aom_dsp/x86/sum_squares_sse2.c"
    "${AOM_ROOT}/aom_dsp/x86/txfm_common_sse2.h"
    "${AOM_ROOT}/aom_dsp/x86/variance_sse2.c")

set(AOM_DSP_INTRIN_SSSE3
    "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_ssse3.c"
    "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_ssse3.c"
    "${AOM_ROOT}/aom_dsp/x86/masked_variance_intrin_ssse3.c")

set(AOM_DSP_ASM_SSSE3
    "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_ssse3.asm"
    "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_bilinear_ssse3.asm"
    "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_ssse3_x86_64.asm"
    "${AOM_ROOT}/aom_dsp/x86/intrapred_ssse3.asm"
    "${AOM_ROOT}/aom_dsp/x86/sad_ssse3.asm")

set(AOM_DSP_ASM_SSSE3_X86_64
    "${AOM_ROOT}/aom_dsp/x86/avg_ssse3_x86_64.asm"
    "${AOM_ROOT}/aom_dsp/x86/inv_txfm_ssse3_x86_64.asm"
    "${AOM_ROOT}/aom_dsp/x86/quantize_ssse3_x86_64.asm"
    "${AOM_ROOT}/aom_dsp/x86/ssim_opt_x86_64.asm")

set(AOM_DSP_INTRIN_SSE3 "${AOM_ROOT}/aom_dsp/x86/sad_sse3.asm")
set(AOM_DSP_ASM_SSE4_1 "${AOM_ROOT}/aom_dsp/x86/sad_sse4.asm")

set(AOM_DSP_INTRIN_SSE4_1
    "${AOM_ROOT}/aom_dsp/x86/blend_a64_hmask_sse4.c"
    "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_sse4.c"
    "${AOM_ROOT}/aom_dsp/x86/blend_a64_vmask_sse4.c"
    "${AOM_ROOT}/aom_dsp/x86/obmc_sad_sse4.c"
    "${AOM_ROOT}/aom_dsp/x86/obmc_variance_sse4.c")
set(AOM_DSP_AVX_ASM "${AOM_ROOT}/aom_dsp/x86/quantize_avx_x86_64.asm")
set(AOM_DSP_AVX2_INTRIN
    "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_avx2.c"
    "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_avx2.c"
    "${AOM_ROOT}/aom_dsp/x86/loopfilter_avx2.c"
    "${AOM_ROOT}/aom_dsp/x86/sad4d_avx2.c"
    "${AOM_ROOT}/aom_dsp/x86/sad_avx2.c"
    "${AOM_ROOT}/aom_dsp/x86/sad_impl_avx2.c"
    "${AOM_ROOT}/aom_dsp/x86/variance_avx2.c"
    "${AOM_ROOT}/aom_dsp/x86/variance_impl_avx2.c")

set(AOM_AV1_COMMON_SSE2_INTRIN
    # Requires CONFIG_CLPF
    #"${AOM_ROOT}/av1/common/clpf_sse2.c"
    # Requires CONFIG_GLOBAL_MOTION or CONFIG_WARPED_MOTION
    #"${AOM_ROOT}/av1/common/x86/warp_plane_sse2.c"
    "${AOM_ROOT}/av1/common/x86/idct_intrin_sse2.c")

set(AOM_AV1_COMMON_SSSE3_INTRIN
    # Requires CONFIG_CLPF
    #"${AOM_ROOT}/av1/common/clpf_ssse3.c"
    "${AOM_ROOT}/av1/common/x86/av1_convolve_ssse3.c")

set(AOM_AV1_COMMON_SSE4_1_INTRIN
    # Requires CONFIG_CLPF
    #"${AOM_ROOT}/av1/common/clpf_sse4.c"
    # Requires CONFIG_FILTER_INTRA
    #"${AOM_ROOT}/av1/common/x86/filterintra_sse4.c"
    # Requires CONFIG_DERING
    #"${AOM_ROOT}/av1/common/x86/od_dering_sse4.c"
    "${AOM_ROOT}/av1/common/x86/av1_fwd_txfm1d_sse4.c"
    "${AOM_ROOT}/av1/common/x86/av1_fwd_txfm2d_sse4.c")

set(AOM_AV1_COMMON_AVX2_INTRIN
    "${AOM_ROOT}/av1/common/x86/hybrid_inv_txfm_avx2.c")

set(AOM_AV1_ENCODER_SSE2_ASM
    "${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")
set(AOM_AV1_ENCODER_SSE2_INTRIN
    # Requires CONFIG_CLPF
    #"${AOM_ROOT}/av1/encoder/clpf_rdo_sse2.c"
    # Requires CONFIG_EXT_INTER
    #"${AOM_ROOT}/av1/encoder/x86/wedge_utils_sse2.c"
    "${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/quantize_sse2.c")

set(AOM_AV1_ENCODER_SSSE3_ASM
    "${AOM_ROOT}/av1/encoder/x86/quantize_ssse3_x86_64.asm")

set(AOM_AV1_ENCODER_SSSE3_INTRIN
    # Requires CONFIG_CLPF
    #"${AOM_ROOT}/av1/encoder/clpf_rdo_ssse3.c"
    "${AOM_ROOT}/av1/encoder/x86/dct_ssse3.c")

#set(AOM_AV1_ENCODER_SSE4_1_INTRIN
    # Requires CONFIG_CLPF
    #"${AOM_ROOT}/av1/encoder/clpf_rdo_sse4.c")
set(AOM_AV1_ENCODER_AVX2_INTRIN
    "${AOM_ROOT}/av1/encoder/x86/error_intrin_avx2.c"
    "${AOM_ROOT}/av1/encoder/x86/hybrid_fwd_txfm_avx2.c")

# TODO(tomfinegan): split the test sources into lists that require decoder,
# encoder, and both.
# TODO(tomfinegan): move tests for specific assembly variants to their own
# lists.
# TODO(tomfinegan): move tests that require non-default configure flags to their
# own lists.
set(AOM_UNIT_TEST_SOURCES
    "${AOM_CONFIG_DIR}/usage_exit.c"
    # requires CONFIG_ACCOUNTING
    #"${AOM_ROOT}/test/accounting_test.cc"
    "${AOM_ROOT}/test/acm_random.h"
    "${AOM_ROOT}/test/active_map_test.cc"
    "${AOM_ROOT}/test/altref_test.cc"
    "${AOM_ROOT}/test/android"
    # requires CONFIG_ANS
    #"${AOM_ROOT}/test/ans_codec_test.cc"
    #"${AOM_ROOT}/test/ans_test.cc"
    "${AOM_ROOT}/test/aq_segment_test.cc"
    "${AOM_ROOT}/test/arf_freq_test.cc"
    "${AOM_ROOT}/test/av1_convolve_optimz_test.cc"
    "${AOM_ROOT}/test/av1_convolve_test.cc"
    "${AOM_ROOT}/test/av1_dct_test.cc"
    "${AOM_ROOT}/test/av1_ext_tile_test.cc"
    "${AOM_ROOT}/test/av1_fht16x16_test.cc"
    "${AOM_ROOT}/test/av1_fht16x32_test.cc"
    "${AOM_ROOT}/test/av1_fht16x8_test.cc"
    "${AOM_ROOT}/test/av1_fht32x16_test.cc"
    "${AOM_ROOT}/test/av1_fht4x4_test.cc"
    "${AOM_ROOT}/test/av1_fht4x8_test.cc"
    "${AOM_ROOT}/test/av1_fht8x16_test.cc"
    "${AOM_ROOT}/test/av1_fht8x4_test.cc"
    "${AOM_ROOT}/test/av1_fht8x8_test.cc"
    "${AOM_ROOT}/test/av1_fwd_txfm1d_test.cc"
    "${AOM_ROOT}/test/av1_fwd_txfm2d_test.cc"
    "${AOM_ROOT}/test/av1_inv_txfm1d_test.cc"
    "${AOM_ROOT}/test/av1_inv_txfm2d_test.cc"
    "${AOM_ROOT}/test/av1_inv_txfm_test.cc"
    "${AOM_ROOT}/test/av1_txfm_test.cc"
    "${AOM_ROOT}/test/av1_txfm_test.h"
    # requires CONFIG_EXT_INTER
    #"${AOM_ROOT}/test/av1_wedge_utils_test.cc"
    "${AOM_ROOT}/test/avg_test.cc"
    "${AOM_ROOT}/test/blend_a64_mask_1d_test.cc"
    "${AOM_ROOT}/test/blend_a64_mask_test.cc"
    "${AOM_ROOT}/test/boolcoder_test.cc"
    "${AOM_ROOT}/test/borders_test.cc"
    "${AOM_ROOT}/test/clear_system_state.h"
    # requires CONFIG_CLPF
    #"${AOM_ROOT}/test/clpf_test.cc"
    "${AOM_ROOT}/test/codec_factory.h"
    "${AOM_ROOT}/test/convolve_test.cc"
    "${AOM_ROOT}/test/cpu_speed_test.cc"
    "${AOM_ROOT}/test/datarate_test.cc"
    "${AOM_ROOT}/test/dct16x16_test.cc"
    "${AOM_ROOT}/test/dct32x32_test.cc"
    "${AOM_ROOT}/test/decode_api_test.cc"
    "${AOM_ROOT}/test/decode_test_driver.cc"
    "${AOM_ROOT}/test/decode_test_driver.h"
    "${AOM_ROOT}/test/divu_small_test.cc"
    "${AOM_ROOT}/test/encode_api_test.cc"
    "${AOM_ROOT}/test/encode_test_driver.cc"
    "${AOM_ROOT}/test/encode_test_driver.h"
    "${AOM_ROOT}/test/encoder_parms_get_to_decoder.cc"
    "${AOM_ROOT}/test/end_to_end_test.cc"
    "${AOM_ROOT}/test/error_block_test.cc"
    "${AOM_ROOT}/test/error_resilience_test.cc"
    "${AOM_ROOT}/test/ethread_test.cc"
    "${AOM_ROOT}/test/fdct4x4_test.cc"
    "${AOM_ROOT}/test/fdct8x8_test.cc"
    "${AOM_ROOT}/test/fht32x32_test.cc"
    # require CONFIG_FILTER_INTRA and HAVE_SSE4_1
    #"${AOM_ROOT}/test/filterintra_predictors_test.cc"
    "${AOM_ROOT}/test/frame_size_tests.cc"
    "${AOM_ROOT}/test/function_equivalence_test.h"
    "${AOM_ROOT}/test/hadamard_test.cc"
    "${AOM_ROOT}/test/i420_video_source.h"
    "${AOM_ROOT}/test/idct8x8_test.cc"
    # omitted from tests.mk, includes non-existing file: aom_rtcd.h.
    #"${AOM_ROOT}/test/idct_test.cc"
    "${AOM_ROOT}/test/intrapred_test.cc"
    "${AOM_ROOT}/test/ivf_video_source.h"
    "${AOM_ROOT}/test/level_test.cc"
    "${AOM_ROOT}/test/lossless_test.cc"
    "${AOM_ROOT}/test/lpf_8_test.cc"
    # requires CONFIG_EXT_INTER
    #"${AOM_ROOT}/test/masked_sad_test.cc"
    #"${AOM_ROOT}/test/masked_variance_test.cc"
    "${AOM_ROOT}/test/md5_helper.h"
    "${AOM_ROOT}/test/minmax_test.cc"
    # requires CONFIG_MOTION_VAR
    #"${AOM_ROOT}/test/obmc_sad_test.cc"
    #"${AOM_ROOT}/test/obmc_variance_test.cc"
    "${AOM_ROOT}/test/partial_idct_test.cc"
    # omitted from tests.mk, includes vp8 file.
    #"${AOM_ROOT}/test/quantize_test.cc"
    "${AOM_ROOT}/test/realtime_test.cc"
    "${AOM_ROOT}/test/register_state_check.h"
    "${AOM_ROOT}/test/resize_test.cc"
    "${AOM_ROOT}/test/sad_test.cc"
    # requires CONFIG_ADAPT_SCAN
    #"${AOM_ROOT}/test/scan_test.cc"
    "${AOM_ROOT}/test/simd_cmp_impl.h"
    "${AOM_ROOT}/test/subtract_test.cc"
    "${AOM_ROOT}/test/sum_squares_test.cc"
    "${AOM_ROOT}/test/superframe_test.cc"
    "${AOM_ROOT}/test/test_libaom.cc"
    "${AOM_ROOT}/test/tile_independence_test.cc"
    "${AOM_ROOT}/test/transform_test_base.h"
    # omitted from test.mk
    #"${AOM_ROOT}/test/user_priv_test.cc"
    "${AOM_ROOT}/test/util.h"
    "${AOM_ROOT}/test/variance_test.cc"
    "${AOM_ROOT}/test/video_source.h"
    # requires CONFIG_GLOBAL_MOTION, CONFIG_WARPED_MOTION, HAVE_SSE2
    #"${AOM_ROOT}/test/warp_filter_test.cc"
    "${AOM_ROOT}/test/y4m_test.cc"
    "${AOM_ROOT}/test/y4m_video_source.h"
    "${AOM_ROOT}/test/yuv_video_source.h")

set(AOM_UNIT_TEST_INTRIN_NEON "${AOM_ROOT}/test/simd_cmp_neon.cc")
set(AOM_UNIT_TEST_INTRIN_SSE2 "${AOM_ROOT}/test/simd_cmp_sse2.cc")
set(AOM_UNIT_TEST_INTRIN_SSSE3 "${AOM_ROOT}/test/simd_cmp_ssse3.cc")
set(AOM_UNIT_TEST_INTRIN_SSE4_1 "${AOM_ROOT}/test/simd_cmp_sse4.cc")

if (CONFIG_INTERNAL_STATS)
  set(AOM_DSP_SOURCES
      ${AOM_DSP_SOURCES}
      "${AOM_ROOT}/aom_dsp/fastssim.c"
      "${AOM_ROOT}/aom_dsp/psnr.h"
      "${AOM_ROOT}/aom_dsp/psnrhvs.c"
      "${AOM_ROOT}/aom_dsp/ssim.c"
      "${AOM_ROOT}/aom_dsp/ssim.h")

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

if (CONFIG_AOM_HIGHBITDEPTH)
  set(AOM_DSP_ASM_SSE2
      ${AOM_DSP_ASM_SSE2}
      "${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_sse2.asm"
      "${AOM_ROOT}/aom_dsp/x86/highbd_sad4d_sse2.asm"
      "${AOM_ROOT}/aom_dsp/x86/highbd_sad_sse2.asm"
      "${AOM_ROOT}/aom_dsp/x86/highbd_subpel_variance_impl_sse2.asm"
      "${AOM_ROOT}/aom_dsp/x86/highbd_variance_impl_sse2.asm"
      "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_8t_sse2.asm"
      "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_bilinear_sse2.asm")

  set(AOM_DSP_INTRIN_SSE2
      ${AOM_DSP_INTRIN_SSE2}
      "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_sse2.c"
      "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_sse2.c"
      "${AOM_ROOT}/aom_dsp/x86/highbd_subtract_sse2.c"
      "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse2.c")

  set(AOM_DSP_INTRIN_SSE4_1
      ${AOM_DSP_INTRIN_SSE4_1}
      "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse4.c")

  set(AOM_DSP_AVX2_INTRIN
      ${AOM_DSP_AVX2_INTRIN}
      "${AOM_ROOT}/aom_dsp/x86/sad_highbd_avx2.c")

  set(AOM_AV1_COMMON_SSE4_1_INTRIN
      ${AOM_AV1_COMMON_SSE4_1_INTRIN}
      "${AOM_ROOT}/av1/common/x86/av1_highbd_convolve_sse4.c"
      "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_sse4.c")

  set(AOM_AV1_COMMON_AVX2_INTRIN
      ${AOM_AV1_COMMON_AVX2_INTRIN}
      "${AOM_ROOT}/av1/common/x86/highbd_inv_txfm_avx2.c")

  set(AOM_AV1_ENCODER_SSE4_1_INTRIN
      ${AOM_AV1_ENCODER_SSE4_1_INTRIN}
      "${AOM_ROOT}/av1/encoder/x86/av1_highbd_quantize_sse4.c"
      "${AOM_ROOT}/av1/encoder/x86/highbd_fwd_txfm_sse4.c")

  if (CONFIG_INTERNAL_STATS)
    set(AOM_UNIT_TEST_SOURCES
        ${AOM_UNIT_TEST_SOURCES}
        "${AOM_ROOT}/test/hbd_metrics_test.cc")
  endif ()

  set(AOM_UNIT_TEST_INTRIN_SSE4_1
      ${AOM_UNIT_TEST_INTRIN_SSE4_1}
      "${AOM_ROOT}/test/av1_highbd_iht_test.cc"
      "${AOM_ROOT}/test/av1_quantize_test.cc")
endif ()

set(AOM_GTEST_SOURCES
    "${AOM_ROOT}/third_party/googletest/src/src/gtest-all.cc"
    "${AOM_ROOT}/third_party/googletest/src/include/gtest/gtest.h")

set(AOM_TEST_INTRA_PRED_SPEED_SOURCES
    "${AOM_CONFIG_DIR}/usage_exit.c"
    "${AOM_ROOT}/test/test_intra_pred_speed.cc")

include_directories(${AOM_ROOT} ${AOM_CONFIG_DIR})

# Targets
# TODO(tomfinegan): Add support for enable/disable encoder/decoder.
add_rtcd_build_step("${AOM_ROOT}/aom_dsp/aom_dsp_rtcd_defs.pl"
                    "${AOM_CONFIG_DIR}/aom_dsp_rtcd.h"
                    "${AOM_ROOT}/aom_dsp/aom_dsp_rtcd.c"
                    "aom_dsp_rtcd")
add_rtcd_build_step("${AOM_ROOT}/aom_scale/aom_scale_rtcd.pl"
                    "${AOM_CONFIG_DIR}/aom_scale_rtcd.h"
                    "${AOM_ROOT}/aom_scale/aom_scale_rtcd.c"
                    "aom_scale_rtcd")
add_rtcd_build_step("${AOM_ROOT}/av1/common/av1_rtcd_defs.pl"
                    "${AOM_CONFIG_DIR}/av1_rtcd.h"
                    "${AOM_ROOT}/av1/common/av1_rtcd.c"
                    "av1_rtcd")
add_library(aom_rtcd OBJECT ${AOM_RTCD_SOURCES})
add_library(aom_util OBJECT ${AOM_UTIL_SOURCES} ${AOM_RTCD_HEADER_FILE_LIST})
add_library(aom_dsp OBJECT ${AOM_DSP_SOURCES} ${AOM_RTCD_HEADER_FILE_LIST})
add_library(aom_encoder_stats OBJECT ${AOM_ENCODER_STATS_SOURCES}
            ${AOM_RTCD_HEADER_FILE_LIST})
add_library(aom_mem OBJECT ${AOM_MEM_SOURCES} ${AOM_RTCD_HEADER_FILE_LIST})
add_library(aom_scale OBJECT ${AOM_SCALE_SOURCES} ${AOM_RTCD_HEADER_FILE_LIST})
add_library(aom_av1_common OBJECT ${AOM_AV1_COMMON_SOURCES}
            ${AOM_RTCD_HEADER_FILE_LIST})
add_library(aom_av1_decoder OBJECT ${AOM_AV1_DECODER_SOURCES}
            ${AOM_RTCD_HEADER_FILE_LIST})
add_library(aom_av1_encoder OBJECT ${AOM_AV1_ENCODER_SOURCES}
            ${AOM_RTCD_HEADER_FILE_LIST})
add_library(aom
            ${AOM_SOURCES}
            ${AOM_RTCD_HEADER_FILE_LIST}
            $<TARGET_OBJECTS:aom_dsp>
            $<TARGET_OBJECTS:aom_mem>
            $<TARGET_OBJECTS:aom_rtcd>
            $<TARGET_OBJECTS:aom_scale>
            $<TARGET_OBJECTS:aom_util>
            $<TARGET_OBJECTS:aom_av1_common>
            $<TARGET_OBJECTS:aom_av1_decoder>
            $<TARGET_OBJECTS:aom_av1_encoder>)

# List of object and static library targets.
set(AOM_LIB_TARGETS aom_rtcd aom_util aom_dsp aom_encoder_stats aom_mem
    aom_scale aom_av1_common aom_av1_decoder aom_av1_encoder aom)

#
# Assembly and intrinsic targets.
#
if ("${AOM_TARGET_CPU}" STREQUAL "x86" OR "${AOM_TARGET_CPU}" STREQUAL "x86_64")
  add_asm_build("aom_util" "AOM_PORTS_ASM_X86")
endif ()

if (HAVE_MMX)
  add_asm_build("aom_util" "AOM_PORTS_ASM_MMX")
endif ()

if (HAVE_SSE2)
  add_asm_build("aom_dsp" "AOM_DSP_ASM_SSE2")
  add_asm_build("aom_av1_encoder" "AOM_AV1_ENCODER_SSE2_ASM")
  require_flag("-msse2" NO)
  add_intrinsics_object_library("-msse2" "sse2" "aom_dsp" "AOM_DSP_INTRIN_SSE2")
  add_intrinsics_object_library("-msse2" "sse2" "aom_av1_common"
                                "AOM_AV1_COMMON_SSE2_INTRIN")
  add_intrinsics_object_library("-msse2" "sse2" "aom_av1_encoder"
                                "AOM_AV1_ENCODER_SSE2_INTRIN")
endif ()

if (HAVE_SSE3)
  add_asm_build("aom_dsp" "AOM_DSP_INTRIN_SSE3")
endif ()

if (HAVE_SSSE3)
  if ("${AOM_TARGET_CPU}" STREQUAL "x86_64")
    list(APPEND AOM_DSP_ASM_SSSE3 ${AOM_DSP_ASM_SSSE3_X86_64})
  endif ()
  add_asm_build("aom_dsp" "AOM_DSP_ASM_SSSE3")
  add_asm_build("aom_av1_encoder" "AOM_AV1_ENCODER_SSSE3_ASM")
  require_flag("-mssse3" NO)
  add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp"
                                "AOM_DSP_INTRIN_SSSE3")
  add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_common"
                                "AOM_AV1_COMMON_SSSE3_INTRIN")
  add_intrinsics_object_library("-mssse3" "ssse3" "aom_av1_encoder"
                                "AOM_AV1_ENCODER_SSSE3_INTRIN")
endif ()

if (HAVE_SSE4_1)
  add_asm_build("aom_dsp" "AOM_DSP_ASM_SSE4_1")
  require_flag("-msse4.1" NO)
  add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp"
                                "AOM_DSP_INTRIN_SSE4_1")
  add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_common"
                                "AOM_AV1_COMMON_SSE4_1_INTRIN")
  if (AOM_AV1_ENCODER_SSE4_1_INTRIN)
    add_intrinsics_object_library("-msse4.1" "sse4" "aom_av1_encoder"
                                  "AOM_AV1_ENCODER_SSE4_1_INTRIN")
  endif ()
endif ()

if (HAVE_AVX)
  add_asm_build("aom_dsp" "AOM_DSP_AVX_ASM")
endif ()
if (HAVE_AVX2)
  require_flag("-mavx2" NO)
  add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp" "AOM_DSP_AVX2_INTRIN")
  add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_common"
                                "AOM_AV1_COMMON_AVX2_INTRIN")
  add_intrinsics_object_library("-mavx2" "avx2" "aom_av1_encoder"
                                "AOM_AV1_ENCODER_AVX2_INTRIN")
endif ()

# Make all library targets depend on aom_rtcd to make sure it builds first.
foreach (aom_lib ${AOM_LIB_TARGETS})
  if (NOT "${aom_lib}" STREQUAL "aom_rtcd")
    add_dependencies(${aom_lib} aom_rtcd)
  endif ()
endforeach ()
#
# Application and application support targets.
#
add_library(aom_common_app_util OBJECT ${AOM_COMMON_APP_UTIL_SOURCES})
add_library(aom_decoder_app_util OBJECT ${AOM_DECODER_APP_UTIL_SOURCES})
add_library(aom_encoder_app_util OBJECT ${AOM_ENCODER_APP_UTIL_SOURCES})

add_executable(aom_cx_set_ref
               "${AOM_ROOT}/examples/aom_cx_set_ref.c"
               $<TARGET_OBJECTS:aom_common_app_util>
               $<TARGET_OBJECTS:aom_encoder_app_util>)

add_executable(aomdec
               "${AOM_ROOT}/aomdec.c"
               $<TARGET_OBJECTS:aom_common_app_util>
               $<TARGET_OBJECTS:aom_decoder_app_util>)

add_executable(aomenc
               "${AOM_ROOT}/aomenc.c"
               $<TARGET_OBJECTS:aom_common_app_util>
               $<TARGET_OBJECTS:aom_encoder_app_util>
               $<TARGET_OBJECTS:aom_encoder_stats>)

add_executable(decode_to_md5
               "${AOM_ROOT}/examples/decode_to_md5.c"
               $<TARGET_OBJECTS:aom_common_app_util>
               $<TARGET_OBJECTS:aom_decoder_app_util>)

add_executable(decode_with_drops
               "${AOM_ROOT}/examples/decode_with_drops.c"
               $<TARGET_OBJECTS:aom_common_app_util>
               $<TARGET_OBJECTS:aom_decoder_app_util>)

add_executable(lossless_encoder
               "${AOM_ROOT}/examples/lossless_encoder.c"
               $<TARGET_OBJECTS:aom_common_app_util>
               $<TARGET_OBJECTS:aom_encoder_app_util>)

add_executable(set_maps
               "${AOM_ROOT}/examples/set_maps.c"
               $<TARGET_OBJECTS:aom_common_app_util>
               $<TARGET_OBJECTS:aom_encoder_app_util>)

add_executable(simple_decoder
               "${AOM_ROOT}/examples/simple_decoder.c"
               $<TARGET_OBJECTS:aom_common_app_util>
               $<TARGET_OBJECTS:aom_decoder_app_util>)

add_executable(simple_encoder
               "${AOM_ROOT}/examples/simple_encoder.c"
               $<TARGET_OBJECTS:aom_common_app_util>
               $<TARGET_OBJECTS:aom_encoder_app_util>)

add_executable(twopass_encoder
               "${AOM_ROOT}/examples/twopass_encoder.c"
               $<TARGET_OBJECTS:aom_common_app_util>
               $<TARGET_OBJECTS:aom_encoder_app_util>)

# List of app targets.
set(AOM_APP_TARGETS aom_cx_set_ref aomdec aomenc decode_to_md5 decode_with_drops
    lossless_encoder set_maps simple_decoder simple_encoder twopass_encoder)

foreach (aom_app ${AOM_APP_TARGETS})
  target_link_libraries(${aom_app} PUBLIC aom)
endforeach ()

if (CONFIG_LIBYUV)
  add_library(yuv OBJECT ${AOM_LIBYUV_SOURCES})
  target_compile_options(yuv PRIVATE -Wno-unused-parameter)
  include_directories("${AOM_ROOT}/third_party/libyuv/include")

  # Add to existing targets.
  foreach (aom_app ${AOM_APP_TARGETS})
    target_sources(${aom_app} PUBLIC $<TARGET_OBJECTS:yuv>)
    set_property(TARGET ${aom_app} PROPERTY LINKER_LANGUAGE CXX)
  endforeach ()
endif ()

if (CONFIG_WEBM_IO)
  add_library(webm OBJECT ${AOM_LIBWEBM_SOURCES})
  include_directories("${AOM_ROOT}/third_party/libwebm")
  target_compile_options(webm PRIVATE -Wno-shadow)

  # Add to existing targets.
  target_sources(aom_decoder_app_util PUBLIC ${AOM_WEBM_DECODER_SOURCES})
  target_sources(aom_encoder_app_util PUBLIC ${AOM_WEBM_ENCODER_SOURCES})

  foreach (aom_app ${AOM_APP_TARGETS})
    target_sources(${aom_app} PUBLIC $<TARGET_OBJECTS:webm>)
    set_property(TARGET ${aom_app} PROPERTY LINKER_LANGUAGE CXX)
   endforeach ()
endif ()

if (CONFIG_UNIT_TESTS)
  include_directories("${AOM_ROOT}/third_party/googletest/src/include"
                      "${AOM_ROOT}/third_party/googletest/src")

  add_library(aom_gtest OBJECT ${AOM_GTEST_SOURCES})

  # Generate a stub file containing the C function usage_exit(); this is
  # required because of the test dependency on aom_common_app_util.
  # Specifically, the function die() in tools_common.c calls usage_exit() to
  # terminate the program on the caller's behalf.
  file(WRITE "${AOM_CONFIG_DIR}/usage_exit.c" "void usage_exit(void) {}")

  add_executable(test_libaom ${AOM_UNIT_TEST_SOURCES}
                 $<TARGET_OBJECTS:aom_common_app_util>
                 $<TARGET_OBJECTS:aom_decoder_app_util>
                 $<TARGET_OBJECTS:aom_encoder_app_util>
                 $<TARGET_OBJECTS:aom_gtest>)
  target_link_libraries(test_libaom PUBLIC aom)

  add_executable(test_intra_pred_speed
                 ${AOM_TEST_INTRA_PRED_SPEED_SOURCES}
                 $<TARGET_OBJECTS:aom_common_app_util>
                 $<TARGET_OBJECTS:aom_gtest>)
  target_link_libraries(test_intra_pred_speed PUBLIC aom)

  if (CONFIG_DECODE_PERF_TESTS AND CONFIG_WEBM_IO)
    target_sources(test_libaom PUBLIC ${AOM_DECODE_PERF_TEST_SOURCES})
  endif ()
  if (CONFIG_ENCODE_PERF_TESTS)
    target_sources(test_libaom PUBLIC ${AOM_ENCODE_PERF_TEST_SOURCES})
  endif ()
  if (CONFIG_LIBYUV)
    target_sources(test_libaom PUBLIC $<TARGET_OBJECTS:yuv>)
  endif ()
  if (CONFIG_WEBM_IO)
    target_sources(test_libaom PUBLIC ${AOM_UNIT_TEST_WEBM_SOURCES}
                   $<TARGET_OBJECTS:webm>)
  endif ()
  if (HAVE_SSE2)
    add_intrinsics_source_to_target("-msse2" "test_libaom"
                                    "AOM_UNIT_TEST_INTRIN_SSE2")
  endif ()
  if (HAVE_SSSE3)
    add_intrinsics_source_to_target("-mssse3" "test_libaom"
                                    "AOM_UNIT_TEST_INTRIN_SSSE3")
  endif ()
  if (HAVE_SSE4_1)
    add_intrinsics_source_to_target("-msse4.1" "test_libaom"
                                    "AOM_UNIT_TEST_INTRIN_SSE4_1")
  endif ()
endif ()

if (XCODE)
  if (CONFIG_LIBYUV OR CONFIG_WEBM_IO)
    # The Xcode generator does not obey LINKER_LANGUAGE. Because of the issue
    # what looks like a C++ file needs to be in any target that Xcode will link
    # when the target contains a C++ dependency.
    # Without this Xcode will try to link with the C linker, which always ends
    # badly when a dependency actually includes C++.
    # Note: LINKER_LANGUAGE is explicitly set to C++ for all targets touched
    # here, it really is the Xcode generator's fault, or just a deficiency in
    # Xcode itself.
    set(XCODE_DUMMY_CXX_FILE "${AOM_CONFIG_DIR}/dummy.cc")
    file(WRITE "${XCODE_DUMMY_CXX_FILE}"
         "// Xcode needs a C++ file to link, ignore this file.")
    foreach (aom_app ${AOM_APP_TARGETS})
      target_sources(${aom_app} PUBLIC "${XCODE_DUMMY_CXX_FILE}")
    endforeach ()
  endif ()
endif ()
