#
# Copyright © 2017 Arm Ltd. All rights reserved.
# SPDX-License-Identifier: MIT
#

list(APPEND armnnRefBackendWorkloads_sources
    Activation.cpp
    Activation.hpp
    BaseIterator.hpp
    BatchNormImpl.hpp
    BatchToSpaceNd.cpp
    BatchToSpaceNd.hpp
    Broadcast.cpp
    Broadcast.hpp
    ConvImpl.cpp
    ConvImpl.hpp
    Debug.cpp
    Debug.hpp
    Decoders.hpp
    DetectionPostProcess.cpp
    DetectionPostProcess.hpp
    ElementwiseFunction.cpp
    ElementwiseFunction.hpp
    Encoders.hpp
    FullyConnected.cpp
    FullyConnected.hpp
    Gather.cpp
    Gather.hpp
    LstmUtils.hpp
    Maximum.hpp
    Merger.hpp
    Merger.cpp
    Minimum.hpp
    Pad.cpp
    Pad.hpp
    Pooling2d.cpp
    Pooling2d.hpp
    RefActivationWorkload.cpp
    RefActivationWorkload.hpp
    RefBatchNormalizationFloat32Workload.cpp
    RefBatchNormalizationFloat32Workload.hpp
    RefBatchNormalizationUint8Workload.cpp
    RefBatchNormalizationUint8Workload.hpp
    RefBatchToSpaceNdFloat32Workload.cpp
    RefBatchToSpaceNdFloat32Workload.hpp
    RefBatchToSpaceNdUint8Workload.cpp
    RefBatchToSpaceNdUint8Workload.hpp
    RefConstantWorkload.cpp
    RefConstantWorkload.hpp
    RefConvertFp16ToFp32Workload.cpp
    RefConvertFp16ToFp32Workload.hpp
    RefConvertFp32ToFp16Workload.cpp
    RefConvertFp32ToFp16Workload.hpp
    RefConvolution2dWorkload.cpp
    RefConvolution2dWorkload.hpp
    RefElementwiseWorkload.cpp
    RefElementwiseWorkload.hpp
    RefDebugWorkload.cpp
    RefDebugWorkload.hpp
    RefDepthwiseConvolution2dWorkload.cpp
    RefDepthwiseConvolution2dWorkload.hpp
    RefDequantizeWorkload.cpp
    RefDequantizeWorkload.hpp
    RefDetectionPostProcessUint8Workload.cpp
    RefDetectionPostProcessUint8Workload.hpp
    RefDetectionPostProcessFloat32Workload.cpp
    RefDetectionPostProcessFloat32Workload.hpp
    RefFakeQuantizationFloat32Workload.cpp
    RefFakeQuantizationFloat32Workload.hpp
    RefFloorFloat32Workload.cpp
    RefFloorFloat32Workload.hpp
    RefFullyConnectedWorkload.cpp
    RefFullyConnectedWorkload.hpp
    RefGatherWorkload.cpp
    RefGatherWorkload.hpp
    RefL2NormalizationFloat32Workload.cpp
    RefL2NormalizationFloat32Workload.hpp
    RefLstmWorkload.cpp
    RefLstmWorkload.hpp
    RefConcatWorkload.cpp
    RefConcatWorkload.hpp
    RefNormalizationFloat32Workload.cpp
    RefNormalizationFloat32Workload.hpp
    RefPadWorkload.cpp
    RefPadWorkload.hpp
    RefPermuteWorkload.cpp
    RefPermuteWorkload.hpp
    RefPooling2dFloat32Workload.cpp
    RefPooling2dFloat32Workload.hpp
    RefPooling2dUint8Workload.cpp
    RefPooling2dUint8Workload.hpp
    RefQuantizeWorkload.cpp
    RefQuantizeWorkload.hpp
    RefReshapeWorkload.cpp
    RefReshapeWorkload.hpp
    RefResizeBilinearFloat32Workload.cpp
    RefResizeBilinearFloat32Workload.hpp
    RefResizeBilinearUint8Workload.cpp
    RefResizeBilinearUint8Workload.hpp
    RefRsqrtFloat32Workload.cpp
    RefRsqrtFloat32Workload.hpp
    RefSoftmaxFloat32Workload.cpp
    RefSoftmaxFloat32Workload.hpp
    RefSoftmaxUint8Workload.cpp
    RefSoftmaxUint8Workload.hpp
    RefSpaceToBatchNdWorkload.cpp
    RefSpaceToBatchNdWorkload.hpp
    RefSplitterFloat32Workload.cpp
    RefSplitterFloat32Workload.hpp
    RefSplitterUint8Workload.cpp
    RefSplitterUint8Workload.hpp
    RefStridedSliceWorkload.cpp
    RefStridedSliceWorkload.hpp
    RefWorkloads.hpp
    RefWorkloadUtils.hpp
    ResizeBilinear.cpp
    ResizeBilinear.hpp
    Rsqrt.cpp
    Rsqrt.hpp
    Softmax.cpp
    Softmax.hpp
    SpaceToBatchNd.hpp
    SpaceToBatchNd.cpp
    Splitter.hpp
    StridedSlice.hpp
    StridedSlice.cpp
    StringMapping.cpp
    StringMapping.hpp
    TensorBufferArrayView.hpp
    Mean.cpp
    Mean.hpp
    RefMeanFloat32Workload.cpp
    RefMeanFloat32Workload.hpp
    RefMeanUint8Workload.cpp
    RefMeanUint8Workload.hpp
)

add_library(armnnRefBackendWorkloads OBJECT ${armnnRefBackendWorkloads_sources})
target_include_directories(armnnRefBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
target_include_directories(armnnRefBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils)
target_include_directories(armnnRefBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
