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