[MLIR][cmake] Fix unittest/Tablegen by special casing LLVMMLIRTableGen
authorStephen Neuendorffer <stephen.neuendorffer@xilinx.com>
Sun, 17 May 2020 22:17:04 +0000 (15:17 -0700)
committerStephen Neuendorffer <stephen.neuendorffer@xilinx.com>
Mon, 18 May 2020 00:47:22 +0000 (17:47 -0700)
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

mlir/lib/TableGen/CMakeLists.txt

index 780c98a..545b842 100644 (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)