# Copyright (c) 2023-2024 Arm Limited.
#
# SPDX-License-Identifier: MIT
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
# sell copies of the Software, and to permit persons to whom the Software is
# furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all
# copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
# SOFTWARE.

target_sources(
  arm_compute_validation_framework
  PRIVATE validation/Validation.cpp
          validation/Helpers.cpp
          validation/reference/BoundingBoxTransform.cpp
          validation/reference/GEMMReshapeRHSMatrix.cpp
          validation/reference/ChannelShuffle.cpp
          validation/reference/Logical.cpp
          validation/reference/PoolingLayer.cpp
          validation/reference/BitwiseNot.cpp
          validation/reference/Conv3D.cpp
          validation/reference/GEMMReshapeLHSMatrix.cpp
          validation/reference/ComputeAllAnchors.cpp
          validation/reference/DepthConcatenateLayer.cpp
          validation/reference/TableLookup.cpp
          validation/reference/ROIPoolingLayer.cpp
          validation/reference/SliceOperations.cpp
          validation/reference/GEMMLowp.cpp
          validation/reference/Unstack.cpp
          validation/reference/Pooling3dLayer.cpp
          validation/reference/BitwiseOr.cpp
          validation/reference/ReshapeLayer.cpp
          validation/reference/SoftmaxLayer.cpp
          validation/reference/Gather.cpp
          validation/reference/Utils.cpp
          validation/reference/Accumulate.cpp
          validation/reference/CropResize.cpp
          validation/reference/ReductionOperation.cpp
          validation/reference/ConcatenateLayer.cpp
          validation/reference/PixelWiseMultiplication.cpp
          validation/reference/DepthConvertLayer.cpp
          validation/reference/Erode.cpp
          validation/reference/DepthToSpaceLayer.cpp
          validation/reference/PadLayer.cpp
          validation/reference/MeanStdDevNormalizationLayer.cpp
          validation/reference/BitwiseXor.cpp
          validation/reference/GEMM.cpp
          validation/reference/NormalizePlanarYUVLayer.cpp
          validation/reference/FuseBatchNormalization.cpp
          validation/reference/BitwiseAnd.cpp
          validation/reference/SpaceToDepth.cpp
          validation/reference/NonMaximaSuppression.cpp
          validation/reference/Reverse.cpp
          validation/reference/DFT.cpp
          validation/reference/L2NormalizeLayer.cpp
          validation/reference/ActivationLayer.cpp
          validation/reference/SpaceToBatch.cpp
          validation/reference/Im2Col.cpp
          validation/reference/DequantizationLayer.cpp
          validation/reference/DeconvolutionLayer.cpp
          validation/reference/MinMaxLocation.cpp
          validation/reference/Select.cpp
          validation/reference/BatchNormalizationLayer.cpp
          validation/reference/InstanceNormalizationLayer.cpp
          validation/reference/ROIAlignLayer.cpp
          validation/reference/ElementwiseUnary.cpp
          validation/reference/MeanStdDev.cpp
          validation/reference/QLSTMLayerNormalization.cpp
          validation/reference/Col2Im.cpp
          validation/reference/FlattenLayer.cpp
          validation/reference/AbsoluteDifference.cpp
          validation/reference/Transpose.cpp
          validation/reference/StackLayer.cpp
          validation/reference/NormalizationLayer.cpp
          validation/reference/Copy.cpp
          validation/reference/MaxUnpoolingLayer.cpp
          validation/reference/Winograd.cpp
          validation/reference/Permute.cpp
          validation/reference/Comparisons.cpp
          validation/reference/Tile.cpp
          validation/reference/BatchToSpaceLayer.cpp
          validation/reference/ElementwiseOperations.cpp
          validation/reference/QuantizationLayer.cpp
          validation/reference/NonMaxSuppression.cpp
          validation/reference/WeightsReshape.cpp
          validation/reference/ArithmeticOperations.cpp
          validation/reference/ConvertFullyConnectedWeights.cpp
          validation/reference/Floor.cpp
          validation/reference/PriorBoxLayer.cpp
          validation/reference/Scale.cpp
          validation/reference/ScatterLayer.cpp
          validation/reference/ReorgLayer.cpp
          validation/reference/Range.cpp
          validation/reference/ArithmeticDivision.cpp
          validation/reference/DepthwiseConvolutionLayer.cpp
          validation/reference/FullyConnectedLayer.cpp
          validation/reference/ConvolutionLayer.cpp
          validation/reference/Reorder.cpp
          framework/Framework.cpp
          framework/Utils.cpp
          framework/Exceptions.cpp
          framework/DatasetModes.cpp
          framework/TestFilter.cpp
          framework/Profiler.cpp
          framework/ParametersLibrary.cpp
          framework/command_line/CommonOptions.cpp
          framework/instruments/WallClockTimer.cpp
          framework/instruments/InstrumentsStats.cpp
          framework/instruments/Instruments.cpp
          framework/instruments/SchedulerTimer.cpp
          framework/instruments/hwc_names.hpp
          framework/instruments/hwc.hpp
          framework/printers/PrettyPrinter.cpp
          framework/printers/Printer.cpp
          framework/printers/JSONPrinter.cpp
          framework/printers/Printers.cpp
          AssetsLibrary.cpp
          RawTensor.cpp
          main.cpp)
