# This library is unusual, since mlir-tblgen depends on it, which is # built with DISABLE_LLVM_LINK_LLVM_DYLIB, this must also be built # with that option. Otherwise builds with LLVM_BUILD_LLVM_DYLIB and # LLVM_LINK_LLVM_DYLIB fail. (Note that even if this has no llvm # component dependencies, LLVM_LINK_LLVM_DYLIB tends to introduce a # dependence on libLLVM.so) However, it must also be linkable against # libMLIR.so in some contexts (see unittests/Tablegen, for instance, which # has a dependence on MLIRIR, which must depend on libLLVM.so). This works # in this special case because this library is static. # # In order for this arrangement to be sound, it must not depend on libraries # that may be transitively included in libMLIR.so or libLLVM.so. Specifically, # this means that MLIRSupport (outside of header-only access) cannot be used. llvm_add_library(MLIRTableGen STATIC Argument.cpp Attribute.cpp AttrOrTypeDef.cpp Builder.cpp Class.cpp CodeGenHelpers.cpp Constraint.cpp Dialect.cpp Format.cpp GenInfo.cpp Interfaces.cpp Operator.cpp Pass.cpp Pattern.cpp Predicate.cpp Property.cpp Region.cpp SideEffects.cpp Successor.cpp Trait.cpp Type.cpp DISABLE_LLVM_LINK_LLVM_DYLIB ADDITIONAL_HEADER_DIRS ${MLIR_MAIN_INCLUDE_DIR}/mlir/TableGen ${MLIR_MAIN_INCLUDE_DIR}/mlir/Support ) mlir_check_all_link_libraries(MLIRTableGen) add_mlir_library_install(MLIRTableGen)