diff --git a/mlir/lib/Interfaces/CMakeLists.txt b/mlir/lib/Interfaces/CMakeLists.txt --- a/mlir/lib/Interfaces/CMakeLists.txt +++ b/mlir/lib/Interfaces/CMakeLists.txt @@ -18,38 +18,44 @@ ViewLikeInterface.cpp ) -function(add_mlir_interface_library name) - add_mlir_library(MLIR${name} - ${name}.cpp +function(add_mlir_interface_library) + set(options) + set(oneValueArgs NAME) + set(multiValueArgs EXTRALIBS) + cmake_parse_arguments(ADD_MLIR_INTERFACE "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN} ) + + add_mlir_library(MLIR${ADD_MLIR_INTERFACE_NAME} + ${ADD_MLIR_INTERFACE_NAME}.cpp ADDITIONAL_HEADER_DIRS ${MLIR_MAIN_INCLUDE_DIR}/mlir/Interfaces DEPENDS - MLIR${name}IncGen + MLIR${ADD_MLIR_INTERFACE_NAME}IncGen LINK_LIBS PUBLIC MLIRIR + ${ADD_MLIR_INTERFACE_EXTRALIBS} ) endfunction(add_mlir_interface_library) -add_mlir_interface_library(CallInterfaces) -add_mlir_interface_library(CastInterfaces) -add_mlir_interface_library(ControlFlowInterfaces) -add_mlir_interface_library(CopyOpInterface) -add_mlir_interface_library(DataLayoutInterfaces) -add_mlir_interface_library(DerivedAttributeOpInterface) -add_mlir_interface_library(DestinationStyleOpInterface) -add_mlir_interface_library(InferIntRangeInterface) -add_mlir_interface_library(InferTypeOpInterface) -add_mlir_interface_library(LoopLikeInterface) -add_mlir_interface_library(ParallelCombiningOpInterface) -add_mlir_interface_library(RuntimeVerifiableOpInterface) -add_mlir_interface_library(ShapedOpInterfaces) -add_mlir_interface_library(SideEffectInterfaces) -add_mlir_interface_library(TilingInterface) -add_mlir_interface_library(VectorInterfaces) -add_mlir_interface_library(ViewLikeInterface) +add_mlir_interface_library(NAME CallInterfaces) +add_mlir_interface_library(NAME CastInterfaces) +add_mlir_interface_library(NAME ControlFlowInterfaces) +add_mlir_interface_library(NAME CopyOpInterface) +add_mlir_interface_library(NAME DataLayoutInterfaces) +add_mlir_interface_library(NAME DerivedAttributeOpInterface) +add_mlir_interface_library(NAME DestinationStyleOpInterface) +add_mlir_interface_library(NAME InferIntRangeInterface) +add_mlir_interface_library(NAME InferTypeOpInterface) +add_mlir_interface_library(NAME LoopLikeInterface EXTRALIBS MLIRFuncDialect) +add_mlir_interface_library(NAME ParallelCombiningOpInterface) +add_mlir_interface_library(NAME RuntimeVerifiableOpInterface) +add_mlir_interface_library(NAME ShapedOpInterfaces) +add_mlir_interface_library(NAME SideEffectInterfaces) +add_mlir_interface_library(NAME TilingInterface) +add_mlir_interface_library(NAME VectorInterfaces) +add_mlir_interface_library(NAME ViewLikeInterface) add_subdirectory(Utils)