1*09537850SAkhilesh Sanikop# Copyright 2019 The libgav1 Authors 2*09537850SAkhilesh Sanikop# 3*09537850SAkhilesh Sanikop# Licensed under the Apache License, Version 2.0 (the "License"); 4*09537850SAkhilesh Sanikop# you may not use this file except in compliance with the License. 5*09537850SAkhilesh Sanikop# You may obtain a copy of the License at 6*09537850SAkhilesh Sanikop# 7*09537850SAkhilesh Sanikop# http://www.apache.org/licenses/LICENSE-2.0 8*09537850SAkhilesh Sanikop# 9*09537850SAkhilesh Sanikop# Unless required by applicable law or agreed to in writing, software 10*09537850SAkhilesh Sanikop# distributed under the License is distributed on an "AS IS" BASIS, 11*09537850SAkhilesh Sanikop# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*09537850SAkhilesh Sanikop# See the License for the specific language governing permissions and 13*09537850SAkhilesh Sanikop# limitations under the License. 14*09537850SAkhilesh Sanikop 15*09537850SAkhilesh Sanikopif(LIBGAV1_SRC_DSP_LIBGAV1_DSP_CMAKE_) 16*09537850SAkhilesh Sanikop return() 17*09537850SAkhilesh Sanikopendif() # LIBGAV1_SRC_DSP_LIBGAV1_DSP_CMAKE_ 18*09537850SAkhilesh Sanikopset(LIBGAV1_SRC_DSP_LIBGAV1_DSP_CMAKE_ 1) 19*09537850SAkhilesh Sanikop 20*09537850SAkhilesh Sanikopinclude("${libgav1_root}/cmake/libgav1_targets.cmake") 21*09537850SAkhilesh Sanikop 22*09537850SAkhilesh Sanikoplist(APPEND libgav1_dsp_sources 23*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/average_blend.cc" 24*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/average_blend.h" 25*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/cdef.cc" 26*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/cdef.h" 27*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/cdef.inc" 28*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/common.h" 29*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/constants.cc" 30*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/constants.h" 31*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/convolve.cc" 32*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/convolve.h" 33*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/convolve.inc" 34*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/distance_weighted_blend.cc" 35*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/distance_weighted_blend.h" 36*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/dsp.cc" 37*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/dsp.h" 38*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/film_grain.cc" 39*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/film_grain.h" 40*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/film_grain_common.h" 41*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intra_edge.cc" 42*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intra_edge.h" 43*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intrapred_cfl.cc" 44*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intrapred_cfl.h" 45*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intrapred_directional.cc" 46*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intrapred_directional.h" 47*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intrapred_filter.cc" 48*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intrapred_filter.h" 49*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intrapred.cc" 50*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intrapred.h" 51*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intrapred_smooth.cc" 52*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/intrapred_smooth.h" 53*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/inverse_transform.cc" 54*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/inverse_transform.h" 55*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/inverse_transform.inc" 56*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/loop_filter.cc" 57*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/loop_filter.h" 58*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/loop_restoration.cc" 59*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/loop_restoration.h" 60*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/mask_blend.cc" 61*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/mask_blend.h" 62*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/motion_field_projection.cc" 63*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/motion_field_projection.h" 64*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/motion_vector_search.cc" 65*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/motion_vector_search.h" 66*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/obmc.cc" 67*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/obmc.h" 68*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/obmc.inc" 69*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/smooth_weights.inc" 70*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/super_res.cc" 71*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/super_res.h" 72*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/warp.cc" 73*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/warp.h" 74*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/weight_mask.cc" 75*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/weight_mask.h") 76*09537850SAkhilesh Sanikop 77*09537850SAkhilesh Sanikoplist(APPEND libgav1_dsp_sources_avx2 78*09537850SAkhilesh Sanikop ${libgav1_dsp_sources_avx2} 79*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/cdef_avx2.cc" 80*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/cdef_avx2.h" 81*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/convolve_avx2.cc" 82*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/convolve_avx2.h" 83*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/loop_restoration_10bit_avx2.cc" 84*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/loop_restoration_avx2.cc" 85*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/loop_restoration_avx2.h") 86*09537850SAkhilesh Sanikop 87*09537850SAkhilesh Sanikoplist(APPEND libgav1_dsp_sources_neon 88*09537850SAkhilesh Sanikop ${libgav1_dsp_sources_neon} 89*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/average_blend_neon.cc" 90*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/average_blend_neon.h" 91*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/cdef_neon.cc" 92*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/cdef_neon.h" 93*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/common_neon.h" 94*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/convolve_10bit_neon.cc" 95*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/convolve_neon.cc" 96*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/convolve_neon.h" 97*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/distance_weighted_blend_neon.cc" 98*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/distance_weighted_blend_neon.h" 99*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/film_grain_neon.cc" 100*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/film_grain_neon.h" 101*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intra_edge_neon.cc" 102*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intra_edge_neon.h" 103*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intrapred_cfl_neon.cc" 104*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intrapred_cfl_neon.h" 105*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intrapred_directional_neon.h" 106*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intrapred_directional_neon.cc" 107*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intrapred_filter_neon.cc" 108*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intrapred_filter_neon.h" 109*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intrapred_neon.cc" 110*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intrapred_neon.h" 111*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intrapred_smooth_neon.cc" 112*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/intrapred_smooth_neon.h" 113*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/inverse_transform_10bit_neon.cc" 114*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/inverse_transform_neon.cc" 115*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/inverse_transform_neon.h" 116*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/loop_filter_10bit_neon.cc" 117*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/loop_filter_neon.cc" 118*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/loop_filter_neon.h" 119*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/loop_restoration_10bit_neon.cc" 120*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/loop_restoration_neon.cc" 121*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/loop_restoration_neon.h" 122*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/mask_blend_neon.cc" 123*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/mask_blend_neon.h" 124*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/motion_field_projection_neon.cc" 125*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/motion_field_projection_neon.h" 126*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/motion_vector_search_neon.cc" 127*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/motion_vector_search_neon.h" 128*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/obmc_neon.cc" 129*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/obmc_neon.h" 130*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/super_res_neon.cc" 131*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/super_res_neon.h" 132*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/warp_neon.cc" 133*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/warp_neon.h" 134*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/weight_mask_neon.cc" 135*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/arm/weight_mask_neon.h") 136*09537850SAkhilesh Sanikop 137*09537850SAkhilesh Sanikoplist(APPEND libgav1_dsp_sources_sse4 138*09537850SAkhilesh Sanikop ${libgav1_dsp_sources_sse4} 139*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/average_blend_sse4.cc" 140*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/average_blend_sse4.h" 141*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/common_sse4.h" 142*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/cdef_sse4.cc" 143*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/cdef_sse4.h" 144*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/convolve_sse4.cc" 145*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/convolve_sse4.h" 146*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/convolve_sse4.inc" 147*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/distance_weighted_blend_sse4.cc" 148*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/distance_weighted_blend_sse4.h" 149*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/film_grain_sse4.cc" 150*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/film_grain_sse4.h" 151*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intra_edge_sse4.cc" 152*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intra_edge_sse4.h" 153*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intrapred_cfl_sse4.cc" 154*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intrapred_cfl_sse4.h" 155*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intrapred_directional_sse4.cc" 156*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intrapred_directional_sse4.h" 157*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intrapred_filter_sse4.cc" 158*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intrapred_filter_sse4.h" 159*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intrapred_sse4.cc" 160*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intrapred_sse4.h" 161*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intrapred_smooth_sse4.cc" 162*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/intrapred_smooth_sse4.h" 163*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/inverse_transform_sse4.cc" 164*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/inverse_transform_sse4.h" 165*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/loop_filter_sse4.cc" 166*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/loop_filter_sse4.h" 167*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/loop_restoration_10bit_sse4.cc" 168*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/loop_restoration_sse4.cc" 169*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/loop_restoration_sse4.h" 170*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/mask_blend_sse4.cc" 171*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/mask_blend_sse4.h" 172*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/motion_field_projection_sse4.cc" 173*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/motion_field_projection_sse4.h" 174*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/motion_vector_search_sse4.cc" 175*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/motion_vector_search_sse4.h" 176*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/obmc_sse4.cc" 177*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/obmc_sse4.h" 178*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/super_res_sse4.cc" 179*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/super_res_sse4.h" 180*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/transpose_sse4.h" 181*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/warp_sse4.cc" 182*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/warp_sse4.h" 183*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/weight_mask_sse4.cc" 184*09537850SAkhilesh Sanikop "${libgav1_source}/dsp/x86/weight_mask_sse4.h") 185*09537850SAkhilesh Sanikop 186*09537850SAkhilesh Sanikopmacro(libgav1_add_dsp_targets) 187*09537850SAkhilesh Sanikop unset(dsp_sources) 188*09537850SAkhilesh Sanikop list(APPEND dsp_sources ${libgav1_dsp_sources} 189*09537850SAkhilesh Sanikop ${libgav1_dsp_sources_neon} 190*09537850SAkhilesh Sanikop ${libgav1_dsp_sources_avx2} 191*09537850SAkhilesh Sanikop ${libgav1_dsp_sources_sse4}) 192*09537850SAkhilesh Sanikop 193*09537850SAkhilesh Sanikop libgav1_add_library(NAME 194*09537850SAkhilesh Sanikop libgav1_dsp 195*09537850SAkhilesh Sanikop TYPE 196*09537850SAkhilesh Sanikop OBJECT 197*09537850SAkhilesh Sanikop SOURCES 198*09537850SAkhilesh Sanikop ${dsp_sources} 199*09537850SAkhilesh Sanikop DEFINES 200*09537850SAkhilesh Sanikop ${libgav1_defines} 201*09537850SAkhilesh Sanikop $<$<CONFIG:Debug>:LIBGAV1_ENABLE_ALL_DSP_FUNCTIONS> 202*09537850SAkhilesh Sanikop INCLUDES 203*09537850SAkhilesh Sanikop ${libgav1_include_paths}) 204*09537850SAkhilesh Sanikopendmacro() 205