1# 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 the 5# Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License was 6# not distributed with this source code in the LICENSE file, you can obtain it 7# at www.aomedia.org/license/software. If the Alliance for Open Media Patent 8# License 1.0 was not distributed with this source code in the PATENTS file, you 9# can obtain it at www.aomedia.org/license/patent. 10# 11if(AOM_AOM_DSP_AOM_DSP_CMAKE_) 12 return() 13endif() # AOM_AOM_DSP_AOM_DSP_CMAKE_ 14set(AOM_AOM_DSP_AOM_DSP_CMAKE_ 1) 15 16list(APPEND AOM_DSP_COMMON_SOURCES 17 "${AOM_ROOT}/aom_dsp/aom_convolve.c" 18 "${AOM_ROOT}/aom_dsp/aom_dsp_common.h" 19 "${AOM_ROOT}/aom_dsp/aom_filter.h" 20 "${AOM_ROOT}/aom_dsp/aom_simd.h" 21 "${AOM_ROOT}/aom_dsp/aom_simd_inline.h" 22 "${AOM_ROOT}/aom_dsp/bitreader_buffer.c" 23 "${AOM_ROOT}/aom_dsp/bitreader_buffer.h" 24 "${AOM_ROOT}/aom_dsp/bitwriter_buffer.c" 25 "${AOM_ROOT}/aom_dsp/bitwriter_buffer.h" 26 "${AOM_ROOT}/aom_dsp/blend.h" 27 "${AOM_ROOT}/aom_dsp/blend_a64_hmask.c" 28 "${AOM_ROOT}/aom_dsp/blend_a64_mask.c" 29 "${AOM_ROOT}/aom_dsp/blend_a64_vmask.c" 30 "${AOM_ROOT}/aom_dsp/entcode.c" 31 "${AOM_ROOT}/aom_dsp/entcode.h" 32 "${AOM_ROOT}/aom_dsp/fft.c" 33 "${AOM_ROOT}/aom_dsp/fft_common.h" 34 "${AOM_ROOT}/aom_dsp/intrapred.c" 35 "${AOM_ROOT}/aom_dsp/intrapred_common.h" 36 "${AOM_ROOT}/aom_dsp/loopfilter.c" 37 "${AOM_ROOT}/aom_dsp/prob.h" 38 "${AOM_ROOT}/aom_dsp/recenter.h" 39 "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics.h" 40 "${AOM_ROOT}/aom_dsp/simd/v128_intrinsics_c.h" 41 "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics.h" 42 "${AOM_ROOT}/aom_dsp/simd/v256_intrinsics_c.h" 43 "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics.h" 44 "${AOM_ROOT}/aom_dsp/simd/v64_intrinsics_c.h" 45 "${AOM_ROOT}/aom_dsp/subtract.c" 46 "${AOM_ROOT}/aom_dsp/txfm_common.h" 47 "${AOM_ROOT}/aom_dsp/x86/convolve_common_intrin.h" 48 "${AOM_ROOT}/aom_dsp/avg.c") 49 50list(APPEND AOM_DSP_COMMON_ASM_SSE2 51 "${AOM_ROOT}/aom_dsp/x86/aom_convolve_copy_sse2.asm" 52 "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_8t_sse2.asm" 53 "${AOM_ROOT}/aom_dsp/x86/aom_high_subpixel_bilinear_sse2.asm" 54 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_sse2.asm" 55 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_bilinear_sse2.asm" 56 "${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_asm_sse2.asm" 57 "${AOM_ROOT}/aom_dsp/x86/intrapred_asm_sse2.asm" 58 "${AOM_ROOT}/aom_dsp/x86/inv_wht_sse2.asm") 59 60list(APPEND AOM_DSP_COMMON_INTRIN_SSE2 61 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_sse2.c" 62 "${AOM_ROOT}/aom_dsp/x86/aom_asm_stubs.c" 63 "${AOM_ROOT}/aom_dsp/x86/convolve.h" 64 "${AOM_ROOT}/aom_dsp/x86/convolve_sse2.h" 65 "${AOM_ROOT}/aom_dsp/x86/fft_sse2.c" 66 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_sse2.c" 67 "${AOM_ROOT}/aom_dsp/x86/highbd_intrapred_sse2.c" 68 "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_sse2.c" 69 "${AOM_ROOT}/aom_dsp/x86/intrapred_sse2.c" 70 "${AOM_ROOT}/aom_dsp/x86/intrapred_x86.h" 71 "${AOM_ROOT}/aom_dsp/x86/loopfilter_sse2.c" 72 "${AOM_ROOT}/aom_dsp/x86/lpf_common_sse2.h" 73 "${AOM_ROOT}/aom_dsp/x86/mem_sse2.h" 74 "${AOM_ROOT}/aom_dsp/x86/transpose_sse2.h" 75 "${AOM_ROOT}/aom_dsp/x86/txfm_common_sse2.h" 76 "${AOM_ROOT}/aom_dsp/x86/sum_squares_sse2.h" 77 "${AOM_ROOT}/aom_dsp/x86/avg_intrin_sse2.c" 78 "${AOM_ROOT}/aom_dsp/x86/bitdepth_conversion_sse2.h") 79 80if(NOT CONFIG_AV1_HIGHBITDEPTH) 81 list(REMOVE_ITEM AOM_DSP_COMMON_INTRIN_SSE2 82 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_sse2.c" 83 "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_sse2.c") 84endif() 85 86list(APPEND AOM_DSP_COMMON_ASM_SSSE3 87 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_ssse3.asm" 88 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_bilinear_ssse3.asm") 89 90list(APPEND AOM_DSP_COMMON_INTRIN_SSSE3 91 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_ssse3.c" 92 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_ssse3.c" 93 "${AOM_ROOT}/aom_dsp/x86/intrapred_ssse3.c") 94 95if(NOT CONFIG_AV1_HIGHBITDEPTH) 96 list(REMOVE_ITEM AOM_DSP_COMMON_INTRIN_SSSE3 97 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_ssse3.c") 98endif() 99 100list(APPEND AOM_DSP_COMMON_INTRIN_SSE4_1 101 "${AOM_ROOT}/aom_dsp/x86/blend_mask_sse4.h" 102 "${AOM_ROOT}/aom_dsp/x86/blend_a64_hmask_sse4.c" 103 "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_sse4.c" 104 "${AOM_ROOT}/aom_dsp/x86/blend_a64_vmask_sse4.c") 105 106list(APPEND AOM_DSP_COMMON_INTRIN_AVX2 107 "${AOM_ROOT}/aom_dsp/x86/aom_subpixel_8t_intrin_avx2.c" 108 "${AOM_ROOT}/aom_dsp/x86/common_avx2.h" 109 "${AOM_ROOT}/aom_dsp/x86/txfm_common_avx2.h" 110 "${AOM_ROOT}/aom_dsp/x86/convolve_avx2.h" 111 "${AOM_ROOT}/aom_dsp/x86/fft_avx2.c" 112 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_avx2.c" 113 "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_avx2.c" 114 "${AOM_ROOT}/aom_dsp/x86/intrapred_avx2.c" 115 "${AOM_ROOT}/aom_dsp/x86/blend_a64_mask_avx2.c" 116 "${AOM_ROOT}/aom_dsp/x86/avg_intrin_avx2.c" 117 "${AOM_ROOT}/aom_dsp/x86/bitdepth_conversion_avx2.h") 118 119if(NOT CONFIG_AV1_HIGHBITDEPTH) 120 list(REMOVE_ITEM AOM_DSP_COMMON_INTRIN_AVX2 121 "${AOM_ROOT}/aom_dsp/x86/highbd_convolve_avx2.c" 122 "${AOM_ROOT}/aom_dsp/x86/highbd_loopfilter_avx2.c") 123endif() 124 125list(APPEND AOM_DSP_COMMON_INTRIN_NEON "${AOM_ROOT}/aom_dsp/arm/fwd_txfm_neon.c" 126 "${AOM_ROOT}/aom_dsp/arm/loopfilter_neon.c" 127 "${AOM_ROOT}/aom_dsp/arm/intrapred_neon.c" 128 "${AOM_ROOT}/aom_dsp/arm/subtract_neon.c" 129 "${AOM_ROOT}/aom_dsp/arm/blend_a64_mask_neon.c") 130 131list(APPEND AOM_DSP_COMMON_INTRIN_DSPR2 132 "${AOM_ROOT}/aom_dsp/mips/common_dspr2.c" 133 "${AOM_ROOT}/aom_dsp/mips/common_dspr2.h" 134 "${AOM_ROOT}/aom_dsp/mips/convolve2_dspr2.c" 135 "${AOM_ROOT}/aom_dsp/mips/convolve2_horiz_dspr2.c" 136 "${AOM_ROOT}/aom_dsp/mips/convolve2_vert_dspr2.c" 137 "${AOM_ROOT}/aom_dsp/mips/convolve8_dspr2.c" 138 "${AOM_ROOT}/aom_dsp/mips/convolve8_horiz_dspr2.c" 139 "${AOM_ROOT}/aom_dsp/mips/convolve8_vert_dspr2.c" 140 "${AOM_ROOT}/aom_dsp/mips/convolve_common_dspr2.h" 141 "${AOM_ROOT}/aom_dsp/mips/intrapred16_dspr2.c" 142 "${AOM_ROOT}/aom_dsp/mips/intrapred4_dspr2.c" 143 "${AOM_ROOT}/aom_dsp/mips/intrapred8_dspr2.c" 144 "${AOM_ROOT}/aom_dsp/mips/inv_txfm_dspr2.h") 145 146list(APPEND AOM_DSP_COMMON_INTRIN_MSA 147 "${AOM_ROOT}/aom_dsp/mips/aom_convolve8_horiz_msa.c" 148 "${AOM_ROOT}/aom_dsp/mips/aom_convolve8_vert_msa.c" 149 "${AOM_ROOT}/aom_dsp/mips/aom_convolve_copy_msa.c" 150 "${AOM_ROOT}/aom_dsp/mips/aom_convolve_msa.h" 151 "${AOM_ROOT}/aom_dsp/mips/intrapred_msa.c" 152 "${AOM_ROOT}/aom_dsp/mips/macros_msa.h") 153 154if(CONFIG_AV1_DECODER) 155 list(APPEND AOM_DSP_DECODER_SOURCES 156 "${AOM_ROOT}/aom_dsp/binary_codes_reader.c" 157 "${AOM_ROOT}/aom_dsp/binary_codes_reader.h" 158 "${AOM_ROOT}/aom_dsp/bitreader.c" 159 "${AOM_ROOT}/aom_dsp/bitreader.h" "${AOM_ROOT}/aom_dsp/entdec.c" 160 "${AOM_ROOT}/aom_dsp/entdec.h" 161 "${AOM_ROOT}/aom_dsp/grain_synthesis.c" 162 "${AOM_ROOT}/aom_dsp/grain_synthesis.h") 163endif() 164 165if(CONFIG_AV1_ENCODER) 166 list(APPEND AOM_DSP_ENCODER_SOURCES 167 "${AOM_ROOT}/aom_dsp/binary_codes_writer.c" 168 "${AOM_ROOT}/aom_dsp/binary_codes_writer.h" 169 "${AOM_ROOT}/aom_dsp/bitwriter.c" 170 "${AOM_ROOT}/aom_dsp/bitwriter.h" 171 "${AOM_ROOT}/aom_dsp/blk_sse_sum.c" 172 "${AOM_ROOT}/aom_dsp/entenc.c" 173 "${AOM_ROOT}/aom_dsp/entenc.h" 174 "${AOM_ROOT}/aom_dsp/fwd_txfm.c" 175 "${AOM_ROOT}/aom_dsp/grain_table.c" 176 "${AOM_ROOT}/aom_dsp/grain_table.h" 177 "${AOM_ROOT}/aom_dsp/noise_model.c" 178 "${AOM_ROOT}/aom_dsp/noise_model.h" 179 "${AOM_ROOT}/aom_dsp/noise_util.c" 180 "${AOM_ROOT}/aom_dsp/noise_util.h" 181 "${AOM_ROOT}/aom_dsp/psnr.c" 182 "${AOM_ROOT}/aom_dsp/psnr.h" 183 "${AOM_ROOT}/aom_dsp/quantize.c" 184 "${AOM_ROOT}/aom_dsp/quantize.h" 185 "${AOM_ROOT}/aom_dsp/sad.c" 186 "${AOM_ROOT}/aom_dsp/sse.c" 187 "${AOM_ROOT}/aom_dsp/sad_av1.c" 188 "${AOM_ROOT}/aom_dsp/sum_squares.c" 189 "${AOM_ROOT}/aom_dsp/variance.c" 190 "${AOM_ROOT}/aom_dsp/variance.h") 191 192 list(APPEND AOM_DSP_ENCODER_ASM_SSE2 193 "${AOM_ROOT}/aom_dsp/x86/highbd_sad4d_sse2.asm" 194 "${AOM_ROOT}/aom_dsp/x86/highbd_sad_sse2.asm" 195 "${AOM_ROOT}/aom_dsp/x86/highbd_subpel_variance_impl_sse2.asm" 196 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_impl_sse2.asm" 197 "${AOM_ROOT}/aom_dsp/x86/sad4d_sse2.asm" 198 "${AOM_ROOT}/aom_dsp/x86/sad_sse2.asm" 199 "${AOM_ROOT}/aom_dsp/x86/subpel_variance_sse2.asm" 200 "${AOM_ROOT}/aom_dsp/x86/subtract_sse2.asm") 201 202 list(APPEND AOM_DSP_ENCODER_ASM_SSE2_X86_64 203 "${AOM_ROOT}/aom_dsp/x86/ssim_sse2_x86_64.asm") 204 205 list(APPEND AOM_DSP_ENCODER_INTRIN_SSE2 206 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_impl_sse2.h" 207 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.c" 208 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_sse2.h" 209 "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_sse2.c" 210 "${AOM_ROOT}/aom_dsp/x86/highbd_subtract_sse2.c" 211 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse2.c" 212 "${AOM_ROOT}/aom_dsp/x86/quantize_sse2.c" 213 "${AOM_ROOT}/aom_dsp/x86/adaptive_quantize_sse2.c" 214 "${AOM_ROOT}/aom_dsp/x86/highbd_adaptive_quantize_sse2.c" 215 "${AOM_ROOT}/aom_dsp/x86/quantize_x86.h" 216 "${AOM_ROOT}/aom_dsp/x86/blk_sse_sum_sse2.c" 217 "${AOM_ROOT}/aom_dsp/x86/sum_squares_sse2.c" 218 "${AOM_ROOT}/aom_dsp/x86/variance_sse2.c") 219 if(NOT CONFIG_AV1_HIGHBITDEPTH) 220 list(REMOVE_ITEM AOM_DSP_ENCODER_INTRIN_SSE2 221 "${AOM_ROOT}/aom_dsp/x86/highbd_adaptive_quantize_sse2.c" 222 "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_sse2.c" 223 "${AOM_ROOT}/aom_dsp/x86/highbd_subtract_sse2.c" 224 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse2.c") 225 endif() 226 227 list(APPEND AOM_DSP_ENCODER_ASM_SSSE3_X86_64 228 "${AOM_ROOT}/aom_dsp/x86/fwd_txfm_ssse3_x86_64.asm" 229 "${AOM_ROOT}/aom_dsp/x86/quantize_ssse3_x86_64.asm") 230 231 list(APPEND AOM_DSP_ENCODER_INTRIN_AVX2 232 "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_avx2.c" 233 "${AOM_ROOT}/aom_dsp/x86/subtract_avx2.c" 234 "${AOM_ROOT}/aom_dsp/x86/highbd_quantize_intrin_avx2.c" 235 "${AOM_ROOT}/aom_dsp/x86/adaptive_quantize_avx2.c" 236 "${AOM_ROOT}/aom_dsp/x86/highbd_adaptive_quantize_avx2.c" 237 "${AOM_ROOT}/aom_dsp/x86/sad4d_avx2.c" 238 "${AOM_ROOT}/aom_dsp/x86/sad_avx2.c" 239 "${AOM_ROOT}/aom_dsp/x86/sad_highbd_avx2.c" 240 "${AOM_ROOT}/aom_dsp/x86/sad_impl_avx2.c" 241 "${AOM_ROOT}/aom_dsp/x86/variance_avx2.c" 242 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_avx2.c" 243 "${AOM_ROOT}/aom_dsp/x86/sse_avx2.c" 244 "${AOM_ROOT}/aom_dsp/x86/variance_impl_avx2.c" 245 "${AOM_ROOT}/aom_dsp/x86/obmc_sad_avx2.c" 246 "${AOM_ROOT}/aom_dsp/x86/obmc_variance_avx2.c" 247 "${AOM_ROOT}/aom_dsp/x86/blk_sse_sum_avx2.c" 248 "${AOM_ROOT}/aom_dsp/x86/sum_squares_avx2.c") 249 250 list(APPEND AOM_DSP_ENCODER_AVX_ASM_X86_64 251 "${AOM_ROOT}/aom_dsp/x86/quantize_avx_x86_64.asm") 252 253 list(APPEND AOM_DSP_ENCODER_INTRIN_SSSE3 254 "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_ssse3.h" 255 "${AOM_ROOT}/aom_dsp/x86/masked_sad_intrin_ssse3.c" 256 "${AOM_ROOT}/aom_dsp/x86/masked_sad4d_ssse3.c" 257 "${AOM_ROOT}/aom_dsp/x86/masked_variance_intrin_ssse3.h" 258 "${AOM_ROOT}/aom_dsp/x86/masked_variance_intrin_ssse3.c" 259 "${AOM_ROOT}/aom_dsp/x86/quantize_ssse3.c" 260 "${AOM_ROOT}/aom_dsp/x86/variance_impl_ssse3.c" 261 "${AOM_ROOT}/aom_dsp/x86/jnt_variance_ssse3.c" 262 "${AOM_ROOT}/aom_dsp/x86/jnt_sad_ssse3.c") 263 264 list(APPEND AOM_DSP_ENCODER_INTRIN_SSE4_1 265 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse4.c" 266 "${AOM_ROOT}/aom_dsp/x86/sse_sse4.c" 267 "${AOM_ROOT}/aom_dsp/x86/obmc_sad_sse4.c" 268 "${AOM_ROOT}/aom_dsp/x86/obmc_variance_sse4.c") 269 270 if(NOT CONFIG_AV1_HIGHBITDEPTH) 271 list(REMOVE_ITEM AOM_DSP_ENCODER_INTRIN_SSE4_1 272 "${AOM_ROOT}/aom_dsp/x86/highbd_variance_sse4.c") 273 endif() 274 275 list(APPEND AOM_DSP_ENCODER_INTRIN_NEON "${AOM_ROOT}/aom_dsp/arm/sad4d_neon.c" 276 "${AOM_ROOT}/aom_dsp/arm/sad_neon.c" 277 "${AOM_ROOT}/aom_dsp/arm/subpel_variance_neon.c" 278 "${AOM_ROOT}/aom_dsp/arm/variance_neon.c" 279 "${AOM_ROOT}/aom_dsp/arm/hadamard_neon.c" 280 "${AOM_ROOT}/aom_dsp/arm/avg_neon.c" 281 "${AOM_ROOT}/aom_dsp/arm/sse_neon.c") 282 283 list(APPEND AOM_DSP_ENCODER_INTRIN_MSA "${AOM_ROOT}/aom_dsp/mips/sad_msa.c" 284 "${AOM_ROOT}/aom_dsp/mips/subtract_msa.c" 285 "${AOM_ROOT}/aom_dsp/mips/variance_msa.c" 286 "${AOM_ROOT}/aom_dsp/mips/sub_pixel_variance_msa.c") 287 288 if(CONFIG_INTERNAL_STATS) 289 list(APPEND AOM_DSP_ENCODER_SOURCES "${AOM_ROOT}/aom_dsp/fastssim.c" 290 "${AOM_ROOT}/aom_dsp/psnrhvs.c" "${AOM_ROOT}/aom_dsp/ssim.c" 291 "${AOM_ROOT}/aom_dsp/ssim.h") 292 endif() 293 294 if(CONFIG_TUNE_VMAF) 295 list(APPEND AOM_DSP_ENCODER_SOURCES "${AOM_ROOT}/aom_dsp/vmaf.c" 296 "${AOM_ROOT}/aom_dsp/vmaf.h") 297 endif() 298endif() 299 300# Creates aom_dsp build targets. Must not be called until after libaom target 301# has been created. 302function(setup_aom_dsp_targets) 303 add_library(aom_dsp_common OBJECT ${AOM_DSP_COMMON_SOURCES}) 304 list(APPEND AOM_LIB_TARGETS aom_dsp_common) 305 create_dummy_source_file("aom_av1" "c" "dummy_source_file") 306 add_library(aom_dsp OBJECT "${dummy_source_file}") 307 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_common>) 308 if(BUILD_SHARED_LIBS) 309 target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp_common>) 310 endif() 311 list(APPEND AOM_LIB_TARGETS aom_dsp) 312 313 # Not all generators support libraries consisting only of object files. Add a 314 # dummy source file to the aom_dsp target. 315 add_dummy_source_file_to_target("aom_dsp" "c") 316 317 if(CONFIG_AV1_DECODER) 318 add_library(aom_dsp_decoder OBJECT ${AOM_DSP_DECODER_SOURCES}) 319 list(APPEND AOM_LIB_TARGETS aom_dsp_decoder) 320 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_decoder>) 321 if(BUILD_SHARED_LIBS) 322 target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp_decoder>) 323 endif() 324 endif() 325 326 if(CONFIG_AV1_ENCODER) 327 add_library(aom_dsp_encoder OBJECT ${AOM_DSP_ENCODER_SOURCES}) 328 list(APPEND AOM_LIB_TARGETS aom_dsp_encoder) 329 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp_encoder>) 330 if(BUILD_SHARED_LIBS) 331 target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp_encoder>) 332 endif() 333 endif() 334 335 if(HAVE_SSE2) 336 add_asm_library("aom_dsp_common_sse2" "AOM_DSP_COMMON_ASM_SSE2") 337 add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_common" 338 "AOM_DSP_COMMON_INTRIN_SSE2") 339 340 if(CONFIG_AV1_ENCODER) 341 if("${AOM_TARGET_CPU}" STREQUAL "x86_64") 342 list(APPEND AOM_DSP_ENCODER_ASM_SSE2 ${AOM_DSP_ENCODER_ASM_SSE2_X86_64}) 343 endif() 344 add_asm_library("aom_dsp_encoder_sse2" "AOM_DSP_ENCODER_ASM_SSE2") 345 add_intrinsics_object_library("-msse2" "sse2" "aom_dsp_encoder" 346 "AOM_DSP_ENCODER_INTRIN_SSE2") 347 endif() 348 endif() 349 350 if(HAVE_SSSE3) 351 add_asm_library("aom_dsp_common_ssse3" "AOM_DSP_COMMON_ASM_SSSE3") 352 add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_common" 353 "AOM_DSP_COMMON_INTRIN_SSSE3") 354 355 if(CONFIG_AV1_ENCODER) 356 if("${AOM_TARGET_CPU}" STREQUAL "x86_64") 357 list(APPEND AOM_DSP_ENCODER_ASM_SSSE3 358 ${AOM_DSP_ENCODER_ASM_SSSE3_X86_64}) 359 endif() 360 add_asm_library("aom_dsp_encoder_ssse3" "AOM_DSP_ENCODER_ASM_SSSE3") 361 add_intrinsics_object_library("-mssse3" "ssse3" "aom_dsp_encoder" 362 "AOM_DSP_ENCODER_INTRIN_SSSE3") 363 endif() 364 endif() 365 366 if(HAVE_SSE4_1) 367 add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_common" 368 "AOM_DSP_COMMON_INTRIN_SSE4_1") 369 if(CONFIG_AV1_ENCODER) 370 add_intrinsics_object_library("-msse4.1" "sse4_1" "aom_dsp_encoder" 371 "AOM_DSP_ENCODER_INTRIN_SSE4_1") 372 endif() 373 endif() 374 375 if(HAVE_AVX AND "${AOM_TARGET_CPU}" STREQUAL "x86_64") 376 if(CONFIG_AV1_ENCODER) 377 add_asm_library("aom_dsp_encoder_avx" "AOM_DSP_ENCODER_AVX_ASM_X86_64") 378 endif() 379 endif() 380 381 if(HAVE_AVX2) 382 add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_common" 383 "AOM_DSP_COMMON_INTRIN_AVX2") 384 if(CONFIG_AV1_ENCODER) 385 add_intrinsics_object_library("-mavx2" "avx2" "aom_dsp_encoder" 386 "AOM_DSP_ENCODER_INTRIN_AVX2") 387 endif() 388 endif() 389 390 if(HAVE_NEON) 391 add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon" 392 "aom_dsp_common" "AOM_DSP_COMMON_INTRIN_NEON") 393 if(CONFIG_AV1_ENCODER) 394 add_intrinsics_object_library("${AOM_NEON_INTRIN_FLAG}" "neon" 395 "aom_dsp_encoder" 396 "AOM_DSP_ENCODER_INTRIN_NEON") 397 endif() 398 endif() 399 400 if(HAVE_DSPR2) 401 add_intrinsics_object_library("" "dspr2" "aom_dsp_common" 402 "AOM_DSP_COMMON_INTRIN_DSPR2") 403 endif() 404 405 if(HAVE_MSA) 406 add_intrinsics_object_library("" "msa" "aom_dsp_common" 407 "AOM_DSP_COMMON_INTRIN_MSA") 408 if(CONFIG_AV1_ENCODER) 409 add_intrinsics_object_library("" "msa" "aom_dsp_encoder" 410 "AOM_DSP_ENCODER_INTRIN_MSA") 411 endif() 412 endif() 413 414 target_sources(aom PRIVATE $<TARGET_OBJECTS:aom_dsp>) 415 if(BUILD_SHARED_LIBS) 416 target_sources(aom_static PRIVATE $<TARGET_OBJECTS:aom_dsp>) 417 endif() 418 419 # Pass the new lib targets up to the parent scope instance of 420 # $AOM_LIB_TARGETS. 421 set(AOM_LIB_TARGETS ${AOM_LIB_TARGETS} PARENT_SCOPE) 422endfunction() 423