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

list(APPEND armnnRefBackendWorkloads_sources
    Abs.hpp
    Activation.cpp
    Activation.hpp
    ArgMinMax.cpp
    ArgMinMax.hpp
    BaseIterator.hpp
    BatchNormImpl.cpp
    BatchNormImpl.hpp
    BatchToSpaceNd.cpp
    BatchToSpaceNd.hpp
    Broadcast.cpp
    Broadcast.hpp
    ConvImpl.cpp
    ConvImpl.hpp
    Conv3dImpl.cpp
    Conv3dImpl.hpp
    Debug.cpp
    Debug.hpp
    Decoders.hpp
    DepthToSpace.cpp
    DepthToSpace.hpp
    DetectionPostProcess.cpp
    DetectionPostProcess.hpp
    Dequantize.cpp
    Dequantize.hpp
    ElementwiseFunction.cpp
    ElementwiseFunction.hpp
    Encoders.hpp
    Exp.hpp
    Fill.cpp
    Fill.hpp
    FullyConnected.cpp
    FullyConnected.hpp
    Gather.cpp
    Gather.hpp
    InstanceNorm.cpp
    InstanceNorm.hpp
    Log.hpp
    LogSoftmax.cpp
    LogSoftmax.hpp
    Lstm.cpp
    Lstm.hpp
    LstmUtils.hpp
    LstmUtils.cpp
    Maximum.hpp
    Concatenate.hpp
    Concatenate.cpp
    Minimum.hpp
    MirrorPad.cpp
    MirrorPad.hpp
    Pad.cpp
    Pad.hpp
    Pooling2d.cpp
    Pooling2d.hpp
    Pooling3d.cpp
    Pooling3d.hpp
    PreluImpl.cpp
    PreluImpl.hpp
    Reduce.cpp
    Reduce.hpp
    RefActivationWorkload.cpp
    RefActivationWorkload.hpp
    RefArgMinMaxWorkload.cpp
    RefArgMinMaxWorkload.hpp
    RefBaseWorkload.hpp
    RefBatchNormalizationWorkload.cpp
    RefBatchNormalizationWorkload.hpp
    RefBatchToSpaceNdWorkload.cpp
    RefBatchToSpaceNdWorkload.hpp
    RefCastWorkload.cpp
    RefCastWorkload.hpp
    RefChannelShuffleWorkload.cpp
    RefChannelShuffleWorkload.hpp
    RefShapeWorkload.hpp
    RefComparisonWorkload.cpp
    RefComparisonWorkload.hpp
    RefConcatWorkload.cpp
    RefConcatWorkload.hpp
    RefConstantWorkload.cpp
    RefConstantWorkload.hpp
    RefConvertBf16ToFp32Workload.cpp
    RefConvertBf16ToFp32Workload.hpp
    RefConvertFp16ToFp32Workload.cpp
    RefConvertFp16ToFp32Workload.hpp
    RefConvertFp32ToBf16Workload.cpp
    RefConvertFp32ToBf16Workload.hpp
    RefConvertFp32ToFp16Workload.cpp
    RefConvertFp32ToFp16Workload.hpp
    RefConvolution2dWorkload.cpp
    RefConvolution2dWorkload.hpp
    RefConvolution3dWorkload.cpp
    RefConvolution3dWorkload.hpp
    RefElementwiseWorkload.cpp
    RefElementwiseWorkload.hpp
    RefDebugWorkload.cpp
    RefDebugWorkload.hpp
    RefDepthToSpaceWorkload.cpp
    RefDepthToSpaceWorkload.hpp
    RefDepthwiseConvolution2dWorkload.cpp
    RefDepthwiseConvolution2dWorkload.hpp
    RefDequantizeWorkload.cpp
    RefDequantizeWorkload.hpp
    RefDetectionPostProcessWorkload.cpp
    RefDetectionPostProcessWorkload.hpp
    RefElementwiseUnaryWorkload.cpp
    RefElementwiseUnaryWorkload.hpp
    RefFakeQuantizationFloat32Workload.cpp
    RefFakeQuantizationFloat32Workload.hpp
    RefFillWorkload.cpp
    RefFillWorkload.hpp
    RefFloorWorkload.cpp
    RefFloorWorkload.hpp
    RefFullyConnectedWorkload.cpp
    RefFullyConnectedWorkload.hpp
    RefGatherNdWorkload.cpp
    RefGatherNdWorkload.hpp
    RefGatherWorkload.cpp
    RefGatherWorkload.hpp
    RefInstanceNormalizationWorkload.cpp
    RefInstanceNormalizationWorkload.hpp
    RefL2NormalizationWorkload.cpp
    RefL2NormalizationWorkload.hpp
    RefLogicalBinaryWorkload.cpp
    RefLogicalBinaryWorkload.hpp
    RefLogicalUnaryWorkload.cpp
    RefLogicalUnaryWorkload.hpp
    RefLogSoftmaxWorkload.cpp
    RefLogSoftmaxWorkload.hpp
    RefLstmWorkload.cpp
    RefLstmWorkload.hpp
    RefMeanWorkload.cpp
    RefMeanWorkload.hpp
    RefNormalizationWorkload.cpp
    RefNormalizationWorkload.hpp
    RefPadWorkload.cpp
    RefPadWorkload.hpp
    RefPermuteWorkload.cpp
    RefPermuteWorkload.hpp
    RefPooling2dWorkload.cpp
    RefPooling2dWorkload.hpp
    RefPooling3dWorkload.cpp
    RefPooling3dWorkload.hpp
    RefPreluWorkload.cpp
    RefPreluWorkload.hpp
    RefQuantizeWorkload.cpp
    RefQuantizeWorkload.hpp
    RefQLstmWorkload.cpp
    RefQLstmWorkload.hpp
    RefRankWorkload.hpp
    RefReduceWorkload.cpp
    RefReduceWorkload.hpp
    RefReshapeWorkload.cpp
    RefReshapeWorkload.hpp
    RefResizeWorkload.cpp
    RefResizeWorkload.hpp
    RefShapeWorkload.hpp
    RefSliceWorkload.cpp
    RefSliceWorkload.hpp
    RefSoftmaxWorkload.cpp
    RefSoftmaxWorkload.hpp
    RefSpaceToBatchNdWorkload.cpp
    RefSpaceToBatchNdWorkload.hpp
    RefSpaceToDepthWorkload.cpp
    RefSpaceToDepthWorkload.hpp
    RefSplitterWorkload.cpp
    RefSplitterWorkload.hpp
    RefStackWorkload.cpp
    RefStackWorkload.hpp
    RefStridedSliceWorkload.cpp
    RefStridedSliceWorkload.hpp
    RefTransposeConvolution2dWorkload.cpp
    RefTransposeConvolution2dWorkload.hpp
    RefTransposeWorkload.cpp
    RefTransposeWorkload.hpp
    RefUnidirectionalSequenceLstmWorkload.cpp
    RefUnidirectionalSequenceLstmWorkload.hpp
    RefWorkloads.hpp
    RefWorkloadUtils.hpp
    Resize.cpp
    Resize.hpp
    Rsqrt.hpp
    Sin.hpp
    Slice.cpp
    Slice.hpp
    Softmax.cpp
    Softmax.hpp
    SpaceToBatchNd.hpp
    SpaceToBatchNd.cpp
    SpaceToDepth.hpp
    SpaceToDepth.cpp
    Splitter.hpp
    Splitter.cpp
    Sqrt.hpp
    Stack.cpp
    Stack.hpp
    StridedSlice.hpp
    StridedSlice.cpp
    StringMapping.cpp
    StringMapping.hpp
    TensorBufferArrayView.hpp
    TransposeConvolution2d.cpp
    TransposeConvolution2d.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)
target_include_directories(armnnRefBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
target_include_directories(armnnRefBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
target_include_directories(armnnRefBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
