-# This library is unusual, since mlir-tblgen depends on it.
-# For non-obvious reasons, linking mlir-tblgen fails with
-# LLVM_BUILD_LLVM_DYLIB and LLVM_LINK_LLVM_DYLIB unless
-# DISABLE_LLVM_LINK_LLVM_DYLIB is set.
+# 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 dependance on MLIRIR, which must depend on libLLVM.so). This works
+# in this special case because this library is static.
+
llvm_add_library(LLVMMLIRTableGen STATIC
Argument.cpp
Attribute.cpp
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/TableGen
-
- LINK_COMPONENTS
- TableGen
- Demangle
- )
+)
mlir_check_all_link_libraries(LLVMMLIRTableGen)