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

list(APPEND armnnNeonBackendWorkloads_sources
    NeonAbsWorkload.cpp
    NeonAbsWorkload.hpp
    NeonActivationWorkload.cpp
    NeonActivationWorkload.hpp
    NeonAdditionWorkload.cpp
    NeonAdditionWorkload.hpp
    NeonArgMinMaxWorkload.cpp
    NeonArgMinMaxWorkload.hpp
    NeonBatchMatMulWorkload.cpp
    NeonBatchMatMulWorkload.hpp
    NeonBatchNormalizationWorkload.cpp
    NeonBatchNormalizationWorkload.hpp
    NeonBatchToSpaceNdWorkload.cpp
    NeonBatchToSpaceNdWorkload.hpp
    NeonCastWorkload.cpp
    NeonCastWorkload.hpp
    NeonChannelShuffleWorkload.cpp
    NeonChannelShuffleWorkload.hpp
    NeonComparisonWorkload.cpp
    NeonComparisonWorkload.hpp
    NeonConcatWorkload.cpp
    NeonConcatWorkload.hpp
    NeonConstantWorkload.cpp
    NeonConstantWorkload.hpp
    NeonConvertFp16ToFp32Workload.cpp
    NeonConvertFp16ToFp32Workload.hpp
    NeonConvertFp32ToFp16Workload.cpp
    NeonConvertFp32ToFp16Workload.hpp
    NeonConvolution2dWorkload.cpp
    NeonConvolution2dWorkload.hpp
    NeonConvolution3dWorkload.cpp
    NeonConvolution3dWorkload.hpp
    NeonDepthToSpaceWorkload.cpp
    NeonDepthToSpaceWorkload.hpp
    NeonDepthwiseConvolutionWorkload.cpp
    NeonDepthwiseConvolutionWorkload.hpp
    NeonDequantizeWorkload.cpp
    NeonDequantizeWorkload.hpp
    NeonDetectionPostProcessWorkload.cpp
    NeonDetectionPostProcessWorkload.hpp
    NeonElementwiseBinaryWorkload.cpp
    NeonElementwiseBinaryWorkload.hpp
    NeonExpWorkload.cpp
    NeonExpWorkload.hpp
    NeonFillWorkload.cpp
    NeonFillWorkload.hpp
    NeonFloorFloatWorkload.cpp
    NeonFloorFloatWorkload.hpp
    NeonFullyConnectedWorkload.cpp
    NeonFullyConnectedWorkload.hpp
    NeonFusedWorkload.cpp
    NeonFusedWorkload.hpp
    NeonGatherWorkload.cpp
    NeonGatherWorkload.hpp
    NeonGatherNdWorkload.cpp
    NeonGatherNdWorkload.hpp
    NeonInstanceNormalizationWorkload.cpp
    NeonInstanceNormalizationWorkload.hpp
    NeonL2NormalizationFloatWorkload.cpp
    NeonL2NormalizationFloatWorkload.hpp
    NeonLogWorkload.cpp
    NeonLogWorkload.hpp
    NeonLogicalAndWorkload.cpp
    NeonLogicalAndWorkload.hpp
    NeonLogicalNotWorkload.cpp
    NeonLogicalNotWorkload.hpp
    NeonLogicalOrWorkload.cpp
    NeonLogicalOrWorkload.hpp
    NeonLogSoftmaxWorkload.cpp
    NeonLogSoftmaxWorkload.hpp
    NeonLstmFloatWorkload.cpp
    NeonLstmFloatWorkload.hpp
    NeonMaximumWorkload.cpp
    NeonMaximumWorkload.hpp
    NeonMeanWorkload.cpp
    NeonMeanWorkload.hpp
    NeonMinimumWorkload.cpp
    NeonMinimumWorkload.hpp
    NeonMultiplicationWorkload.cpp
    NeonMultiplicationWorkload.hpp
    NeonDivisionWorkload.cpp
    NeonDivisionWorkload.hpp
    NeonNegWorkload.cpp
    NeonNegWorkload.hpp
    NeonNormalizationFloatWorkload.cpp
    NeonNormalizationFloatWorkload.hpp
    NeonPadWorkload.cpp
    NeonPadWorkload.hpp
    NeonPermuteWorkload.cpp
    NeonPermuteWorkload.hpp
    NeonPooling2dWorkload.cpp
    NeonPooling2dWorkload.hpp
    NeonPooling3dWorkload.hpp
    NeonPooling3dWorkload.cpp
    NeonPreluWorkload.cpp
    NeonPreluWorkload.hpp
    NeonQLstmWorkload.cpp
    NeonQLstmWorkload.hpp
    NeonQuantizedLstmWorkload.cpp
    NeonQuantizedLstmWorkload.hpp
    NeonQuantizeWorkload.cpp
    NeonQuantizeWorkload.hpp
    NeonRankWorkload.hpp
    NeonReduceWorkload.cpp
    NeonReduceWorkload.hpp
    NeonReshapeWorkload.cpp
    NeonReshapeWorkload.hpp
    NeonResizeWorkload.cpp
    NeonResizeWorkload.hpp
    NeonReverseV2Workload.cpp
    NeonReverseV2Workload.hpp
    NeonRsqrtWorkload.cpp
    NeonRsqrtWorkload.hpp
    NeonSinWorkload.cpp
    NeonSinWorkload.hpp
    NeonSliceWorkload.cpp
    NeonSliceWorkload.hpp
    NeonSoftmaxWorkload.cpp
    NeonSoftmaxWorkload.hpp
    NeonSpaceToBatchNdWorkload.cpp
    NeonSpaceToBatchNdWorkload.hpp
    NeonSpaceToDepthWorkload.cpp
    NeonSpaceToDepthWorkload.hpp
    NeonSplitterWorkload.cpp
    NeonSplitterWorkload.hpp
    NeonSqrtWorkload.cpp
    NeonSqrtWorkload.hpp
    NeonStackWorkload.cpp
    NeonStackWorkload.hpp
    NeonStridedSliceWorkload.cpp
    NeonStridedSliceWorkload.hpp
    NeonSubtractionWorkload.cpp
    NeonSubtractionWorkload.hpp
    NeonTileWorkload.cpp
    NeonTileWorkload.hpp
    NeonTransposeConvolution2dWorkload.cpp
    NeonTransposeConvolution2dWorkload.hpp
    NeonTransposeWorkload.cpp
    NeonTransposeWorkload.hpp
    NeonUnidirectionalSequenceLstmFloatWorkload.cpp
    NeonUnidirectionalSequenceLstmFloatWorkload.hpp
    NeonUnidirectionalSequenceLstmWorkload.cpp
    NeonUnidirectionalSequenceLstmWorkload.hpp
    NeonWorkloads.hpp
    NeonWorkloadUtils.hpp
)

add_library(armnnNeonBackendWorkloads OBJECT ${armnnNeonBackendWorkloads_sources})
target_include_directories(armnnNeonBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/src/armnn)
target_include_directories(armnnNeonBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/src/armnnUtils)
target_include_directories(armnnNeonBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/src/backends)
target_include_directories(armnnNeonBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/src/profiling)
target_include_directories(armnnNeonBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/profiling/common/include)
target_include_directories(armnnNeonBackendWorkloads PRIVATE ${PROJECT_SOURCE_DIR}/profiling/client/include)
