[MLIR][cmake] Fix unittest/Tablegen by special casing LLVMMLIRTableGen

unittest/Tablegen generates an executable that depends on MLIRIR and
LLVMMLIRTableGen.  Avoid specifying linkage dependence on LLVM
libraries here because then everyone has to depend on those libraries.

Differential Revision: https://reviews.llvm.org/D80093
This commit is contained in:
Stephen Neuendorffer 2020-05-17 15:17:04 -07:00
parent 8697d443ab
commit d6b3b8a1a3
1 changed files with 11 additions and 9 deletions

View File

@ -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 @@ llvm_add_library(LLVMMLIRTableGen STATIC
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/TableGen
LINK_COMPONENTS
TableGen
Demangle
)
)
mlir_check_all_link_libraries(LLVMMLIRTableGen)