diff --git a/mlir/lib/TableGen/CMakeLists.txt b/mlir/lib/TableGen/CMakeLists.txt --- a/mlir/lib/TableGen/CMakeLists.txt +++ b/mlir/lib/TableGen/CMakeLists.txt @@ -1,7 +1,13 @@ -# 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 @@ -24,10 +30,6 @@ ADDITIONAL_HEADER_DIRS ${MLIR_MAIN_INCLUDE_DIR}/mlir/TableGen - - LINK_COMPONENTS - TableGen - Demangle - ) +) mlir_check_all_link_libraries(LLVMMLIRTableGen)