#
# Copyright(c) 2019 Intel Corporation
#
# 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 https://www.aomedia.org/license/software-license. 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 https://www.aomedia.org/license/patent-license.
#

# C_DEFAULT Directory CMakeLists.txt

# Include Encoder Subdirectories
include_directories(../../../API
        ../../Encoder/Codec
        ${PROJECT_SOURCE_DIR}/Source/Lib/Encoder/C_DEFAULT/
        ${PROJECT_SOURCE_DIR}/third_party/fastfeat/
        ${PROJECT_SOURCE_DIR}/Source/Lib/Encoder/Globals/
        )

if(NOT COMPILE_C_ONLY AND HAVE_X86_PLATFORM)
# Include Encoder Subdirectories
include_directories(
        ${PROJECT_SOURCE_DIR}/Source/Lib/Encoder/ASM_SSE2/
        ${PROJECT_SOURCE_DIR}/Source/Lib/Encoder/ASM_SSSE3/
        ${PROJECT_SOURCE_DIR}/Source/Lib/Encoder/ASM_SSE4_1/
        ${PROJECT_SOURCE_DIR}/Source/Lib/Encoder/ASM_AVX2/
        ${PROJECT_SOURCE_DIR}/Source/Lib/Encoder/ASM_AVX512/
        )
endif ()

set(all_files
        EbAdaptiveMotionVectorPrediction.c
        EbAdaptiveMotionVectorPrediction.h
        EbCdefProcess.c
        EbCdefProcess.h
        EbCodingLoop.c
        EbCodingLoop.h
        EbCodingUnit.c
        EbCodingUnit.h
        EbComputeMean.h
        EbComputeSAD.h
        EbDeblockingFilter.c
        EbDeblockingFilter.h
        EbDlfProcess.c
        EbDlfProcess.h
        EbEncCdef.c
        EbEncCdef.h
        EbEncDecProcess.c
        EbEncDecProcess.h
        EbEncDecResults.c
        EbEncDecResults.h
        EbEncDecSegments.c
        EbEncDecSegments.h
        EbEncDecTasks.c
        EbEncDecTasks.h
        EbEncInterPrediction.c
        EbEncInterPrediction.h
        EbEncIntraPrediction.c
        EbEncIntraPrediction.h
        EbEncWarpedMotion.c
        EbEncWarpedMotion.h
        EbEncodeContext.c
        EbEncodeContext.h
        EbEntropyCoding.c
        EbEntropyCoding.h
        EbEntropyCodingObject.h
        EbEntropyCodingProcess.c
        EbEntropyCodingProcess.h
        EbEntropyCodingResults.c
        EbEntropyCodingResults.h
        EbEntropyCodingUtil.h
        EbFullLoop.c
        EbFullLoop.h
        EbGlobalMotionEstimation.c
        EbGlobalMotionEstimation.h
        EbGlobalMotionEstimationCost.c
        EbGlobalMotionEstimationCost.h
        EbInitialRateControlProcess.c
        EbInitialRateControlProcess.h
        EbInitialRateControlReorderQueue.c
        EbInitialRateControlReorderQueue.h
        EbInitialRateControlResults.c
        EbInitialRateControlResults.h
        EbLambdaRateTables.h
        EbMdRateEstimation.c
        EbMdRateEstimation.h
        EbMeSadCalculation.c
        EbMeSadCalculation.h
        EbModeDecision.c
        EbModeDecision.h
        EbModeDecisionConfiguration.h
        EbModeDecisionConfigurationProcess.c
        EbModeDecisionConfigurationProcess.h
        EbModeDecisionProcess.c
        EbModeDecisionProcess.h
        EbModeDecisionSegments.h
        EbMotionEstimation.c
        EbMotionEstimation.h
        EbMotionEstimationContext.c
        EbMotionEstimationContext.h
        EbMotionEstimationLcuResults.h
        EbMotionEstimationProcess.c
        EbMotionEstimationProcess.h
        EbMotionEstimationResults.c
        EbMotionEstimationResults.h
        EbMotionVectorUnit.h
        EbMvMerge.h
        EbNeighborArrays.c
        EbNeighborArrays.h
        EbPacketizationProcess.c
        EbPacketizationProcess.h
        EbPacketizationReorderQueue.c
        EbPacketizationReorderQueue.h
        EbPictureAnalysisProcess.c
        EbPictureAnalysisProcess.h
        EbPictureAnalysisResults.c
        EbPictureAnalysisResults.h
        EbPictureControlSet.c
        EbPictureControlSet.h
        EbPictureDecisionProcess.c
        EbPictureDecisionProcess.h
        EbPictureDecisionQueue.c
        EbPictureDecisionQueue.h
        EbPictureDecisionReorderQueue.c
        EbPictureDecisionReorderQueue.h
        EbPictureDecisionResults.c
        EbPictureDecisionResults.h
        EbPictureDemuxResults.c
        EbPictureDemuxResults.h
        EbPictureManagerProcess.c
        EbPictureManagerProcess.h
        EbPictureManagerQueue.c
        EbPictureManagerQueue.h
        EbPredictionStructure.c
        EbPredictionStructure.h
        EbPredictionUnit.h
        EbProductCodingLoop.c
        EbPsnr.c
        EbPsnr.h
        EbRateControlProcess.c
        EbRateControlProcess.h
        EbRateControlResults.c
        EbRateControlResults.h
        EbRateControlTables.c
        EbRateControlTables.h
        EbRateControlTasks.c
        EbRateControlTasks.h
        EbRateDistortionCost.c
        EbRateDistortionCost.h
        EbReferenceObject.c
        EbReferenceObject.h
        EbResize.c
        EbResize.h
        EbResourceCoordinationProcess.c
        EbResourceCoordinationProcess.h
        EbResourceCoordinationResults.c
        EbResourceCoordinationResults.h
        EbRestProcess.c
        EbRestProcess.h
        EbRestorationPick.c
        EbRestorationPick.h
        EbSegmentation.c
        EbSegmentation.h
        EbSequenceControlSet.c
        EbSequenceControlSet.h
        EbSourceBasedOperationsProcess.c
        EbSourceBasedOperationsProcess.h
        EbTemporalFiltering.c
        EbTemporalFiltering.h
        EbTransformUnit.h
        EbTransforms.c
        EbTransforms.h
        aom_dsp_rtcd.c
        aom_dsp_rtcd.h
        av1me.c
        av1me.h
        corner_detect.c
        corner_detect.h
        corner_match.c
        corner_match.h
        dwt.c
        dwt.h
        encoder.h
        fft.c
        fft_common.h
        firstpass.c
        firstpass.h
        global_motion.c
        global_motion.h
        hash.c
        hash.h
        hash_motion.c
        hash_motion.h
        k_means_template.h
        level.c
        level.h
        mathutils.h
        mcomp.c
        mcomp.h
        mv.h
        noise_model.c
        noise_model.h
        noise_util.c
        noise_util.h
        palette.c
        pass2_strategy.c
        pass2_strategy.h
        random.h
        ransac.c
        ransac.h
        vector.c
        vector.h
        )

add_library(ENCODER_CODEC OBJECT ${all_files})
