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_LIBGAV1_DECODER_CMAKE_) 16*09537850SAkhilesh Sanikop return() 17*09537850SAkhilesh Sanikopendif() # LIBGAV1_SRC_LIBGAV1_DECODER_CMAKE_ 18*09537850SAkhilesh Sanikopset(LIBGAV1_SRC_LIBGAV1_DECODER_CMAKE_ 1) 19*09537850SAkhilesh Sanikop 20*09537850SAkhilesh Sanikoplist(APPEND libgav1_decoder_sources 21*09537850SAkhilesh Sanikop "${libgav1_source}/buffer_pool.cc" 22*09537850SAkhilesh Sanikop "${libgav1_source}/buffer_pool.h" 23*09537850SAkhilesh Sanikop "${libgav1_source}/decoder_impl.cc" 24*09537850SAkhilesh Sanikop "${libgav1_source}/decoder_impl.h" 25*09537850SAkhilesh Sanikop "${libgav1_source}/decoder_state.h" 26*09537850SAkhilesh Sanikop "${libgav1_source}/tile_scratch_buffer.cc" 27*09537850SAkhilesh Sanikop "${libgav1_source}/tile_scratch_buffer.h" 28*09537850SAkhilesh Sanikop "${libgav1_source}/film_grain.cc" 29*09537850SAkhilesh Sanikop "${libgav1_source}/film_grain.h" 30*09537850SAkhilesh Sanikop "${libgav1_source}/frame_buffer.cc" 31*09537850SAkhilesh Sanikop "${libgav1_source}/frame_buffer_utils.h" 32*09537850SAkhilesh Sanikop "${libgav1_source}/frame_scratch_buffer.h" 33*09537850SAkhilesh Sanikop "${libgav1_source}/inter_intra_masks.inc" 34*09537850SAkhilesh Sanikop "${libgav1_source}/internal_frame_buffer_list.cc" 35*09537850SAkhilesh Sanikop "${libgav1_source}/internal_frame_buffer_list.h" 36*09537850SAkhilesh Sanikop "${libgav1_source}/loop_restoration_info.cc" 37*09537850SAkhilesh Sanikop "${libgav1_source}/loop_restoration_info.h" 38*09537850SAkhilesh Sanikop "${libgav1_source}/motion_vector.cc" 39*09537850SAkhilesh Sanikop "${libgav1_source}/motion_vector.h" 40*09537850SAkhilesh Sanikop "${libgav1_source}/obu_parser.cc" 41*09537850SAkhilesh Sanikop "${libgav1_source}/obu_parser.h" 42*09537850SAkhilesh Sanikop "${libgav1_source}/post_filter/cdef.cc" 43*09537850SAkhilesh Sanikop "${libgav1_source}/post_filter/deblock.cc" 44*09537850SAkhilesh Sanikop "${libgav1_source}/post_filter/deblock_thresholds.inc" 45*09537850SAkhilesh Sanikop "${libgav1_source}/post_filter/loop_restoration.cc" 46*09537850SAkhilesh Sanikop "${libgav1_source}/post_filter/post_filter.cc" 47*09537850SAkhilesh Sanikop "${libgav1_source}/post_filter/super_res.cc" 48*09537850SAkhilesh Sanikop "${libgav1_source}/post_filter.h" 49*09537850SAkhilesh Sanikop "${libgav1_source}/prediction_mask.cc" 50*09537850SAkhilesh Sanikop "${libgav1_source}/prediction_mask.h" 51*09537850SAkhilesh Sanikop "${libgav1_source}/quantizer.cc" 52*09537850SAkhilesh Sanikop "${libgav1_source}/quantizer.h" 53*09537850SAkhilesh Sanikop "${libgav1_source}/quantizer_tables.inc" 54*09537850SAkhilesh Sanikop "${libgav1_source}/reconstruction.cc" 55*09537850SAkhilesh Sanikop "${libgav1_source}/reconstruction.h" 56*09537850SAkhilesh Sanikop "${libgav1_source}/residual_buffer_pool.cc" 57*09537850SAkhilesh Sanikop "${libgav1_source}/residual_buffer_pool.h" 58*09537850SAkhilesh Sanikop "${libgav1_source}/scan_tables.inc" 59*09537850SAkhilesh Sanikop "${libgav1_source}/symbol_decoder_context.cc" 60*09537850SAkhilesh Sanikop "${libgav1_source}/symbol_decoder_context.h" 61*09537850SAkhilesh Sanikop "${libgav1_source}/symbol_decoder_context_cdfs.inc" 62*09537850SAkhilesh Sanikop "${libgav1_source}/threading_strategy.cc" 63*09537850SAkhilesh Sanikop "${libgav1_source}/threading_strategy.h" 64*09537850SAkhilesh Sanikop "${libgav1_source}/tile.h" 65*09537850SAkhilesh Sanikop "${libgav1_source}/tile/bitstream/mode_info.cc" 66*09537850SAkhilesh Sanikop "${libgav1_source}/tile/bitstream/palette.cc" 67*09537850SAkhilesh Sanikop "${libgav1_source}/tile/bitstream/partition.cc" 68*09537850SAkhilesh Sanikop "${libgav1_source}/tile/bitstream/transform_size.cc" 69*09537850SAkhilesh Sanikop "${libgav1_source}/tile/prediction.cc" 70*09537850SAkhilesh Sanikop "${libgav1_source}/tile/tile.cc" 71*09537850SAkhilesh Sanikop "${libgav1_source}/warp_prediction.cc" 72*09537850SAkhilesh Sanikop "${libgav1_source}/warp_prediction.h" 73*09537850SAkhilesh Sanikop "${libgav1_source}/yuv_buffer.cc" 74*09537850SAkhilesh Sanikop "${libgav1_source}/yuv_buffer.h") 75*09537850SAkhilesh Sanikop 76*09537850SAkhilesh Sanikoplist(APPEND libgav1_api_includes "${libgav1_source}/gav1/decoder.h" 77*09537850SAkhilesh Sanikop "${libgav1_source}/gav1/decoder_buffer.h" 78*09537850SAkhilesh Sanikop "${libgav1_source}/gav1/decoder_settings.h" 79*09537850SAkhilesh Sanikop "${libgav1_source}/gav1/frame_buffer.h" 80*09537850SAkhilesh Sanikop "${libgav1_source}/gav1/status_code.h" 81*09537850SAkhilesh Sanikop "${libgav1_source}/gav1/symbol_visibility.h" 82*09537850SAkhilesh Sanikop "${libgav1_source}/gav1/version.h") 83*09537850SAkhilesh Sanikop 84*09537850SAkhilesh Sanikoplist(APPEND libgav1_api_sources "${libgav1_source}/decoder.cc" 85*09537850SAkhilesh Sanikop "${libgav1_source}/decoder_settings.cc" 86*09537850SAkhilesh Sanikop "${libgav1_source}/status_code.cc" 87*09537850SAkhilesh Sanikop "${libgav1_source}/version.cc" 88*09537850SAkhilesh Sanikop ${libgav1_api_includes}) 89*09537850SAkhilesh Sanikop 90*09537850SAkhilesh Sanikopmacro(libgav1_add_decoder_targets) 91*09537850SAkhilesh Sanikop if(BUILD_SHARED_LIBS) 92*09537850SAkhilesh Sanikop if(MSVC OR WIN32) 93*09537850SAkhilesh Sanikop # In order to produce a DLL and import library the Windows tools require 94*09537850SAkhilesh Sanikop # that the exported symbols are part of the DLL target. The unfortunate 95*09537850SAkhilesh Sanikop # side effect of this is that a single configuration cannot output both 96*09537850SAkhilesh Sanikop # the static library and the DLL: This results in an either/or situation. 97*09537850SAkhilesh Sanikop # Windows users of the libgav1 build can have a DLL and an import library, 98*09537850SAkhilesh Sanikop # or they can have a static library; they cannot have both from a single 99*09537850SAkhilesh Sanikop # configuration of the build. 100*09537850SAkhilesh Sanikop list(APPEND libgav1_shared_lib_sources ${libgav1_api_sources}) 101*09537850SAkhilesh Sanikop list(APPEND libgav1_static_lib_sources ${libgav1_api_includes}) 102*09537850SAkhilesh Sanikop else() 103*09537850SAkhilesh Sanikop list(APPEND libgav1_shared_lib_sources ${libgav1_api_includes}) 104*09537850SAkhilesh Sanikop list(APPEND libgav1_static_lib_sources ${libgav1_api_sources}) 105*09537850SAkhilesh Sanikop endif() 106*09537850SAkhilesh Sanikop else() 107*09537850SAkhilesh Sanikop list(APPEND libgav1_static_lib_sources ${libgav1_api_sources}) 108*09537850SAkhilesh Sanikop endif() 109*09537850SAkhilesh Sanikop 110*09537850SAkhilesh Sanikop if(use_absl_threading) 111*09537850SAkhilesh Sanikop list(APPEND libgav1_absl_deps absl::base absl::synchronization) 112*09537850SAkhilesh Sanikop endif() 113*09537850SAkhilesh Sanikop 114*09537850SAkhilesh Sanikop libgav1_add_library(NAME libgav1_decoder TYPE OBJECT SOURCES 115*09537850SAkhilesh Sanikop ${libgav1_decoder_sources} DEFINES ${libgav1_defines} 116*09537850SAkhilesh Sanikop INCLUDES ${libgav1_include_paths}) 117*09537850SAkhilesh Sanikop 118*09537850SAkhilesh Sanikop libgav1_add_library(NAME 119*09537850SAkhilesh Sanikop libgav1_static 120*09537850SAkhilesh Sanikop OUTPUT_NAME 121*09537850SAkhilesh Sanikop libgav1 122*09537850SAkhilesh Sanikop TYPE 123*09537850SAkhilesh Sanikop STATIC 124*09537850SAkhilesh Sanikop SOURCES 125*09537850SAkhilesh Sanikop ${libgav1_static_lib_sources} 126*09537850SAkhilesh Sanikop DEFINES 127*09537850SAkhilesh Sanikop ${libgav1_defines} 128*09537850SAkhilesh Sanikop INCLUDES 129*09537850SAkhilesh Sanikop ${libgav1_include_paths} 130*09537850SAkhilesh Sanikop LIB_DEPS 131*09537850SAkhilesh Sanikop ${libgav1_absl_deps} 132*09537850SAkhilesh Sanikop OBJLIB_DEPS 133*09537850SAkhilesh Sanikop libgav1_dsp 134*09537850SAkhilesh Sanikop libgav1_decoder 135*09537850SAkhilesh Sanikop libgav1_utils 136*09537850SAkhilesh Sanikop PUBLIC_INCLUDES 137*09537850SAkhilesh Sanikop ${libgav1_source}) 138*09537850SAkhilesh Sanikop 139*09537850SAkhilesh Sanikop if(BUILD_SHARED_LIBS) 140*09537850SAkhilesh Sanikop libgav1_add_library(NAME 141*09537850SAkhilesh Sanikop libgav1_shared 142*09537850SAkhilesh Sanikop OUTPUT_NAME 143*09537850SAkhilesh Sanikop libgav1 144*09537850SAkhilesh Sanikop TYPE 145*09537850SAkhilesh Sanikop SHARED 146*09537850SAkhilesh Sanikop SOURCES 147*09537850SAkhilesh Sanikop ${libgav1_shared_lib_sources} 148*09537850SAkhilesh Sanikop DEFINES 149*09537850SAkhilesh Sanikop ${libgav1_defines} 150*09537850SAkhilesh Sanikop INCLUDES 151*09537850SAkhilesh Sanikop ${libgav1_include_paths} 152*09537850SAkhilesh Sanikop LIB_DEPS 153*09537850SAkhilesh Sanikop libgav1_static 154*09537850SAkhilesh Sanikop PUBLIC_INCLUDES 155*09537850SAkhilesh Sanikop ${libgav1_source}) 156*09537850SAkhilesh Sanikop endif() 157*09537850SAkhilesh Sanikopendmacro() 158