# This library is shared by both MLIRSparseTensorDialect and # MLIRSparseTensorRuntime, so it must not depend on any of the MLIR/LLVM # internals or else mlir_c_runner_utils will inherit that dependency. # # Because this is a header-only (`INTERFACE`) library, we cannot use # the `add_mlir_library` function. So we do our best to replicate the # relevant portions below. If doing so becomes too complicated, then # we should adjust the `add_mlir_library` function to also work for # `INTERFACE` libraries. set(MLIRSparseTensorEnums_hdrs mlir/Dialect/SparseTensor/IR/Enums.h) if(MSVC_IDE OR XCODE) foreach(hdr ${MLIRSparseTensorEnums_hdrs}) set_source_files_properties(${MLIR_MAIN_INCLUDE_DIR}/${hdr} PROPERTIES HEADER_FILE_ONLY ON) endforeach() endif() add_library(MLIRSparseTensorEnums INTERFACE) foreach(hdr ${MLIRSparseTensorEnums_hdrs}) target_sources(MLIRSparseTensorEnums INTERFACE $ $) endforeach() if(TARGET MLIRSparseTensorEnums) add_mlir_library_install(MLIRSparseTensorEnums) else() add_custom_target(MLIRSparseTensorEnums) # empty "phony" target endif() add_mlir_dialect_library(MLIRSparseTensorDialect SparseTensorDialect.cpp SparseTensorInterfaces.cpp Detail/Var.cpp Detail/DimLvlMap.cpp Detail/LvlTypeParser.cpp Detail/DimLvlMapParser.cpp ADDITIONAL_HEADER_DIRS ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SparseTensor DEPENDS MLIRSparseTensorAttrDefsIncGen MLIRSparseTensorOpsIncGen MLIRSparseTensorTypesIncGen LINK_LIBS PUBLIC MLIRArithDialect MLIRDialect MLIRDialectUtils MLIRIR MLIRInferTypeOpInterface MLIRSupport MLIRSparseTensorEnums )