55 lines
1.7 KiB
CMake
55 lines
1.7 KiB
CMake
# 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
|
|
$<BUILD_INTERFACE:${MLIR_MAIN_INCLUDE_DIR}/${hdr}>
|
|
$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${hdr}>)
|
|
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
|
|
)
|