set(LLVM_TARGET_DEFINITIONS ONNXToSpatial.td)
mlir_tablegen(ONNXToSpatial.hpp.inc -gen-rewriters "-I${ONNX_MLIR_SRC_ROOT}")
add_public_tablegen_target(ONNXToSpatialIncGen)

add_onnx_mlir_library(OMONNXToSpatial
  Math/Gemm.cpp
  Math/Conv.cpp
  Math/ExperimentalConv.cpp
  Math/ExperimentalGemm.cpp
  NN/Pooling.cpp
  NN/ExperimentalPooling.cpp
  NN/ReduceMean.cpp
  Tensor/ONNXConcatToTensorConcat.cpp
  Tensor/RemoveUnusedHelperOps.cpp
  Utils/SpatialReducer.cpp
  Utils/WeightSubdivider.cpp
  Utils/AnnotateReplication.cpp
  ONNXToSpatialPass.hpp
  ONNXToSpatialPass.cpp
  ONNXToSpatialCommon.cpp

  DEPENDS
  ONNXToSpatialIncGen

  LINK_LIBS PUBLIC
  OMCompilerOptions
  OMPimCompilerOptions
  OMONNXOps
  SpatialOps
  OMPIMCommon

  ACCEL_INCLUDE_DIRS PRIVATE
  ${PIM_INCLUDE_PATH}
)
