Revert "[MLIR] Move from using target_link_libraries to LINK_LIBS for llvm libraries."

This reverts commit 7a6c68977114b91097d693e9cfcb636631f61f91.
This breaks the build with cmake 3.13.4, but succeeds with cmake 3.15.3
diff --git a/mlir/lib/Analysis/CMakeLists.txt b/mlir/lib/Analysis/CMakeLists.txt
index 23dcd05..9eccde5 100644
--- a/mlir/lib/Analysis/CMakeLists.txt
+++ b/mlir/lib/Analysis/CMakeLists.txt
@@ -22,13 +22,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Analysis
-
-  LINK_LIBS
-  MLIRAffineOps
-  MLIRIR
-  MLIRLoopOps
-  MLIRSupport
-  LLVMSupport
   )
 add_dependencies(MLIRAnalysis
   MLIRAffineOps
@@ -37,6 +30,8 @@
   MLIRLoopOps
   )
 
+target_link_libraries(MLIRAnalysis MLIRAffineOps MLIRLoopOps)
+
 add_llvm_library(MLIRLoopAnalysis
   AffineAnalysis.cpp
   AffineStructures.cpp
@@ -46,14 +41,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Analysis
-
-  LINK_LIBS
-  MLIRAffineOps
-  MLIRIR
-  MLIRLoopOps
-  MLIRStandardOps
-  MLIRSupport
-  LLVMSupport
   )
 add_dependencies(MLIRLoopAnalysis
   MLIRAffineOps
@@ -61,3 +48,5 @@
   MLIRTypeInferOpInterfaceIncGen
   MLIRLoopOps
   )
+
+target_link_libraries(MLIRLoopAnalysis MLIRAffineOps MLIRLoopOps)
diff --git a/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt b/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
index 73ea74d..9d639e0 100644
--- a/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
@@ -3,17 +3,7 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/AffineToStandard
-
-  LINK_LIBS
-  MLIRAffineOps
-  MLIRLoopOps
-  MLIRPass
-  MLIRStandardOps
-  MLIRTransforms
-  MLIRIR
-  LLVMCore
-  LLVMSupport
-  )
+)
 add_dependencies(
   MLIRAffineToStandard
 
@@ -23,3 +13,15 @@
   LLVMCore
   LLVMSupport
 )
+target_link_libraries(
+  MLIRAffineToStandard
+
+  MLIRAffineOps
+  MLIRLoopOps
+  MLIRPass
+  MLIRStandardOps
+  MLIRTransforms
+  MLIRIR
+  LLVMCore
+  LLVMSupport
+)
diff --git a/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt b/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
index 4c682b4..65c976c 100644
--- a/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
@@ -10,15 +10,11 @@
  list(APPEND SOURCES "ConvertKernelFuncToCubin.cpp")
 endif()
 
-add_mlir_conversion_library(MLIRGPUtoCUDATransforms
-  ${SOURCES}
-  LINK_LIBS
-  LLVMNVPTXCodeGen
-  LLVMNVPTXDesc
-  LLVMNVPTXInfo
+add_mlir_conversion_library(MLIRGPUtoCUDATransforms ${SOURCES})
+target_link_libraries(MLIRGPUtoCUDATransforms
   MLIRGPU
   MLIRLLVMIR
   MLIRNVVMIR
   MLIRPass
   MLIRTargetNVVMIR
-  )
+)
diff --git a/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt b/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
index 146c8a1..339b2b7 100644
--- a/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
@@ -4,21 +4,17 @@
 
 add_mlir_conversion_library(MLIRGPUtoNVVMTransforms
   LowerGpuOpsToNVVMOps.cpp
-
-  LINK_LIBS
-  LLVMCore
-  LLVMSupport
-  MLIRGPU
-  MLIRIR
-  MLIRLLVMIR
-  MLIRNVVMIR
-  MLIRPass
-  MLIRStandardOps
-  MLIRStandardToLLVM
-  MLIRSupport
-  MLIRTransforms
-  MLIRTransformUtils
   )
 
 add_dependencies(MLIRGPUtoNVVMTransforms
   MLIRGPUToNVVMIncGen)
+
+target_link_libraries(MLIRGPUtoNVVMTransforms
+  LLVMSupport
+  MLIRGPU
+  MLIRLLVMIR
+  MLIRNVVMIR
+  MLIRPass
+  MLIRStandardToLLVM
+  MLIRTransformUtils
+  )
diff --git a/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt b/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
index ea3a340..7786898 100644
--- a/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
@@ -1,16 +1,11 @@
 add_mlir_conversion_library(MLIRGPUtoROCDLTransforms
   LowerGpuOpsToROCDLOps.cpp
-
-  LINK_LIBS
-  LLVMCore
+  )
+target_link_libraries(MLIRGPUtoROCDLTransforms
   LLVMSupport
   MLIRGPU
-  MLIRIR
   MLIRLLVMIR
   MLIRROCDLIR
   MLIRPass
   MLIRStandardToLLVM
-  MLIRStandardOps
-  MLIRTransforms
-  MLIRTransformUtils
   )
diff --git a/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
index 36f8ad2..e59c48e 100644
--- a/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
@@ -5,19 +5,18 @@
 add_mlir_conversion_library(MLIRGPUtoSPIRVTransforms
   ConvertGPUToSPIRV.cpp
   ConvertGPUToSPIRVPass.cpp
+  )
 
-  LINK_LIBS
+add_dependencies(MLIRGPUtoSPIRVTransforms
+  MLIRGPUToSPIRVIncGen)
+
+target_link_libraries(MLIRGPUtoSPIRVTransforms
   MLIRGPU
   MLIRIR
-  MLIRLoopOps
   MLIRPass
   MLIRSPIRV
   MLIRStandardOps
   MLIRStandardToSPIRVTransforms
   MLIRSupport
   MLIRTransforms
-  LLVMSupport
   )
-
-add_dependencies(MLIRGPUtoSPIRVTransforms
-  MLIRGPUToSPIRVIncGen)
diff --git a/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt b/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
index 2280d83..c634117 100644
--- a/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
@@ -3,19 +3,20 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/LinalgToLLVM
-
-  LINK_LIBS
+)
+set(LIBS
   MLIRAffineToStandard
   MLIREDSC
   MLIRIR
   MLIRLinalgOps
   MLIRLLVMIR
   MLIRLoopToStandard
-  MLIRPass
-  MLIRStandardOps
   MLIRStandardToLLVM
   MLIRVectorToLLVM
   MLIRTransforms
   LLVMCore
   LLVMSupport
   )
+
+add_dependencies(MLIRLinalgToLLVM ${LIBS})
+target_link_libraries(MLIRLinalgToLLVM ${LIBS})
diff --git a/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt
index 1b5236e..5f00034 100644
--- a/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt
@@ -5,15 +5,13 @@
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
+  )
 
-  LINK_LIBS
+target_link_libraries(MLIRLinalgToSPIRVTransforms
   MLIRIR
   MLIRLinalgOps
   MLIRLinalgUtils
   MLIRPass
   MLIRSPIRV
   MLIRSupport
-  MLIRTransforms
-  MLIRTransformUtils
-  LLVMSupport
   )
diff --git a/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt b/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt
index db17dd8..4297346 100644
--- a/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt
@@ -3,17 +3,16 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/LoopToStandard
+)
+add_dependencies(
+  MLIRLoopToStandard
 
-  LINK_LIBS
-  MLIRIR
   MLIRLoopOps
-  MLIRPass
-  MLIRStandardOps
   MLIRTransforms
   LLVMCore
   LLVMSupport
-  )
-add_dependencies(
+)
+target_link_libraries(
   MLIRLoopToStandard
 
   MLIRLoopOps
diff --git a/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt b/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt
index 739c5b8..c2f3c2a 100644
--- a/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt
+++ b/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt
@@ -4,12 +4,10 @@
   MLIRGPU
   MLIRIR
   MLIRLinalgOps
-  MLIRLoopOps
   MLIRPass
   MLIRStandardOps
   MLIRSupport
   MLIRTransforms
-  MLIRTransformUtils
   LLVMSupport
 )
 
@@ -19,8 +17,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/LoopsToGPU
-
-  LINK_LIBS
-  ${LIBS}
-  )
+)
 add_dependencies(MLIRLoopsToGPU ${LIBS})
+target_link_libraries(MLIRLoopsToGPU ${LIBS})
diff --git a/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt b/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
index 36f9d60..3e8f72b 100644
--- a/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
@@ -3,17 +3,16 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/StandardToLLVM
+)
+add_dependencies(
+  MLIRStandardToLLVM
 
-  LINK_LIBS
-  MLIRIR
   MLIRLLVMIR
-  MLIRPass
-  MLIRStandardOps
   MLIRTransforms
   LLVMCore
   LLVMSupport
-  )
-add_dependencies(
+)
+target_link_libraries(
   MLIRStandardToLLVM
 
   MLIRLLVMIR
diff --git a/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
index 6ba6c31..f02f68d 100644
--- a/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
@@ -10,18 +10,17 @@
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
-
-  LINK_LIBS
-  MLIRIR
-  MLIRPass
-  MLIRSPIRV
-  MLIRSupport
-  MLIRTransforms
-  MLIRTransformUtils
-  MLIRSPIRV
-  MLIRStandardOps
-  LLVMSupport
   )
 
 add_dependencies(MLIRStandardToSPIRVTransforms
   MLIRStandardToSPIRVIncGen)
+
+target_link_libraries(MLIRStandardToSPIRVTransforms
+  MLIRIR
+  MLIRPass
+  MLIRSPIRV
+  MLIRSupport
+  MLIRTransformUtils
+  MLIRSPIRV
+  MLIRStandardOps
+  )
diff --git a/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt b/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
index bba4314..5a89f39 100644
--- a/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
@@ -3,16 +3,15 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToLLVM
-
-  LINK_LIBS
-  MLIRIR
+)
+set(LIBS
   MLIRLLVMIR
-  MLIRPass
-  MLIRStandardOps
   MLIRStandardToLLVM
   MLIRVectorOps
   MLIRTransforms
-  MLIRTransformUtils
   LLVMCore
   LLVMSupport
-)
+  )
+
+add_dependencies(MLIRVectorToLLVM ${LIBS})
+target_link_libraries(MLIRVectorToLLVM ${LIBS})
diff --git a/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt b/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt
index 0d95365..0dccea9 100644
--- a/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt
+++ b/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt
@@ -3,17 +3,14 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToLoops
-
-  LINK_LIBS
-  MLIRAffineOps
+)
+set(LIBS
   MLIREDSC
-  MLIRIR
   MLIRLLVMIR
-  MLIRLoopOps
-  MLIRStandardOps
   MLIRTransforms
-  MLIRTransformUtils
-  MLIRVectorOps
   LLVMCore
   LLVMSupport
   )
+
+add_dependencies(MLIRVectorToLoops ${LIBS})
+target_link_libraries(MLIRVectorToLoops ${LIBS})
diff --git a/mlir/lib/Dialect/AffineOps/CMakeLists.txt b/mlir/lib/Dialect/AffineOps/CMakeLists.txt
index 749e7e2..1c1c95c 100644
--- a/mlir/lib/Dialect/AffineOps/CMakeLists.txt
+++ b/mlir/lib/Dialect/AffineOps/CMakeLists.txt
@@ -5,12 +5,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/AffineOps
-
-  LINK_LIBS
-  MLIREDSC
-  MLIRIR
-  MLIRStandardOps
-  LLVMSupport
   )
 add_dependencies(MLIRAffineOps
 
@@ -20,3 +14,9 @@
   MLIRLoopLikeInterfaceIncGen
   MLIRStandardOps
   )
+target_link_libraries(MLIRAffineOps
+
+  MLIREDSC
+  MLIRIR
+  MLIRStandardOps
+  )
diff --git a/mlir/lib/Dialect/CMakeLists.txt b/mlir/lib/Dialect/CMakeLists.txt
index d9d91b9..59186ed 100644
--- a/mlir/lib/Dialect/CMakeLists.txt
+++ b/mlir/lib/Dialect/CMakeLists.txt
@@ -22,8 +22,5 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect
-
-  LINK_LIBS
-  MLIRIR
-  LLVMSupport
   )
+target_link_libraries(MLIRDialect MLIRIR)
diff --git a/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt b/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt
index e631fc6..021cade 100644
--- a/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt
+++ b/mlir/lib/Dialect/FxpMathOps/CMakeLists.txt
@@ -4,16 +4,14 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/FxpMathOps
+  )
 
-  LINK_LIBS
+target_link_libraries(MLIRFxpMathOps
   MLIRQuantOps
   MLIRIR
   MLIRPass
   MLIRSupport
   MLIRStandardOps
-  MLIRTransforms
-  MLIRTransformUtils
-  LLVMSupport
   )
 add_dependencies(MLIRFxpMathOps
                  MLIRFxpMathOpsIncGen
diff --git a/mlir/lib/Dialect/GPU/CMakeLists.txt b/mlir/lib/Dialect/GPU/CMakeLists.txt
index 595f8b7..41884a9 100644
--- a/mlir/lib/Dialect/GPU/CMakeLists.txt
+++ b/mlir/lib/Dialect/GPU/CMakeLists.txt
@@ -7,18 +7,7 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/GPU
-
-  LINK_LIBS
-  MLIREDSC
-  MLIRIR
-  MLIRLLVMIR
-  MLIRLoopOps
-  MLIRPass
-  MLIRStandardOps
-  MLIRSupport
-  MLIRTransformUtils
-  LLVMSupport
-  )
+)
 add_dependencies(MLIRGPU
   MLIRGPUOpsIncGen
   MLIREDSC
@@ -28,3 +17,13 @@
   MLIRSupport
   MLIRTransformUtils
   LLVMSupport)
+target_link_libraries(MLIRGPU
+  MLIREDSC
+  MLIRIR
+  MLIRLLVMIR
+  MLIRLoopOps
+  MLIRPass
+  MLIRStandardOps
+  MLIRSupport
+  MLIRTransformUtils
+  LLVMSupport)
diff --git a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
index eb32510..b0c4eb2 100644
--- a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
+++ b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
@@ -3,42 +3,24 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/LLVMIR
-
-  LINK_LIBS
-  LLVMAsmParser
-  LLVMCore
-  LLVMSupport
-  MLIRIR
-  MLIRSupport
   )
 add_dependencies(MLIRLLVMIR MLIRLLVMOpsIncGen MLIRLLVMConversionsIncGen LLVMAsmParser LLVMCore LLVMSupport)
+target_link_libraries(MLIRLLVMIR LLVMAsmParser LLVMCore LLVMSupport MLIRIR)
 
 add_mlir_dialect_library(MLIRNVVMIR
   IR/NVVMDialect.cpp
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/LLVMIR
-
-  LINK_LIBS
-  LLVMAsmParser
-  MLIRIR
-  MLIRLLVMIR
-  LLVMSupport
-  LLVMCore
   )
 add_dependencies(MLIRNVVMIR MLIRNVVMOpsIncGen MLIRNVVMConversionsIncGen LLVMAsmParser LLVMCore LLVMSupport)
-
+target_link_libraries(MLIRNVVMIR LLVMAsmParser MLIRIR MLIRLLVMIR LLVMSupport LLVMCore)
 
 add_mlir_dialect_library(MLIRROCDLIR
   IR/ROCDLDialect.cpp
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/LLVMIR
-
-  LINK_LIBS
-  LLVMAsmParser
-  LLVMCore
-  LLVMSupport
-  MLIRIR
   )
 add_dependencies(MLIRROCDLIR MLIRROCDLOpsIncGen MLIRROCDLConversionsIncGen LLVMAsmParser LLVMCore LLVMSupport)
+target_link_libraries(MLIRROCDLIR LLVMAsmParser LLVMCore LLVMSupport MLIRIR)
diff --git a/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt
index 629e071..96698a9 100644
--- a/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt
@@ -1,8 +1,7 @@
 set(LIBS
-  MLIRIR
+
   MLIRLinalgOps
   MLIRStandardOps
-  LLVMSupport
   )
 
 
@@ -13,9 +12,7 @@
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Linalg
   DEPENDS
   intrinsics_gen
-
-  LINK_LIBS
-  ${LIBS}
   )
 
 add_dependencies(MLIRLinalgAnalysis ${LIBS})
+target_link_libraries(MLIRLinalgAnalysis ${LIBS})
diff --git a/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt b/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt
index 6c0cc3c..dc87d7f 100644
--- a/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt
@@ -6,7 +6,6 @@
   MLIRLinalgOps
   MLIRLoopOps
   MLIRStandardOps
-  LLVMSupport
   )
 
 add_mlir_dialect_library(MLIRLinalgEDSC
@@ -16,9 +15,7 @@
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Linalg
   DEPENDS
   intrinsics_gen
-
-  LINK_LIBS
-  ${LIBS}
   )
 
 add_dependencies(MLIRLinalgEDSC ${LIBS})
+target_link_libraries(MLIRLinalgEDSC ${LIBS})
diff --git a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
index 3988daa..9dba1e5 100644
--- a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
@@ -1,8 +1,7 @@
 set(LIBS
+
   MLIRIR
   MLIRStandardOps
-  MLIRSupport
-  LLVMSupport
   )
 
 add_mlir_dialect_library(MLIRLinalgOps
@@ -13,12 +12,6 @@
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Linalg
   DEPENDS
   intrinsics_gen
-
-  LINK_LIBS
-  MLIRIR
-  MLIRStandardOps
-  MLIRSupport
-  LLVMSupport
   )
 
 add_dependencies(MLIRLinalgOps
@@ -28,3 +21,4 @@
   MLIRLinalgStructuredOpsIncGen
   MLIRLinalgStructuredOpsInterfaceIncGen
   )
+target_link_libraries(MLIRLinalgOps ${LIBS})
diff --git a/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
index 5c1df04..763ef55 100644
--- a/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
@@ -14,7 +14,6 @@
   MLIRStandardToLLVM
   MLIRTransformUtils
   MLIRVectorOps
-  LLVMSupport
   )
 
 add_mlir_dialect_library(MLIRLinalgTransforms
@@ -28,9 +27,6 @@
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Linalg
   DEPENDS
   intrinsics_gen
-
-  LINK_LIBS
-  ${LIBS}
   )
 
 add_dependencies(MLIRLinalgTransforms
@@ -38,3 +34,4 @@
   ${LIBS}
   MLIRLinalgTransformPatternsIncGen
   )
+target_link_libraries(MLIRLinalgTransforms ${LIBS})
diff --git a/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt
index 2bf36d0..76581e2 100644
--- a/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt
@@ -1,5 +1,5 @@
 set(LIBS
-  MLIRAffineOps
+
   MLIREDSC
   MLIRIR
   MLIRLinalgOps
@@ -7,7 +7,6 @@
   MLIRPass
   MLIRStandardOps
   MLIRTransformUtils
-  LLVMSupport
   )
 
 add_mlir_dialect_library(MLIRLinalgUtils
@@ -18,8 +17,7 @@
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Linalg
   DEPENDS
   intrinsics_gen
-
-  LINK_LIBS
-  ${LIBS})
+  )
 
 add_dependencies(MLIRLinalgUtils ${LIBS})
+target_link_libraries(MLIRLinalgUtils ${LIBS})
diff --git a/mlir/lib/Dialect/LoopOps/CMakeLists.txt b/mlir/lib/Dialect/LoopOps/CMakeLists.txt
index e228654..98367d1 100644
--- a/mlir/lib/Dialect/LoopOps/CMakeLists.txt
+++ b/mlir/lib/Dialect/LoopOps/CMakeLists.txt
@@ -5,12 +5,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/LoopOps
-
-  LINK_LIBS
-  MLIREDSC
-  MLIRIR
-  MLIRStandardOps
-  LLVMSupport
   )
 add_dependencies(MLIRLoopOps
 
@@ -20,5 +14,12 @@
   MLIRStandardOps
   LLVMSupport
   )
+target_link_libraries(MLIRLoopOps
+
+  MLIREDSC
+  MLIRIR
+  MLIRStandardOps
+  LLVMSupport
+  )
 
 add_subdirectory(Transforms)
diff --git a/mlir/lib/Dialect/OpenMP/CMakeLists.txt b/mlir/lib/Dialect/OpenMP/CMakeLists.txt
index 8e00e47..bf55088a 100644
--- a/mlir/lib/Dialect/OpenMP/CMakeLists.txt
+++ b/mlir/lib/Dialect/OpenMP/CMakeLists.txt
@@ -3,11 +3,7 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/OpenMP
-
-  LINK_LIBS
-  MLIRIR
-  LLVMCore
-  LLVMSupport
   )
 
 add_dependencies(MLIROpenMP MLIROpenMPOpsIncGen)
+target_link_libraries(MLIROpenMP MLIRIR)
diff --git a/mlir/lib/Dialect/QuantOps/CMakeLists.txt b/mlir/lib/Dialect/QuantOps/CMakeLists.txt
index 14acb91..12cb44f 100644
--- a/mlir/lib/Dialect/QuantOps/CMakeLists.txt
+++ b/mlir/lib/Dialect/QuantOps/CMakeLists.txt
@@ -11,14 +11,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/QuantOps
-
-  LINK_LIBS
-  MLIRIR
-  MLIRPass
-  MLIRSupport
-  MLIRStandardOps
-  MLIRTransformUtils
-  LLVMSupport
   )
 add_dependencies(MLIRQuantOps
                  MLIRIR
@@ -26,3 +18,11 @@
                  MLIRQuantOpsIncGen
                  MLIRSupport
                  MLIRStandardOps)
+
+target_link_libraries(MLIRQuantOps
+  MLIRIR
+  MLIRPass
+  MLIRSupport
+  MLIRStandardOps
+  MLIRTransformUtils
+  )
diff --git a/mlir/lib/Dialect/SDBM/CMakeLists.txt b/mlir/lib/Dialect/SDBM/CMakeLists.txt
index b75e257..648d9f2 100644
--- a/mlir/lib/Dialect/SDBM/CMakeLists.txt
+++ b/mlir/lib/Dialect/SDBM/CMakeLists.txt
@@ -4,10 +4,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SDBM
-
-  LINK_LIBS
-  MLIRIR
-  MLIRSupport
-  LLVMSupport
-  )
+)
 add_dependencies(MLIRSDBM MLIRIR)
+target_link_libraries(MLIRSDBM MLIRIR)
diff --git a/mlir/lib/Dialect/SPIRV/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/CMakeLists.txt
index ba67e74..ad1bb4d 100644
--- a/mlir/lib/Dialect/SPIRV/CMakeLists.txt
+++ b/mlir/lib/Dialect/SPIRV/CMakeLists.txt
@@ -13,14 +13,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
-
-  LINK_LIBS
-  MLIRIR
-  MLIRParser
-  MLIRStandardOps
-  MLIRSupport
-  MLIRTransforms
-  LLVMSupport
   )
 
 add_dependencies(MLIRSPIRV
@@ -32,6 +24,11 @@
   MLIRSPIRVOpUtilsGen
   MLIRSPIRVTargetAndABIIncGen)
 
+target_link_libraries(MLIRSPIRV
+  MLIRIR
+  MLIRParser
+  MLIRSupport
+  MLIRTransforms)
 
 add_subdirectory(Serialization)
 add_subdirectory(Transforms)
diff --git a/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt
index 543e1b4..3d9ea79 100644
--- a/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt
+++ b/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt
@@ -6,15 +6,13 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
-
-  LINK_LIBS
-  MLIRIR
-  MLIRParser
-  MLIRSPIRV
-  MLIRSupport
-  MLIRTranslation
-  LLVMSupport
   )
 
 add_dependencies(MLIRSPIRVSerialization
   MLIRSPIRVSerializationGen)
+
+target_link_libraries(MLIRSPIRVSerialization
+  MLIRIR
+  MLIRSPIRV
+  MLIRSupport
+  MLIRTranslation)
diff --git a/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
index 30c2c42..e9d6492 100644
--- a/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
@@ -4,13 +4,9 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
+  )
 
-  LINK_LIBS
-  MLIRIR
+target_link_libraries(MLIRSPIRVTransforms
   MLIRPass
   MLIRSPIRV
-  MLIRStandardOps
-  MLIRTransforms
-  MLIRTransformUtils
-  LLVMSupport
   )
diff --git a/mlir/lib/Dialect/StandardOps/CMakeLists.txt b/mlir/lib/Dialect/StandardOps/CMakeLists.txt
index e802e0c..c8af470 100644
--- a/mlir/lib/Dialect/StandardOps/CMakeLists.txt
+++ b/mlir/lib/Dialect/StandardOps/CMakeLists.txt
@@ -5,13 +5,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/StandardOps
-
-  LINK_LIBS
-  MLIREDSC
-  MLIRIR
-  MLIRSupport
-  LLVMCore
-  LLVMSupport
   )
 add_dependencies(MLIRStandardOps
 
@@ -21,3 +14,9 @@
   MLIRStandardOpsIncGen
   LLVMSupport
   )
+target_link_libraries(MLIRStandardOps
+
+  MLIREDSC
+  MLIRIR
+  LLVMSupport
+  )
diff --git a/mlir/lib/Dialect/VectorOps/CMakeLists.txt b/mlir/lib/Dialect/VectorOps/CMakeLists.txt
index ff97a95..8bdce35 100644
--- a/mlir/lib/Dialect/VectorOps/CMakeLists.txt
+++ b/mlir/lib/Dialect/VectorOps/CMakeLists.txt
@@ -6,15 +6,9 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/VectorOps
-
-  LINK_LIBS
-  MLIRIR
-  MLIRStandardOps
-  MLIRAffineOps
-  MLIRLoopOps
-  MLIRLoopAnalysis
-  LLVMSupport
   )
 
 add_dependencies(MLIRVectorOps MLIRVectorOpsIncGen)
 add_dependencies(MLIRVectorOps MLIRVectorTransformPatternsIncGen)
+
+target_link_libraries(MLIRVectorOps MLIRIR MLIRStandardOps MLIRAffineOps MLIRLoopOps MLIRLoopAnalysis)
diff --git a/mlir/lib/EDSC/CMakeLists.txt b/mlir/lib/EDSC/CMakeLists.txt
index 3d0290a..533d7ec 100644
--- a/mlir/lib/EDSC/CMakeLists.txt
+++ b/mlir/lib/EDSC/CMakeLists.txt
@@ -8,11 +8,12 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/EDSC
+  )
+target_link_libraries(MLIREDSC
+  PUBLIC
 
-  LINK_LIBS
   MLIRIR
   MLIRSupport
-  LLVMSupport
   )
 
 add_llvm_library(MLIREDSCInterface
@@ -20,11 +21,11 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/EDSC
-
-  LINK_LIBS
+  )
+add_dependencies(MLIREDSCInterface MLIRIR)
+target_link_libraries(MLIREDSCInterface
+  PUBLIC
   MLIRIR
   MLIRSupport
   MLIRParser
-  LLVMSupport
   )
-add_dependencies(MLIREDSCInterface MLIRIR)
diff --git a/mlir/lib/ExecutionEngine/CMakeLists.txt b/mlir/lib/ExecutionEngine/CMakeLists.txt
index c24917c1..dc20e5f 100644
--- a/mlir/lib/ExecutionEngine/CMakeLists.txt
+++ b/mlir/lib/ExecutionEngine/CMakeLists.txt
@@ -12,15 +12,13 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/ExecutionEngine
+  )
+target_link_libraries(MLIRExecutionEngine
 
-  LINK_LIBS
-  MLIRIR
   MLIRLLVMIR
-  MLIRSupport
   MLIRTargetLLVMIR
   LLVMBitReader
   LLVMBitWriter
-  LLVMCore
   LLVMExecutionEngine
   LLVMObject
   LLVMOrcJIT
@@ -34,8 +32,8 @@
   LLVMTarget
   LLVMVectorize
   LLVMTransformUtils
-  ${outlibs}
-  )
+
+  ${outlibs})
 
 add_llvm_library(mlir_c_runner_utils SHARED CRunnerUtils.cpp)
 target_compile_definitions(mlir_c_runner_utils PRIVATE mlir_c_runner_utils_EXPORTS)
diff --git a/mlir/lib/IR/CMakeLists.txt b/mlir/lib/IR/CMakeLists.txt
index 8802f6c..415d9d6 100644
--- a/mlir/lib/IR/CMakeLists.txt
+++ b/mlir/lib/IR/CMakeLists.txt
@@ -4,10 +4,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
-
-  LINK_LIBS
-  MLIRSupport
-  LLVMSupport
-  ${LLVM_PTHREAD_LIB}
   )
 add_dependencies(MLIRIR MLIRCallOpInterfacesIncGen MLIROpAsmInterfacesIncGen MLIRSupport LLVMSupport)
+target_link_libraries(MLIRIR MLIRSupport LLVMSupport)
diff --git a/mlir/lib/Parser/CMakeLists.txt b/mlir/lib/Parser/CMakeLists.txt
index 36ede65..9fd29ae 100644
--- a/mlir/lib/Parser/CMakeLists.txt
+++ b/mlir/lib/Parser/CMakeLists.txt
@@ -5,10 +5,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Parser
-
-  LINK_LIBS
-  MLIRIR
-  MLIRAnalysis
-  LLVMSupport
   )
 add_dependencies(MLIRParser MLIRIR MLIRAnalysis)
+target_link_libraries(MLIRParser MLIRIR MLIRAnalysis)
diff --git a/mlir/lib/Pass/CMakeLists.txt b/mlir/lib/Pass/CMakeLists.txt
index 54407d9..05122f5 100644
--- a/mlir/lib/Pass/CMakeLists.txt
+++ b/mlir/lib/Pass/CMakeLists.txt
@@ -4,12 +4,6 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Pass
-
-  LINK_LIBS
-  MLIRAnalysis
-  MLIRIR
-  MLIRSupport
-  LLVMIRReader
-  LLVMSupport
   )
 add_dependencies(MLIRPass MLIRAnalysis MLIRIR LLVMSupport)
+target_link_libraries(MLIRPass MLIRAnalysis MLIRIR LLVMSupport)
diff --git a/mlir/lib/Quantizer/CMakeLists.txt b/mlir/lib/Quantizer/CMakeLists.txt
index d87b7da..6e2c864 100644
--- a/mlir/lib/Quantizer/CMakeLists.txt
+++ b/mlir/lib/Quantizer/CMakeLists.txt
@@ -9,13 +9,6 @@
   Support/UniformSolvers.cpp
 
   ADDITIONAL_HEADER_DIRS
-
-  LINK_LIBS
-  MLIRIR
-  MLIRQuantOps
-  MLIRSupport
-  MLIRStandardOps
-  LLVMSupport
   )
 
 add_dependencies(MLIRQuantizerSupport
@@ -23,26 +16,30 @@
                  MLIRQuantOps
                  MLIRSupport
                  MLIRStandardOps)
+target_link_libraries(MLIRQuantizerSupport
+  MLIRIR
+  MLIRQuantOps
+  MLIRSupport
+  MLIRStandardOps
+  LLVMSupport
+  )
 
 # Configurations.
 add_llvm_library(MLIRQuantizerFxpMathConfig
   Configurations/FxpMathConfig.cpp
 
   ADDITIONAL_HEADER_DIRS
-
-  LINK_LIBS
-  MLIRIR
-  MLIRFxpMathOps
-  MLIRQuantOps
-  MLIRQuantizerSupport
-  MLIRStandardOps
-  MLIRSupport
-  LLVMSupport
   )
 
 add_dependencies(MLIRQuantizerFxpMathConfig
                  MLIRFxpMathOpsIncGen
                  MLIRQuantizerSupport)
+target_link_libraries(MLIRQuantizerFxpMathConfig
+  MLIRIR
+  MLIRFxpMathOps
+  MLIRQuantOps
+  MLIRQuantizerSupport
+  )
 
 # Transforms.
 add_llvm_library(MLIRQuantizerTransforms
@@ -51,18 +48,16 @@
   Transforms/RemoveInstrumentationPass.cpp
 
   ADDITIONAL_HEADER_DIRS
-
-  LINK_LIBS
-  MLIRIR
-  MLIRQuantizerFxpMathConfig
-  MLIRQuantizerSupport
-  MLIRQuantOps
-  MLIRPass
-  MLIRTransforms
-  MLIRTransformUtils
-  LLVMSupport
   )
 add_dependencies(MLIRQuantizerTransforms
   MLIRQuantizerFxpMathConfig
   MLIRQuantizerSupport
   MLIRPass)
+target_link_libraries(MLIRQuantizerTransforms
+  MLIRIR
+  MLIRQuantizerFxpMathConfig
+  MLIRQuantizerSupport
+  MLIRQuantOps
+  MLIRPass
+  LLVMSupport
+  )
diff --git a/mlir/lib/Support/CMakeLists.txt b/mlir/lib/Support/CMakeLists.txt
index 140c2ce..b8c0b17 100644
--- a/mlir/lib/Support/CMakeLists.txt
+++ b/mlir/lib/Support/CMakeLists.txt
@@ -14,24 +14,20 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Support
-
-  LINK_LIBS
-  LLVMSupport
-  ${LLVM_PTHREAD_LIB}
   )
+target_link_libraries(MLIRSupport LLVMSupport ${LLVM_PTHREAD_LIB})
 
 add_llvm_library(MLIROptLib
   MlirOptMain.cpp
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Support
-
-  LINK_LIBS
-  MLIRIR
+  )
+target_link_libraries(MLIROptLib
   MLIRPass
   MLIRParser
-  MLIRSupport
   LLVMSupport
+  MLIRSupport
   )
 
 add_llvm_library(MLIRTranslateClParser
@@ -39,22 +35,15 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Support
-
-  LINK_LIBS
-  LLVMSupport
-  MLIRAnalysis
-  MLIRIR
-  MLIRTranslation
-  MLIRParser
   )
+target_link_libraries(MLIRTranslateClParser LLVMSupport MLIRIR MLIRTranslation MLIRParser)
 
 add_llvm_library(MLIRJitRunner
   JitRunner.cpp
-
-  LINK_LIBS
+)
+target_link_libraries(MLIRJitRunner PRIVATE
   MLIRExecutionEngine
   MLIRIR
-  MLIRLLVMIR
   MLIRParser
   MLIRStandardOps
   MLIRTargetLLVMIR
@@ -62,9 +51,5 @@
   MLIRStandardToLLVM
   MLIRSupport
   LLVMCore
-  LLVMOrcJIT
   LLVMSupport
-  LLVMX86CodeGen
-  LLVMX86Desc
-  LLVMX86Info
-  )
+)
diff --git a/mlir/lib/TableGen/CMakeLists.txt b/mlir/lib/TableGen/CMakeLists.txt
index aa1e4a0..6317c66 100644
--- a/mlir/lib/TableGen/CMakeLists.txt
+++ b/mlir/lib/TableGen/CMakeLists.txt
@@ -15,8 +15,5 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/TableGen
-
-  LINK_LIBS
-  LLVMSupport
-  LLVMTableGen
   )
+target_link_libraries(LLVMMLIRTableGen LLVMSupport LLVMTableGen)
diff --git a/mlir/lib/Target/CMakeLists.txt b/mlir/lib/Target/CMakeLists.txt
index 93f997f..53786b9 100644
--- a/mlir/lib/Target/CMakeLists.txt
+++ b/mlir/lib/Target/CMakeLists.txt
@@ -4,74 +4,47 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Target/LLVMIR
-
   DEPENDS
   intrinsics_gen
-
-  LINK_LIBS
-  MLIRLLVMIR
-  LLVMCore
-  LLVMIRReader
-  LLVMSupport
-  LLVMTransformUtils
-  MLIRIR
-  MLIRSupport
-  MLIRTranslation
   )
-
+target_link_libraries(MLIRTargetLLVMIRModuleTranslation
+  MLIRLLVMIR LLVMCore LLVMIRReader LLVMSupport LLVMTransformUtils
+  MLIRTranslation)
 add_llvm_library(MLIRTargetLLVMIR
   LLVMIR/ConvertFromLLVMIR.cpp
   LLVMIR/ConvertToLLVMIR.cpp
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Target/LLVMIR
-
-  LINK_LIBS
-  MLIRIR
-  MLIRLLVMIR
-  MLIRSupport
-  MLIRTargetLLVMIRModuleTranslation
-  MLIRTranslation
-  LLVMCore
-  LLVMIRReader
-  LLVMSupport
   )
+target_link_libraries(MLIRTargetLLVMIR MLIRTargetLLVMIRModuleTranslation)
 add_llvm_library(MLIRTargetNVVMIR
   LLVMIR/ConvertToNVVMIR.cpp
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Target/LLVMIR
-
   DEPENDS
   intrinsics_gen
-
-  LINK_LIBS
+  )
+target_link_libraries(MLIRTargetNVVMIR
   MLIRGPU
   MLIRIR
   MLIRLLVMIR
   MLIRNVVMIR
   MLIRTargetLLVMIRModuleTranslation
-  MLIRTranslation
-  LLVMCore
-  LLVMSupport
   )
-
 add_llvm_library(MLIRTargetROCDLIR
   LLVMIR/ConvertToROCDLIR.cpp
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Target/LLVMIR
-
   DEPENDS
   intrinsics_gen
-
-  LINK_LIBS
+  )
+target_link_libraries(MLIRTargetROCDLIR
   MLIRGPU
   MLIRIR
   MLIRLLVMIR
   MLIRROCDLIR
   MLIRTargetLLVMIRModuleTranslation
-  MLIRTranslation
-  LLVMCore
-  LLVMSupport
   )
diff --git a/mlir/lib/Transforms/CMakeLists.txt b/mlir/lib/Transforms/CMakeLists.txt
index 7a98490..7d67100 100644
--- a/mlir/lib/Transforms/CMakeLists.txt
+++ b/mlir/lib/Transforms/CMakeLists.txt
@@ -26,21 +26,16 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Transforms
-
-  LINK_LIBS
-  MLIRAffineOps
-  MLIRAnalysis
-  MLIRIR
-  MLIRLoopOps
-  MLIRLoopAnalysis
-  MLIRPass
-  MLIRSupport
-  MLIRStandardOps
-  MLIRTransformUtils
-  MLIRVectorOps
-  LLVMSupport
   )
 
 add_dependencies(MLIRTransforms
   MLIRLoopLikeInterfaceIncGen
   MLIRStandardOpsIncGen)
+target_link_libraries(MLIRTransforms
+  MLIRAffineOps
+  MLIRAnalysis
+  MLIRLoopOps
+  MLIRPass
+  MLIRTransformUtils
+  MLIRVectorOps
+  )
diff --git a/mlir/lib/Transforms/Utils/CMakeLists.txt b/mlir/lib/Transforms/Utils/CMakeLists.txt
index d826a6b..bf4abf8 100644
--- a/mlir/lib/Transforms/Utils/CMakeLists.txt
+++ b/mlir/lib/Transforms/Utils/CMakeLists.txt
@@ -9,15 +9,14 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Transforms
+  )
 
-  LINK_LIBS
+add_dependencies(MLIRTransformUtils MLIRStandardOpsIncGen)
+target_link_libraries(MLIRTransformUtils
   MLIRAffineOps
   MLIRAnalysis
-  MLIRIR
   MLIRLoopAnalysis
   MLIRLoopOps
   MLIRPass
   MLIRStandardOps
-  LLVMSupport
   )
-add_dependencies(MLIRTransformUtils MLIRStandardOpsIncGen)
diff --git a/mlir/lib/Translation/CMakeLists.txt b/mlir/lib/Translation/CMakeLists.txt
index b8e809f..122db2e 100644
--- a/mlir/lib/Translation/CMakeLists.txt
+++ b/mlir/lib/Translation/CMakeLists.txt
@@ -3,7 +3,5 @@
 
   ADDITIONAL_HEADER_DIRS
   ${MLIR_MAIN_INCLUDE_DIR}/mlir/Translation
-
-  LINK_LIBS
-  LLVMSupport
-)
+  )
+target_link_libraries(MLIRTranslation LLVMSupport)