#
# 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
    BatchMatMulImpl.cpp
    BatchMatMulImpl.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
    RefBatchMatMulWorkload.cpp
    RefBatchMatMulWorkload.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
    RefConvertFp16ToFp32Workload.cpp
    RefConvertFp16ToFp32Workload.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)
