[Mlir-commits] [mlir] 5469f43 - [MLIR] Reapply: Adjust libMLIR building to more closely follow libClang
Stephen Neuendorffer
llvmlistbot at llvm.org
Mon May 4 20:48:37 PDT 2020
Author: Stephen Neuendorffer
Date: 2020-05-04T20:47:57-07:00
New Revision: 5469f434bb74c41e926cc514cb326b1333fdcf07
URL: https://github.com/llvm/llvm-project/commit/5469f434bb74c41e926cc514cb326b1333fdcf07
DIFF: https://github.com/llvm/llvm-project/commit/5469f434bb74c41e926cc514cb326b1333fdcf07.diff
LOG: [MLIR] Reapply: Adjust libMLIR building to more closely follow libClang
This reverts commit ab1ca6e60fc58b857cc5030ca6e024d20d919cb9.
Added:
Modified:
mlir/cmake/modules/AddMLIR.cmake
mlir/cmake/modules/MLIRConfig.cmake.in
mlir/examples/toy/Ch6/CMakeLists.txt
mlir/examples/toy/Ch7/CMakeLists.txt
mlir/lib/Analysis/CMakeLists.txt
mlir/lib/Conversion/AVX512ToLLVM/CMakeLists.txt
mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
mlir/lib/Conversion/GPUToVulkan/CMakeLists.txt
mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt
mlir/lib/Conversion/LoopToStandard/CMakeLists.txt
mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt
mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
mlir/lib/Conversion/StandardToStandard/CMakeLists.txt
mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
mlir/lib/Conversion/VectorToLoops/CMakeLists.txt
mlir/lib/Dialect/AVX512/CMakeLists.txt
mlir/lib/Dialect/Affine/EDSC/CMakeLists.txt
mlir/lib/Dialect/Affine/IR/CMakeLists.txt
mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt
mlir/lib/Dialect/Affine/Utils/CMakeLists.txt
mlir/lib/Dialect/CMakeLists.txt
mlir/lib/Dialect/GPU/CMakeLists.txt
mlir/lib/Dialect/LLVMIR/CMakeLists.txt
mlir/lib/Dialect/LLVMIR/Transforms/CMakeLists.txt
mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt
mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt
mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt
mlir/lib/Dialect/LoopOps/CMakeLists.txt
mlir/lib/Dialect/LoopOps/Transforms/CMakeLists.txt
mlir/lib/Dialect/OpenMP/CMakeLists.txt
mlir/lib/Dialect/Quant/CMakeLists.txt
mlir/lib/Dialect/SDBM/CMakeLists.txt
mlir/lib/Dialect/SPIRV/CMakeLists.txt
mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt
mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
mlir/lib/Dialect/Shape/CMakeLists.txt
mlir/lib/Dialect/StandardOps/CMakeLists.txt
mlir/lib/Dialect/Vector/CMakeLists.txt
mlir/lib/EDSC/CMakeLists.txt
mlir/lib/ExecutionEngine/CMakeLists.txt
mlir/lib/IR/CMakeLists.txt
mlir/lib/Interfaces/CMakeLists.txt
mlir/lib/Parser/CMakeLists.txt
mlir/lib/Pass/CMakeLists.txt
mlir/lib/Support/CMakeLists.txt
mlir/lib/TableGen/CMakeLists.txt
mlir/lib/Target/CMakeLists.txt
mlir/lib/Transforms/CMakeLists.txt
mlir/lib/Transforms/Utils/CMakeLists.txt
mlir/lib/Translation/CMakeLists.txt
mlir/test/EDSC/CMakeLists.txt
mlir/test/SDBM/CMakeLists.txt
mlir/test/lib/Dialect/Affine/CMakeLists.txt
mlir/test/lib/Dialect/SPIRV/CMakeLists.txt
mlir/test/lib/Dialect/Test/CMakeLists.txt
mlir/test/lib/IR/CMakeLists.txt
mlir/test/lib/Pass/CMakeLists.txt
mlir/test/lib/Transforms/CMakeLists.txt
mlir/tools/mlir-cpu-runner/CMakeLists.txt
mlir/tools/mlir-linalg-ods-gen/CMakeLists.txt
mlir/tools/mlir-opt/CMakeLists.txt
mlir/tools/mlir-shlib/CMakeLists.txt
mlir/tools/mlir-tblgen/CMakeLists.txt
mlir/tools/mlir-translate/CMakeLists.txt
Removed:
################################################################################
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake
index 6a2856b7f987..6c1ec381a675 100644
--- a/mlir/cmake/modules/AddMLIR.cmake
+++ b/mlir/cmake/modules/AddMLIR.cmake
@@ -29,11 +29,111 @@ function(add_mlir_doc doc_filename command output_file output_directory)
add_dependencies(mlir-doc ${output_file}DocGen)
endfunction()
-# Declare a library which can be compiled in libMLIR.so
-macro(add_mlir_library name)
- set_property(GLOBAL APPEND PROPERTY MLIR_ALL_LIBS ${name})
- add_llvm_library(${ARGV})
-endmacro(add_mlir_library)
+# Declare an mlir library which can be compiled in libMLIR.so
+# In addition to everything that llvm_add_librar accepts, this
+# also has the following option:
+# EXCLUDE_FROM_LIBMLIR
+# Don't include this library in libMLIR.so. This option should be used
+# for test libraries, executable-specific libraries, or rarely used libraries
+# with large dependencies.
+function(add_mlir_library name)
+ cmake_parse_arguments(ARG
+ "SHARED;INSTALL_WITH_TOOLCHAIN;EXCLUDE_FROM_LIBMLIR"
+ ""
+ "ADDITIONAL_HEADERS;DEPENDS;LINK_COMPONENTS;LINK_LIBS"
+ ${ARGN})
+ set(srcs)
+ if(MSVC_IDE OR XCODE)
+ # Add public headers
+ file(RELATIVE_PATH lib_path
+ ${MLIR_SOURCE_DIR}/lib/
+ ${CMAKE_CURRENT_SOURCE_DIR}
+ )
+ if(NOT lib_path MATCHES "^[.][.]")
+ file( GLOB_RECURSE headers
+ ${MLIR_SOURCE_DIR}/include/mlir/${lib_path}/*.h
+ ${MLIR_SOURCE_DIR}/include/mlir/${lib_path}/*.def
+ )
+ set_source_files_properties(${headers} PROPERTIES HEADER_FILE_ONLY ON)
+
+ file( GLOB_RECURSE tds
+ ${MLIR_SOURCE_DIR}/include/mlir/${lib_path}/*.td
+ )
+ source_group("TableGen descriptions" FILES ${tds})
+ set_source_files_properties(${tds}} PROPERTIES HEADER_FILE_ONLY ON)
+
+ if(headers OR tds)
+ set(srcs ${headers} ${tds})
+ endif()
+ endif()
+ endif(MSVC_IDE OR XCODE)
+ if(srcs OR ARG_ADDITIONAL_HEADERS)
+ set(srcs
+ ADDITIONAL_HEADERS
+ ${srcs}
+ ${ARG_ADDITIONAL_HEADERS} # It may contain unparsed unknown args.
+ )
+ endif()
+ if(ARG_SHARED)
+ set(LIBTYPE SHARED)
+ else()
+ # llvm_add_library ignores BUILD_SHARED_LIBS if STATIC is explicitly set,
+ # so we need to handle it here.
+ if(BUILD_SHARED_LIBS)
+ set(LIBTYPE SHARED)
+ else()
+ set(LIBTYPE STATIC)
+ endif()
+ if(NOT XCODE)
+ # The Xcode generator doesn't handle object libraries correctly.
+ list(APPEND LIBTYPE OBJECT)
+ endif()
+ # Test libraries and such shouldn't be include in libMLIR.so
+ if(NOT ARG_EXCLUDE_FROM_LIBMLIR)
+ set_property(GLOBAL APPEND PROPERTY MLIR_STATIC_LIBS ${name})
+ set_property(GLOBAL APPEND PROPERTY MLIR_LLVM_LINK_COMPONENTS ${ARG_LINK_COMPONENTS})
+ set_property(GLOBAL APPEND PROPERTY MLIR_LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS})
+ endif()
+ endif()
+
+ # MLIR libraries uniformly depend on LLVMSupport. Just specify it once here.
+ list(APPEND ARG_LINK_COMPONENTS Support)
+ list(APPEND ARG_DEPENDS mlir-generic-headers)
+ llvm_add_library(${name} ${LIBTYPE} ${ARG_UNPARSED_ARGUMENTS} ${srcs} DEPENDS ${ARG_DEPENDS} LINK_COMPONENTS ${ARG_LINK_COMPONENTS} LINK_LIBS ${ARG_LINK_LIBS})
+
+ if(TARGET ${name})
+ target_link_libraries(${name} INTERFACE ${LLVM_COMMON_LIBS})
+
+ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
+ set(export_to_mlirtargets)
+ if (${name} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
+ "mlir-libraries" IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR
+ NOT LLVM_DISTRIBUTION_COMPONENTS)
+ set(export_to_mlirtargets EXPORT MLIRTargets)
+ set_property(GLOBAL PROPERTY MLIR_HAS_EXPORTS True)
+ endif()
+
+ install(TARGETS ${name}
+ COMPONENT ${name}
+ ${export_to_mlirtargets}
+ LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+ ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
+ RUNTIME DESTINATION bin)
+
+ if (NOT LLVM_ENABLE_IDE)
+ add_llvm_install_targets(install-${name}
+ DEPENDS ${name}
+ COMPONENT ${name})
+ endif()
+ set_property(GLOBAL APPEND PROPERTY MLIR_ALL_LIBS ${name})
+ endif()
+ set_property(GLOBAL APPEND PROPERTY MLIR_EXPORTS ${name})
+ else()
+ # Add empty "phony" target
+ add_custom_target(${name})
+ endif()
+ set_target_properties(${name} PROPERTIES FOLDER "MLIR libraries")
+endfunction(add_mlir_library)
# Declare the library associated with a dialect.
function(add_mlir_dialect_library name)
@@ -52,3 +152,37 @@ function(add_mlir_translation_library name)
set_property(GLOBAL APPEND PROPERTY MLIR_TRANSLATION_LIBS ${name})
add_mlir_library(${ARGV} DEPENDS mlir-headers)
endfunction(add_mlir_translation_library)
+
+# Verification tools to aid debugging.
+function(mlir_check_link_libraries name)
+ if(TARGET ${name})
+ get_target_property(libs ${name} LINK_LIBRARIES)
+ # message("${name} libs are: ${libs}")
+ set(linking_llvm 0)
+ foreach(lib ${libs})
+ if(lib)
+ if(${lib} MATCHES "^LLVM$")
+ set(linking_llvm 1)
+ endif()
+ if((${lib} MATCHES "^LLVM.+") AND ${linking_llvm})
+ # This will almost always cause execution problems, since the
+ # same symbol might be loaded from 2 separate libraries. This
+ # often comes from referring to an LLVM library target
+ # explicitly in target_link_libraries()
+ message("WARNING: ${l} links LLVM and ${lib}!")
+ endif()
+ endif()
+ endforeach()
+ endif()
+endfunction(mlir_check_link_libraries)
+
+function(mlir_check_all_link_libraries name)
+ mlir_check_link_libraries(${name})
+ if(TARGET ${name})
+ get_target_property(libs ${name} LINK_LIBRARIES)
+ # message("${name} libs are: ${libs}")
+ foreach(lib ${libs})
+ mlir_check_link_libraries(${lib})
+ endforeach()
+ endif()
+endfunction(mlir_check_all_link_libraries)
diff --git a/mlir/cmake/modules/MLIRConfig.cmake.in b/mlir/cmake/modules/MLIRConfig.cmake.in
index e8822e50ad55..de38f94add75 100644
--- a/mlir/cmake/modules/MLIRConfig.cmake.in
+++ b/mlir/cmake/modules/MLIRConfig.cmake.in
@@ -19,9 +19,7 @@ set_property(GLOBAL PROPERTY MLIR_DIALECT_LIBS "@MLIR_DIALECT_LIBS@")
set_property(GLOBAL PROPERTY MLIR_CONVERSION_LIBS "@MLIR_CONVERSION_LIBS@")
# Provide all our library targets to users.
-if(EXISTS @MLIR_CONFIG_EXPORTS_FILE@)
- include("@MLIR_CONFIG_EXPORTS_FILE@")
-endif()
+include("@MLIR_CONFIG_EXPORTS_FILE@")
# By creating these targets here, subprojects that depend on MLIR's
# tablegen-generated headers can always depend on these targets whether building
diff --git a/mlir/examples/toy/Ch6/CMakeLists.txt b/mlir/examples/toy/Ch6/CMakeLists.txt
index be797c6c1e96..c821c77f461c 100644
--- a/mlir/examples/toy/Ch6/CMakeLists.txt
+++ b/mlir/examples/toy/Ch6/CMakeLists.txt
@@ -4,6 +4,8 @@ add_subdirectory(include)
set(LLVM_LINK_COMPONENTS
Core
Support
+ nativecodegen
+ OrcJIT
)
set(LLVM_TARGET_DEFINITIONS mlir/ToyCombine.td)
diff --git a/mlir/examples/toy/Ch7/CMakeLists.txt b/mlir/examples/toy/Ch7/CMakeLists.txt
index 9a9f335d3a92..f622bf5ac527 100644
--- a/mlir/examples/toy/Ch7/CMakeLists.txt
+++ b/mlir/examples/toy/Ch7/CMakeLists.txt
@@ -4,6 +4,8 @@ add_subdirectory(include)
set(LLVM_LINK_COMPONENTS
Core
Support
+ nativecodegen
+ OrcJIT
)
set(LLVM_TARGET_DEFINITIONS mlir/ToyCombine.td)
diff --git a/mlir/lib/Analysis/CMakeLists.txt b/mlir/lib/Analysis/CMakeLists.txt
index 2fa57c510fdf..63ddcdaee3d3 100644
--- a/mlir/lib/Analysis/CMakeLists.txt
+++ b/mlir/lib/Analysis/CMakeLists.txt
@@ -17,12 +17,7 @@ add_mlir_library(MLIRAnalysis
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Analysis
- DEPENDS
- mlir-generic-headers
- )
-
-target_link_libraries(MLIRAnalysis
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIRCallInterfaces
MLIRControlFlowInterfaces
@@ -40,14 +35,10 @@ add_mlir_library(MLIRLoopAnalysis
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Analysis
- DEPENDS
- mlir-generic-headers
- )
-
-target_link_libraries(MLIRLoopAnalysis
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIRCallInterfaces
MLIRControlFlowInterfaces
MLIRInferTypeOpInterface
- MLIRLoopOps)
+ MLIRLoopOps
+ )
diff --git a/mlir/lib/Conversion/AVX512ToLLVM/CMakeLists.txt b/mlir/lib/Conversion/AVX512ToLLVM/CMakeLists.txt
index 11397b9e105e..d3257b136cf1 100644
--- a/mlir/lib/Conversion/AVX512ToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/AVX512ToLLVM/CMakeLists.txt
@@ -6,15 +6,14 @@ add_mlir_conversion_library(MLIRAVX512ToLLVM
DEPENDS
MLIRConversionPassIncGen
-)
-target_link_libraries(MLIRAVX512ToLLVM
- PUBLIC
+ LINK_COMPONENTS
+ Core
+
+ LINK_LIBS PUBLIC
MLIRAVX512
MLIRLLVMAVX512
MLIRLLVMIR
MLIRStandardToLLVM
MLIRTransforms
- LLVMCore
- LLVMSupport
)
diff --git a/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt b/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
index 9324f7b21c80..6b54324aa0d3 100644
--- a/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/AffineToStandard/CMakeLists.txt
@@ -6,16 +6,15 @@ add_mlir_conversion_library(MLIRAffineToStandard
DEPENDS
MLIRConversionPassIncGen
-)
-target_link_libraries(
- MLIRAffineToStandard
- PUBLIC
+
+ LINK_COMPONENTS
+ Core
+
+ LINK_LIBS PUBLIC
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 a64280e9ded9..98b52eb81552 100644
--- a/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToCUDA/CMakeLists.txt
@@ -9,9 +9,9 @@ set(SOURCES
if (MLIR_CUDA_CONVERSIONS_ENABLED)
list(APPEND SOURCES "ConvertKernelFuncToCubin.cpp")
set(NVPTX_LIBS
- LLVMNVPTXCodeGen
- LLVMNVPTXDesc
- LLVMNVPTXInfo
+ NVPTXCodeGen
+ NVPTXDesc
+ NVPTXInfo
)
endif()
@@ -21,13 +21,13 @@ add_mlir_conversion_library(MLIRGPUtoCUDATransforms
DEPENDS
MLIRConversionPassIncGen
intrinsics_gen
-)
-target_link_libraries(MLIRGPUtoCUDATransforms
- PUBLIC
+
+ LINK_COMPONENTS
+ Core
+ MC
${NVPTX_LIBS}
- LLVMCore
- LLVMMC
- LLVMSupport
+
+ LINK_LIBS PUBLIC
MLIRGPU
MLIRIR
MLIRLLVMIR
diff --git a/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt b/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
index b7c583d57169..fe8502f0061c 100644
--- a/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToNVVM/CMakeLists.txt
@@ -8,11 +8,8 @@ add_mlir_conversion_library(MLIRGPUtoNVVMTransforms
DEPENDS
MLIRConversionPassIncGen
MLIRGPUToNVVMIncGen
- )
-target_link_libraries(MLIRGPUtoNVVMTransforms
- PUBLIC
- LLVMSupport
+ LINK_LIBS PUBLIC
MLIRGPU
MLIRLLVMIR
MLIRNVVMIR
diff --git a/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt b/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
index 2161abd37541..38b6e1a5ea4f 100644
--- a/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToROCDL/CMakeLists.txt
@@ -8,11 +8,8 @@ add_mlir_conversion_library(MLIRGPUtoROCDLTransforms
DEPENDS
MLIRConversionPassIncGen
MLIRGPUToROCDLIncGen
- )
-target_link_libraries(MLIRGPUtoROCDLTransforms
- PUBLIC
- LLVMSupport
+ LINK_LIBS PUBLIC
MLIRGPU
MLIRLLVMIR
MLIRROCDLIR
diff --git a/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
index f473a3e04e51..aa202a34c556 100644
--- a/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToSPIRV/CMakeLists.txt
@@ -9,10 +9,8 @@ add_mlir_conversion_library(MLIRGPUtoSPIRVTransforms
DEPENDS
MLIRConversionPassIncGen
MLIRGPUToSPIRVIncGen
- )
-target_link_libraries(MLIRGPUtoSPIRVTransforms
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRGPU
MLIRIR
MLIRPass
diff --git a/mlir/lib/Conversion/GPUToVulkan/CMakeLists.txt b/mlir/lib/Conversion/GPUToVulkan/CMakeLists.txt
index ecfc2d75d5f3..c0265096d73b 100644
--- a/mlir/lib/Conversion/GPUToVulkan/CMakeLists.txt
+++ b/mlir/lib/Conversion/GPUToVulkan/CMakeLists.txt
@@ -4,10 +4,8 @@ add_mlir_conversion_library(MLIRGPUtoVulkanTransforms
DEPENDS
MLIRConversionPassIncGen
- )
-target_link_libraries(MLIRGPUtoVulkanTransforms
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRGPU
MLIRIR
MLIRLLVMIR
@@ -18,5 +16,4 @@ target_link_libraries(MLIRGPUtoVulkanTransforms
MLIRSupport
MLIRTransforms
MLIRTranslation
- LLVMSupport
)
diff --git a/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt b/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
index aa2dd990de4c..45b60c7ecd86 100644
--- a/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/LinalgToLLVM/CMakeLists.txt
@@ -7,10 +7,11 @@ add_mlir_conversion_library(MLIRLinalgToLLVM
DEPENDS
MLIRConversionPassIncGen
intrinsics_gen
- )
-target_link_libraries(MLIRLinalgToLLVM
- PUBLIC
+ LINK_COMPONENTS
+ Core
+
+ LINK_LIBS PUBLIC
MLIRAffineToStandard
MLIREDSC
MLIRIR
@@ -21,6 +22,4 @@ target_link_libraries(MLIRLinalgToLLVM
MLIRVectorToLLVM
MLIRVectorToLoops
MLIRTransforms
- LLVMCore
- LLVMSupport
)
diff --git a/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt
index f0cc53223366..98553ad96748 100644
--- a/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/LinalgToSPIRV/CMakeLists.txt
@@ -8,10 +8,8 @@ add_mlir_conversion_library(MLIRLinalgToSPIRVTransforms
DEPENDS
MLIRConversionPassIncGen
- )
-target_link_libraries(MLIRLinalgToSPIRVTransforms
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRIR
MLIRLinalgOps
MLIRLinalgUtils
diff --git a/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt b/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt
index d4c752847583..cf749b81b0fb 100644
--- a/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/LoopToStandard/CMakeLists.txt
@@ -6,12 +6,11 @@ add_mlir_conversion_library(MLIRLoopToStandard
DEPENDS
MLIRConversionPassIncGen
-)
-target_link_libraries(
- MLIRLoopToStandard
- PUBLIC
+
+ LINK_COMPONENTS
+ Core
+
+ LINK_LIBS PUBLIC
MLIRLoopOps
MLIRTransforms
- LLVMCore
- LLVMSupport
)
diff --git a/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt b/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt
index 5b31429a0d0c..9b4e184d84c3 100644
--- a/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt
+++ b/mlir/lib/Conversion/LoopsToGPU/CMakeLists.txt
@@ -7,9 +7,8 @@ add_mlir_conversion_library(MLIRLoopsToGPU
DEPENDS
MLIRConversionPassIncGen
-)
-target_link_libraries(MLIRLoopsToGPU
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIRAffineToStandard
MLIRGPU
@@ -19,5 +18,4 @@ target_link_libraries(MLIRLoopsToGPU
MLIRStandardOps
MLIRSupport
MLIRTransforms
- LLVMSupport
)
diff --git a/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt b/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
index ba746f78b495..83bda1048739 100644
--- a/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/StandardToLLVM/CMakeLists.txt
@@ -7,12 +7,11 @@ add_mlir_conversion_library(MLIRStandardToLLVM
DEPENDS
MLIRConversionPassIncGen
intrinsics_gen
- )
-target_link_libraries(
- MLIRStandardToLLVM
- PUBLIC
+
+ LINK_COMPONENTS
+ Core
+
+ LINK_LIBS PUBLIC
MLIRLLVMIR
MLIRTransforms
- LLVMCore
- LLVMSupport
)
diff --git a/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt b/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
index bb249078d62c..e60985984da3 100644
--- a/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
+++ b/mlir/lib/Conversion/StandardToSPIRV/CMakeLists.txt
@@ -9,10 +9,8 @@ add_mlir_conversion_library(MLIRStandardToSPIRVTransforms
DEPENDS
MLIRConversionPassIncGen
- )
-target_link_libraries(MLIRStandardToSPIRVTransforms
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRIR
MLIRPass
MLIRSPIRV
diff --git a/mlir/lib/Conversion/StandardToStandard/CMakeLists.txt b/mlir/lib/Conversion/StandardToStandard/CMakeLists.txt
index e1bc42a746ee..2d1a0be0ab7a 100644
--- a/mlir/lib/Conversion/StandardToStandard/CMakeLists.txt
+++ b/mlir/lib/Conversion/StandardToStandard/CMakeLists.txt
@@ -3,9 +3,8 @@ add_mlir_conversion_library(MLIRStandardToStandard
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/StandardToStandard
- )
-target_link_libraries(MLIRStandardToStandard
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRPass
MLIRStandardOps
diff --git a/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt b/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
index 1f8abc5a9091..569619f2bcef 100644
--- a/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
+++ b/mlir/lib/Conversion/VectorToLLVM/CMakeLists.txt
@@ -7,14 +7,13 @@ add_mlir_conversion_library(MLIRVectorToLLVM
DEPENDS
MLIRConversionPassIncGen
intrinsics_gen
- )
-target_link_libraries(MLIRVectorToLLVM
- PUBLIC
+ LINK_COMPONENTS
+ Core
+
+ LINK_LIBS PUBLIC
MLIRLLVMIR
MLIRStandardToLLVM
MLIRVector
MLIRTransforms
- LLVMCore
- LLVMSupport
)
diff --git a/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt b/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt
index 515c0e2d0344..08cbc392d7f6 100644
--- a/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt
+++ b/mlir/lib/Conversion/VectorToLoops/CMakeLists.txt
@@ -3,14 +3,13 @@ add_mlir_conversion_library(MLIRVectorToLoops
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Conversion/VectorToLoops
-)
-target_link_libraries(MLIRVectorToLoops
- PUBLIC
+ LINK_COMPONENTS
+ Core
+
+ LINK_LIBS PUBLIC
MLIREDSC
MLIRAffineEDSC
MLIRLLVMIR
MLIRTransforms
- LLVMCore
- LLVMSupport
)
diff --git a/mlir/lib/Dialect/AVX512/CMakeLists.txt b/mlir/lib/Dialect/AVX512/CMakeLists.txt
index eb1e7dc5c4b5..6b15bf21c2d9 100644
--- a/mlir/lib/Dialect/AVX512/CMakeLists.txt
+++ b/mlir/lib/Dialect/AVX512/CMakeLists.txt
@@ -6,11 +6,9 @@ add_mlir_dialect_library(MLIRAVX512
DEPENDS
MLIRAVX512IncGen
- )
-target_link_libraries(MLIRAVX512
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRSideEffects
MLIRVectorToLLVM
- LLVMSupport
)
diff --git a/mlir/lib/Dialect/Affine/EDSC/CMakeLists.txt b/mlir/lib/Dialect/Affine/EDSC/CMakeLists.txt
index a07905b71fbc..e00986584676 100644
--- a/mlir/lib/Dialect/Affine/EDSC/CMakeLists.txt
+++ b/mlir/lib/Dialect/Affine/EDSC/CMakeLists.txt
@@ -6,9 +6,8 @@ add_mlir_dialect_library(MLIRAffineEDSC
DEPENDS
MLIRAffineOpsIncGen
- )
-target_link_libraries(MLIRAffineEDSC
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIREDSC
MLIRIR
diff --git a/mlir/lib/Dialect/Affine/IR/CMakeLists.txt b/mlir/lib/Dialect/Affine/IR/CMakeLists.txt
index 8d186ae03b54..d34065e3b952 100644
--- a/mlir/lib/Dialect/Affine/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Affine/IR/CMakeLists.txt
@@ -7,9 +7,8 @@ add_mlir_dialect_library(MLIRAffineOps
DEPENDS
MLIRAffineOpsIncGen
- )
-target_link_libraries(MLIRAffineOps
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIREDSC
MLIRIR
MLIRLoopLikeInterface
diff --git a/mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt b/mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt
index bcad44d72497..89c72ae1ddab 100644
--- a/mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/Affine/Transforms/CMakeLists.txt
@@ -14,9 +14,8 @@ add_mlir_dialect_library(MLIRAffineTransforms
MLIRAffineOpsIncGen
MLIRAffinePassIncGen
MLIRLoopLikeInterfaceIncGen
- )
-target_link_libraries(MLIRAffineTransforms
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIREDSC
MLIRIR
diff --git a/mlir/lib/Dialect/Affine/Utils/CMakeLists.txt b/mlir/lib/Dialect/Affine/Utils/CMakeLists.txt
index ed3b5b8b1723..59ae13dcabcf 100644
--- a/mlir/lib/Dialect/Affine/Utils/CMakeLists.txt
+++ b/mlir/lib/Dialect/Affine/Utils/CMakeLists.txt
@@ -4,9 +4,7 @@ add_mlir_dialect_library(MLIRAffineUtils
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Affine
- )
-target_link_libraries(MLIRAffineUtils
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIRTransformUtils
)
diff --git a/mlir/lib/Dialect/CMakeLists.txt b/mlir/lib/Dialect/CMakeLists.txt
index b18a2a671b14..e9196f224ae0 100644
--- a/mlir/lib/Dialect/CMakeLists.txt
+++ b/mlir/lib/Dialect/CMakeLists.txt
@@ -21,8 +21,7 @@ add_mlir_library(MLIRDialect
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect
- )
-target_link_libraries(MLIRDialect
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
)
diff --git a/mlir/lib/Dialect/GPU/CMakeLists.txt b/mlir/lib/Dialect/GPU/CMakeLists.txt
index ad63b3669409..01863d4a3d56 100644
--- a/mlir/lib/Dialect/GPU/CMakeLists.txt
+++ b/mlir/lib/Dialect/GPU/CMakeLists.txt
@@ -13,9 +13,8 @@ add_mlir_dialect_library(MLIRGPU
MLIRGPUPassIncGen
MLIRParallelLoopMapperAttrGen
MLIRParallelLoopMapperEnumsGen
- )
-target_link_libraries(MLIRGPU
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIREDSC
MLIRIR
MLIRLLVMIR
@@ -25,5 +24,4 @@ target_link_libraries(MLIRGPU
MLIRStandardOps
MLIRSupport
MLIRTransformUtils
- LLVMSupport
)
diff --git a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
index 1a30c94dc4e9..7ff3584508c3 100644
--- a/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
+++ b/mlir/lib/Dialect/LLVMIR/CMakeLists.txt
@@ -10,15 +10,15 @@ add_mlir_dialect_library(MLIRLLVMIR
MLIRLLVMOpsIncGen
MLIRLLVMConversionsIncGen
intrinsics_gen
- )
-target_link_libraries(MLIRLLVMIR
- PUBLIC
- LLVMAsmParser
- LLVMBitReader
- LLVMBitWriter
- LLVMCore
- LLVMSupport
- LLVMFrontendOpenMP
+
+ LINK_COMPONENTS
+ AsmParser
+ BitReader
+ BitWriter
+ Core
+ FrontendOpenMP
+
+ LINK_LIBS PUBLIC
MLIRCallInterfaces
MLIRControlFlowInterfaces
MLIROpenMP
@@ -37,15 +37,15 @@ add_mlir_dialect_library(MLIRLLVMAVX512
MLIRLLVMAVX512IncGen
MLIRLLVMAVX512ConversionsIncGen
intrinsics_gen
- )
-target_link_libraries(MLIRLLVMAVX512
- PUBLIC
- LLVMAsmParser
+
+ LINK_COMPONENTS
+ AsmParser
+ Core
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRLLVMIR
MLIRSideEffects
- LLVMSupport
- LLVMCore
)
add_mlir_dialect_library(MLIRNVVMIR
@@ -58,15 +58,15 @@ add_mlir_dialect_library(MLIRNVVMIR
MLIRNVVMOpsIncGen
MLIRNVVMConversionsIncGen
intrinsics_gen
- )
-target_link_libraries(MLIRNVVMIR
- PUBLIC
- LLVMAsmParser
+
+ LINK_COMPONENTS
+ AsmParser
+ Core
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRLLVMIR
MLIRSideEffects
- LLVMSupport
- LLVMCore
)
add_mlir_dialect_library(MLIRROCDLIR
@@ -79,12 +79,12 @@ add_mlir_dialect_library(MLIRROCDLIR
MLIRROCDLOpsIncGen
MLIRROCDLConversionsIncGen
intrinsics_gen
- )
-target_link_libraries(MLIRROCDLIR
- PUBLIC
- LLVMAsmParser
- LLVMCore
- LLVMSupport
+
+ LINK_COMPONENTS
+ AsmParser
+ Core
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRSideEffects
MLIRVectorToLLVM
diff --git a/mlir/lib/Dialect/LLVMIR/Transforms/CMakeLists.txt b/mlir/lib/Dialect/LLVMIR/Transforms/CMakeLists.txt
index 216586e6242d..3e1342dcf2c9 100644
--- a/mlir/lib/Dialect/LLVMIR/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/LLVMIR/Transforms/CMakeLists.txt
@@ -3,10 +3,8 @@ add_mlir_dialect_library(MLIRLLVMIRTransforms
DEPENDS
MLIRLLVMPassIncGen
- )
-target_link_libraries(MLIRLLVMIRTransforms
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRIR
MLIRLLVMIR
MLIRPass
diff --git a/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt
index 794648929f27..5bb56236a04d 100644
--- a/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/Analysis/CMakeLists.txt
@@ -3,12 +3,9 @@ add_mlir_dialect_library(MLIRLinalgAnalysis
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Linalg
- )
-target_link_libraries(MLIRLinalgAnalysis
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRIR
MLIRLinalgOps
MLIRStandardOps
- LLVMSupport
)
diff --git a/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt b/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt
index d6f03f372965..b3f3e5c0804f 100644
--- a/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/EDSC/CMakeLists.txt
@@ -3,10 +3,8 @@ add_mlir_dialect_library(MLIRLinalgEDSC
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Linalg
- )
-target_link_libraries(MLIRLinalgEDSC
- PUBLIC
+ LINK_LIBS PUBLIC
MLIREDSC
MLIRIR
MLIRAffineOps
@@ -14,5 +12,4 @@ target_link_libraries(MLIRLinalgEDSC
MLIRLinalgOps
MLIRLoopOps
MLIRStandardOps
- LLVMSupport
)
diff --git a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
index f088e4fdbc8e..64a51500d792 100644
--- a/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/IR/CMakeLists.txt
@@ -9,9 +9,8 @@ add_mlir_dialect_library(MLIRLinalgOps
MLIRLinalgOpsIncGen
MLIRLinalgStructuredOpsIncGen
MLIRLinalgStructuredOpsInterfaceIncGen
- )
-target_link_libraries(MLIRLinalgOps
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRSideEffects
MLIRViewLikeInterface
diff --git a/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
index 0d8c4938fbd0..ca02cfbc4a83 100644
--- a/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/Transforms/CMakeLists.txt
@@ -12,9 +12,8 @@ add_mlir_dialect_library(MLIRLinalgTransforms
DEPENDS
MLIRLinalgPassIncGen
- )
-target_link_libraries(MLIRLinalgTransforms
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIRAnalysis
MLIREDSC
diff --git a/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt b/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt
index 544c8e6df46e..3b740748c62c 100644
--- a/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt
+++ b/mlir/lib/Dialect/Linalg/Utils/CMakeLists.txt
@@ -3,10 +3,8 @@ add_mlir_dialect_library(MLIRLinalgUtils
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Linalg
- )
-target_link_libraries(MLIRLinalgUtils
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIREDSC
MLIRIR
diff --git a/mlir/lib/Dialect/LoopOps/CMakeLists.txt b/mlir/lib/Dialect/LoopOps/CMakeLists.txt
index 44de8ada2150..ea72f25a303a 100644
--- a/mlir/lib/Dialect/LoopOps/CMakeLists.txt
+++ b/mlir/lib/Dialect/LoopOps/CMakeLists.txt
@@ -8,15 +8,13 @@ add_mlir_dialect_library(MLIRLoopOps
DEPENDS
MLIRLoopOpsIncGen
- )
-target_link_libraries(MLIRLoopOps
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIREDSC
MLIRIR
MLIRLoopLikeInterface
MLIRSideEffects
MLIRStandardOps
- LLVMSupport
)
add_subdirectory(Transforms)
diff --git a/mlir/lib/Dialect/LoopOps/Transforms/CMakeLists.txt b/mlir/lib/Dialect/LoopOps/Transforms/CMakeLists.txt
index 13a6aa6f288a..0339d15f1fdc 100644
--- a/mlir/lib/Dialect/LoopOps/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/LoopOps/Transforms/CMakeLists.txt
@@ -8,14 +8,12 @@ add_mlir_dialect_library(MLIRLoopOpsTransforms
DEPENDS
MLIRLoopPassIncGen
- )
-target_link_libraries(MLIRLoopOpsTransforms
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIRIR
MLIRPass
MLIRLoopOps
MLIRStandardOps
MLIRSupport
- LLVMSupport
)
diff --git a/mlir/lib/Dialect/OpenMP/CMakeLists.txt b/mlir/lib/Dialect/OpenMP/CMakeLists.txt
index 68a939ed4299..23f8cd4058f7 100644
--- a/mlir/lib/Dialect/OpenMP/CMakeLists.txt
+++ b/mlir/lib/Dialect/OpenMP/CMakeLists.txt
@@ -6,8 +6,7 @@ add_mlir_dialect_library(MLIROpenMP
DEPENDS
MLIROpenMPOpsIncGen
- )
-target_link_libraries(MLIROpenMP
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
)
diff --git a/mlir/lib/Dialect/Quant/CMakeLists.txt b/mlir/lib/Dialect/Quant/CMakeLists.txt
index 4f8382962206..19ac787de027 100644
--- a/mlir/lib/Dialect/Quant/CMakeLists.txt
+++ b/mlir/lib/Dialect/Quant/CMakeLists.txt
@@ -15,9 +15,8 @@ add_mlir_dialect_library(MLIRQuant
DEPENDS
MLIRQuantOpsIncGen
MLIRQuantPassIncGen
- )
-target_link_libraries(MLIRQuant
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRPass
MLIRSideEffects
diff --git a/mlir/lib/Dialect/SDBM/CMakeLists.txt b/mlir/lib/Dialect/SDBM/CMakeLists.txt
index 6f5a119408cf..db2b9ac85472 100644
--- a/mlir/lib/Dialect/SDBM/CMakeLists.txt
+++ b/mlir/lib/Dialect/SDBM/CMakeLists.txt
@@ -5,8 +5,7 @@ add_mlir_dialect_library(MLIRSDBM
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SDBM
-)
-target_link_libraries(MLIRSDBM
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
)
diff --git a/mlir/lib/Dialect/SPIRV/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/CMakeLists.txt
index e6834ca2ef3e..8fe368aa04e6 100644
--- a/mlir/lib/Dialect/SPIRV/CMakeLists.txt
+++ b/mlir/lib/Dialect/SPIRV/CMakeLists.txt
@@ -27,9 +27,8 @@ add_mlir_dialect_library(MLIRSPIRV
MLIRSPIRVOpsIncGen
MLIRSPIRVOpUtilsGen
MLIRSPIRVTargetAndABIIncGen
- )
-target_link_libraries(MLIRSPIRV
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRControlFlowInterfaces
MLIRIR
MLIRParser
diff --git a/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt
index 8f24491f4715..c04f801321ea 100644
--- a/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt
+++ b/mlir/lib/Dialect/SPIRV/Serialization/CMakeLists.txt
@@ -9,9 +9,8 @@ add_mlir_dialect_library(MLIRSPIRVSerialization
DEPENDS
MLIRSPIRVSerializationGen
- )
-target_link_libraries(MLIRSPIRVSerialization
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRSPIRV
MLIRSupport
diff --git a/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt b/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
index e388069d52ee..632194f213d6 100644
--- a/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
+++ b/mlir/lib/Dialect/SPIRV/Transforms/CMakeLists.txt
@@ -8,10 +8,8 @@ add_mlir_dialect_library(MLIRSPIRVTransforms
DEPENDS
MLIRSPIRVPassIncGen
- )
-target_link_libraries(MLIRSPIRVTransforms
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRPass
MLIRSPIRV
)
diff --git a/mlir/lib/Dialect/Shape/CMakeLists.txt b/mlir/lib/Dialect/Shape/CMakeLists.txt
index 4ed02acc3d46..1f198f7b8148 100644
--- a/mlir/lib/Dialect/Shape/CMakeLists.txt
+++ b/mlir/lib/Dialect/Shape/CMakeLists.txt
@@ -6,12 +6,10 @@ add_mlir_dialect_library(MLIRShape
DEPENDS
MLIRShapeOpsIncGen
- )
-target_link_libraries(MLIRShape
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRDialect
MLIRInferTypeOpInterface
MLIRIR
MLIRSideEffects
- LLVMSupport
)
diff --git a/mlir/lib/Dialect/StandardOps/CMakeLists.txt b/mlir/lib/Dialect/StandardOps/CMakeLists.txt
index 471674c0ca76..6d83cbb375ae 100644
--- a/mlir/lib/Dialect/StandardOps/CMakeLists.txt
+++ b/mlir/lib/Dialect/StandardOps/CMakeLists.txt
@@ -8,14 +8,12 @@ add_mlir_dialect_library(MLIRStandardOps
DEPENDS
MLIRStandardOpsIncGen
- )
-target_link_libraries(MLIRStandardOps
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRCallInterfaces
MLIRControlFlowInterfaces
MLIREDSC
MLIRIR
MLIRSideEffects
MLIRViewLikeInterface
- LLVMSupport
)
diff --git a/mlir/lib/Dialect/Vector/CMakeLists.txt b/mlir/lib/Dialect/Vector/CMakeLists.txt
index 3e1d8de0d3ba..9ccbb76b7bd2 100644
--- a/mlir/lib/Dialect/Vector/CMakeLists.txt
+++ b/mlir/lib/Dialect/Vector/CMakeLists.txt
@@ -10,9 +10,8 @@ add_mlir_dialect_library(MLIRVector
DEPENDS
MLIRVectorOpsIncGen
MLIRVectorTransformPatternsIncGen
- )
-target_link_libraries(MLIRVector
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIREDSC
MLIRIR
MLIRStandardOps
diff --git a/mlir/lib/EDSC/CMakeLists.txt b/mlir/lib/EDSC/CMakeLists.txt
index 1435dbb22926..6d56f263f271 100644
--- a/mlir/lib/EDSC/CMakeLists.txt
+++ b/mlir/lib/EDSC/CMakeLists.txt
@@ -8,10 +8,8 @@ add_mlir_library(MLIREDSC
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/EDSC
- )
-target_link_libraries(MLIREDSC
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRIR
MLIRSupport
)
@@ -21,9 +19,8 @@ add_mlir_library(MLIREDSCInterface
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/EDSC
- )
-target_link_libraries(MLIREDSCInterface
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRSupport
MLIRParser
diff --git a/mlir/lib/ExecutionEngine/CMakeLists.txt b/mlir/lib/ExecutionEngine/CMakeLists.txt
index 61509b35b71c..06e25dcf27b8 100644
--- a/mlir/lib/ExecutionEngine/CMakeLists.txt
+++ b/mlir/lib/ExecutionEngine/CMakeLists.txt
@@ -1,3 +1,6 @@
+# Exclude these from libMLIR.so because the JIT infrastructure
+# is a big dependency which most don't need.
+
set(LLVM_OPTIONAL_SOURCES
CRunnerUtils.cpp
ExecutionEngine.cpp
@@ -5,46 +8,63 @@ set(LLVM_OPTIONAL_SOURCES
OptUtils.cpp
)
-llvm_map_components_to_libnames(outlibs "nativecodegen" "IPO")
add_mlir_library(MLIRExecutionEngine
ExecutionEngine.cpp
OptUtils.cpp
+ EXCLUDE_FROM_LIBMLIR
+
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/ExecutionEngine
DEPENDS
intrinsics_gen
- )
-target_link_libraries(MLIRExecutionEngine
- PUBLIC
+
+ LINK_COMPONENTS
+ Core
+ ExecutionEngine
+ Object
+ OrcJIT
+ JITLink
+ Analysis
+ AggressiveInstCombine
+ InstCombine
+ MC
+ ScalarOpts
+ Target
+ Vectorize
+ TransformUtils
+ nativecodegen
+ IPO
+
+ LINK_LIBS PUBLIC
MLIRLLVMIR
MLIRTargetLLVMIR
- LLVMExecutionEngine
- LLVMObject
- LLVMOrcJIT
- LLVMJITLink
- LLVMSupport
- LLVMAnalysis
- LLVMAggressiveInstCombine
- LLVMInstCombine
- LLVMMC
- LLVMScalarOpts
- LLVMTarget
- LLVMVectorize
- LLVMTransformUtils
-
- ${outlibs})
-
-add_llvm_library(mlir_c_runner_utils SHARED CRunnerUtils.cpp)
+ )
+
+add_mlir_library(mlir_c_runner_utils
+ SHARED
+ CRunnerUtils.cpp
+
+ EXCLUDE_FROM_LIBMLIR
+ )
set_property(TARGET mlir_c_runner_utils PROPERTY CXX_STANDARD 11)
-add_llvm_library(mlir_c_runner_utils_static CRunnerUtils.cpp)
+
+add_mlir_library(mlir_c_runner_utils_static
+ CRunnerUtils.cpp
+
+ EXCLUDE_FROM_LIBMLIR
+ )
set_property(TARGET mlir_c_runner_utils_static PROPERTY CXX_STANDARD 11)
target_compile_definitions(mlir_c_runner_utils PRIVATE mlir_c_runner_utils_EXPORTS)
-add_llvm_library(mlir_runner_utils SHARED RunnerUtils.cpp)
-target_link_libraries(mlir_runner_utils
- PUBLIC
+add_mlir_library(mlir_runner_utils
+ SHARED
+ RunnerUtils.cpp
+
+ EXCLUDE_FROM_LIBMLIR
+
+ LINK_LIBS PUBLIC
mlir_c_runner_utils_static
)
target_compile_definitions(mlir_runner_utils PRIVATE mlir_runner_utils_EXPORTS)
diff --git a/mlir/lib/IR/CMakeLists.txt b/mlir/lib/IR/CMakeLists.txt
index 88c36eee4c77..2d5f5cb9e2b4 100644
--- a/mlir/lib/IR/CMakeLists.txt
+++ b/mlir/lib/IR/CMakeLists.txt
@@ -9,9 +9,8 @@ add_mlir_library(MLIRIR
MLIRCallInterfacesIncGen
MLIROpAsmInterfacesIncGen
MLIRSymbolInterfacesIncGen
- )
-target_link_libraries(MLIRIR
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRSupport
LLVMSupport
)
diff --git a/mlir/lib/Interfaces/CMakeLists.txt b/mlir/lib/Interfaces/CMakeLists.txt
index 093b4faf3613..61b64148db41 100644
--- a/mlir/lib/Interfaces/CMakeLists.txt
+++ b/mlir/lib/Interfaces/CMakeLists.txt
@@ -16,9 +16,8 @@ add_mlir_library(MLIRCallInterfaces
DEPENDS
MLIRCallInterfacesIncGen
- )
-target_link_libraries(MLIRCallInterfaces
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
)
@@ -30,9 +29,8 @@ add_mlir_library(MLIRControlFlowInterfaces
DEPENDS
MLIRControlFlowInterfacesIncGen
- )
-target_link_libraries(MLIRControlFlowInterfaces
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
)
@@ -44,9 +42,8 @@ add_mlir_library(MLIRDerivedAttributeOpInterface
DEPENDS
MLIRDerivedAttributeOpInterfaceIncGen
- )
-target_link_libraries(MLIRDerivedAttributeOpInterface
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
)
@@ -58,9 +55,8 @@ add_mlir_library(MLIRInferTypeOpInterface
DEPENDS
MLIRInferTypeOpInterfaceIncGen
- )
-target_link_libraries(MLIRInferTypeOpInterface
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
)
@@ -72,9 +68,8 @@ add_mlir_library(MLIRLoopLikeInterface
DEPENDS
MLIRLoopLikeInterfaceIncGen
- )
-target_link_libraries(MLIRLoopLikeInterface
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
)
@@ -86,9 +81,8 @@ add_mlir_library(MLIRSideEffects
DEPENDS
MLIRSideEffectOpInterfacesIncGen
- )
-target_link_libraries(MLIRSideEffects
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
)
@@ -100,8 +94,7 @@ add_mlir_library(MLIRViewLikeInterface
DEPENDS
MLIRViewLikeInterfaceIncGen
- )
-target_link_libraries(MLIRViewLikeInterface
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
)
diff --git a/mlir/lib/Parser/CMakeLists.txt b/mlir/lib/Parser/CMakeLists.txt
index fe2e03030880..b9ab3f33ba20 100644
--- a/mlir/lib/Parser/CMakeLists.txt
+++ b/mlir/lib/Parser/CMakeLists.txt
@@ -6,10 +6,6 @@ add_mlir_library(MLIRParser
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Parser
- DEPENDS
- mlir-generic-headers
- )
-target_link_libraries(MLIRParser
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRIR
)
diff --git a/mlir/lib/Pass/CMakeLists.txt b/mlir/lib/Pass/CMakeLists.txt
index 7e86864cf6c4..c012b056dba3 100644
--- a/mlir/lib/Pass/CMakeLists.txt
+++ b/mlir/lib/Pass/CMakeLists.txt
@@ -4,9 +4,11 @@ add_mlir_library(MLIRPass
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Pass
- )
-target_link_libraries(MLIRPass
- PUBLIC
+
+ DEPENDS
+ mlir-generic-headers
+
+ LINK_LIBS PUBLIC
MLIRAnalysis
MLIRIR
- LLVMSupport)
+ )
diff --git a/mlir/lib/Support/CMakeLists.txt b/mlir/lib/Support/CMakeLists.txt
index 193c7b41f599..dcb28518b1a2 100644
--- a/mlir/lib/Support/CMakeLists.txt
+++ b/mlir/lib/Support/CMakeLists.txt
@@ -13,10 +13,11 @@ add_mlir_library(MLIRSupport
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Support
- )
-target_link_libraries(MLIRSupport
- PUBLIC
- LLVMSupport
+
+ LINK_COMPONENTS
+ Support
+
+ LINK_LIBS PUBLIC
${LLVM_PTHREAD_LIB})
add_mlir_library(MLIROptLib
@@ -24,23 +25,33 @@ add_mlir_library(MLIROptLib
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Support
- )
-target_link_libraries(MLIROptLib
- PUBLIC
+
+ LINK_COMPONENTS
+ Support
+
+ LINK_LIBS PUBLIC
MLIRPass
MLIRParser
- LLVMSupport
MLIRSupport
)
-add_llvm_library(MLIRJitRunner
+# Exclude from libMLIR.so because the JIT infrastructure
+# is a big dependency which most don't need.
+add_mlir_library(MLIRJitRunner
JitRunner.cpp
DEPENDS
intrinsics_gen
-)
-target_link_libraries(MLIRJitRunner
- PUBLIC
+
+ EXCLUDE_FROM_LIBMLIR
+
+ LINK_COMPONENTS
+ Core
+ OrcJIT
+ JITLink
+ Support
+
+ LINK_LIBS PUBLIC
MLIRExecutionEngine
MLIRIR
MLIRParser
@@ -49,6 +60,4 @@ target_link_libraries(MLIRJitRunner
MLIRTransforms
MLIRStandardToLLVM
MLIRSupport
- LLVMCore
- LLVMSupport
)
diff --git a/mlir/lib/TableGen/CMakeLists.txt b/mlir/lib/TableGen/CMakeLists.txt
index a395fdb14a7a..780c98a5660d 100644
--- a/mlir/lib/TableGen/CMakeLists.txt
+++ b/mlir/lib/TableGen/CMakeLists.txt
@@ -1,4 +1,8 @@
-add_llvm_library(LLVMMLIRTableGen
+# 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.
+llvm_add_library(LLVMMLIRTableGen STATIC
Argument.cpp
Attribute.cpp
Constraint.cpp
@@ -16,10 +20,14 @@ add_llvm_library(LLVMMLIRTableGen
Successor.cpp
Type.cpp
+ DISABLE_LLVM_LINK_LLVM_DYLIB
+
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/TableGen
+
+ LINK_COMPONENTS
+ TableGen
+ Demangle
)
-target_link_libraries(LLVMMLIRTableGen
- PUBLIC
- LLVMSupport
- LLVMTableGen)
+
+mlir_check_all_link_libraries(LLVMMLIRTableGen)
diff --git a/mlir/lib/Target/CMakeLists.txt b/mlir/lib/Target/CMakeLists.txt
index ab4008a717a6..4a0af66a04b1 100644
--- a/mlir/lib/Target/CMakeLists.txt
+++ b/mlir/lib/Target/CMakeLists.txt
@@ -4,17 +4,18 @@ add_mlir_translation_library(MLIRTargetLLVMIRModuleTranslation
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Target/LLVMIR
+
DEPENDS
intrinsics_gen
- )
-target_link_libraries(MLIRTargetLLVMIRModuleTranslation
- PUBLIC
+
+ LINK_COMPONENTS
+ Core
+ FrontendOpenMP
+ TransformUtils
+
+ LINK_LIBS PUBLIC
MLIRLLVMIR
MLIRLLVMIRTransforms
- LLVMCore
- LLVMIRReader
- LLVMSupport
- LLVMTransformUtils
MLIRTranslation
)
@@ -23,11 +24,14 @@ add_mlir_translation_library(MLIRTargetAVX512
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Target/LLVMIR
+
DEPENDS
MLIRLLVMAVX512ConversionsIncGen
- )
-target_link_libraries(MLIRTargetAVX512
- PUBLIC
+
+ LINK_COMPONENTS
+ Core
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRLLVMAVX512
MLIRLLVMIR
@@ -40,9 +44,12 @@ add_mlir_translation_library(MLIRTargetLLVMIR
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Target/LLVMIR
- )
-target_link_libraries(MLIRTargetLLVMIR
- PUBLIC
+
+ LINK_COMPONENTS
+ Core
+ IRReader
+
+ LINK_LIBS PUBLIC
MLIRTargetLLVMIRModuleTranslation
)
@@ -51,11 +58,14 @@ add_mlir_translation_library(MLIRTargetNVVMIR
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Target/LLVMIR
+
DEPENDS
intrinsics_gen
- )
-target_link_libraries(MLIRTargetNVVMIR
- PUBLIC
+
+ LINK_COMPONENTS
+ Core
+
+ LINK_LIBS PUBLIC
MLIRGPU
MLIRIR
MLIRLLVMIR
@@ -68,11 +78,14 @@ add_mlir_translation_library(MLIRTargetROCDLIR
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Target/LLVMIR
+
DEPENDS
intrinsics_gen
- )
-target_link_libraries(MLIRTargetROCDLIR
- PUBLIC
+
+ LINK_COMPONENTS
+ Core
+
+ LINK_LIBS PUBLIC
MLIRGPU
MLIRIR
MLIRLLVMIR
diff --git a/mlir/lib/Transforms/CMakeLists.txt b/mlir/lib/Transforms/CMakeLists.txt
index 531813575849..97e71a578070 100644
--- a/mlir/lib/Transforms/CMakeLists.txt
+++ b/mlir/lib/Transforms/CMakeLists.txt
@@ -26,10 +26,8 @@ add_mlir_library(MLIRTransforms
DEPENDS
MLIRStandardOpsIncGen
MLIRTransformsPassIncGen
- )
-target_link_libraries(MLIRTransforms
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIRAnalysis
MLIRLoopLikeInterface
diff --git a/mlir/lib/Transforms/Utils/CMakeLists.txt b/mlir/lib/Transforms/Utils/CMakeLists.txt
index 1e0442179bf4..a06523ed4aaa 100644
--- a/mlir/lib/Transforms/Utils/CMakeLists.txt
+++ b/mlir/lib/Transforms/Utils/CMakeLists.txt
@@ -12,10 +12,8 @@ add_mlir_library(MLIRTransformUtils
DEPENDS
MLIRStandardOpsIncGen
- )
-target_link_libraries(MLIRTransformUtils
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIRAnalysis
MLIRLoopAnalysis
diff --git a/mlir/lib/Translation/CMakeLists.txt b/mlir/lib/Translation/CMakeLists.txt
index 2cd1a7c9ee3e..579de292fdb2 100644
--- a/mlir/lib/Translation/CMakeLists.txt
+++ b/mlir/lib/Translation/CMakeLists.txt
@@ -3,10 +3,8 @@ add_mlir_library(MLIRTranslation
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Translation
- )
-target_link_libraries(MLIRTranslation
- PUBLIC
- LLVMSupport
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRParser
)
diff --git a/mlir/test/EDSC/CMakeLists.txt b/mlir/test/EDSC/CMakeLists.txt
index d8e3be8f2079..dda2a25fdb04 100644
--- a/mlir/test/EDSC/CMakeLists.txt
+++ b/mlir/test/EDSC/CMakeLists.txt
@@ -1,3 +1,7 @@
+set(LLVM_LINK_COMPONENTS
+ Core
+ Support
+ )
add_llvm_executable(mlir-edsc-builder-api-test
builder-api-test.cpp
)
@@ -16,8 +20,6 @@ target_link_libraries(mlir-edsc-builder-api-test
MLIRStandardOps
MLIRTransforms
MLIRVector
- LLVMCore
- LLVMSupport
-)
+ )
target_include_directories(mlir-edsc-builder-api-test PRIVATE ..)
diff --git a/mlir/test/SDBM/CMakeLists.txt b/mlir/test/SDBM/CMakeLists.txt
index 9e0023750e68..633fae707c85 100644
--- a/mlir/test/SDBM/CMakeLists.txt
+++ b/mlir/test/SDBM/CMakeLists.txt
@@ -1,3 +1,8 @@
+set(LLVM_LINK_COMPONENTS
+ Core
+ Support
+ )
+
add_llvm_executable(mlir-sdbm-api-test
sdbm-api-test.cpp
)
@@ -9,8 +14,6 @@ target_link_libraries(mlir-sdbm-api-test
MLIRIR
MLIRSDBM
MLIRSupport
- LLVMCore
- LLVMSupport
)
target_include_directories(mlir-sdbm-api-test PRIVATE ..)
diff --git a/mlir/test/lib/Dialect/Affine/CMakeLists.txt b/mlir/test/lib/Dialect/Affine/CMakeLists.txt
index 56195ba2e875..68a0b06e0e31 100644
--- a/mlir/test/lib/Dialect/Affine/CMakeLists.txt
+++ b/mlir/test/lib/Dialect/Affine/CMakeLists.txt
@@ -1,16 +1,21 @@
-add_llvm_library(MLIRAffineTransformsTestPasses
+# Exclude tests from libMLIR.so
+add_mlir_library(MLIRAffineTransformsTestPasses
TestAffineDataCopy.cpp
TestAffineLoopUnswitching.cpp
TestLoopPermutation.cpp
TestParallelismDetection.cpp
TestVectorizationUtils.cpp
+ EXCLUDE_FROM_LIBMLIR
+
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/Affine
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- )
-target_link_libraries(MLIRAffineTransformsTestPasses PRIVATE
+ LINK_COMPONENTS
+ Core
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRPass
MLIRAffineTransforms
diff --git a/mlir/test/lib/Dialect/SPIRV/CMakeLists.txt b/mlir/test/lib/Dialect/SPIRV/CMakeLists.txt
index 5035c9cc8d49..15d4673f381f 100644
--- a/mlir/test/lib/Dialect/SPIRV/CMakeLists.txt
+++ b/mlir/test/lib/Dialect/SPIRV/CMakeLists.txt
@@ -1,12 +1,14 @@
-add_llvm_library(MLIRSPIRVTestPasses
+# Exclude tests from libMLIR.so
+add_mlir_library(MLIRSPIRVTestPasses
TestAvailability.cpp
+ EXCLUDE_FROM_LIBMLIR
+
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Dialect/SPIRV
${MLIR_MAIN_INCLUDE_DIR}/mlir/IR
- )
-target_link_libraries(MLIRSPIRVTestPasses PRIVATE
+ LINK_LIBS PUBLIC
MLIRIR
MLIRPass
MLIRSPIRV
diff --git a/mlir/test/lib/Dialect/Test/CMakeLists.txt b/mlir/test/lib/Dialect/Test/CMakeLists.txt
index ae62fb04f98a..542be7b6ac9c 100644
--- a/mlir/test/lib/Dialect/Test/CMakeLists.txt
+++ b/mlir/test/lib/Dialect/Test/CMakeLists.txt
@@ -14,16 +14,17 @@ mlir_tablegen(TestOpStructs.cpp.inc -gen-struct-attr-defs)
mlir_tablegen(TestPatterns.inc -gen-rewriters)
add_public_tablegen_target(MLIRTestOpsIncGen)
-add_llvm_library(MLIRTestDialect
+# Exclude tests from libMLIR.so
+add_mlir_library(MLIRTestDialect
TestDialect.cpp
TestPatterns.cpp
+ EXCLUDE_FROM_LIBMLIR
+
DEPENDS
MLIRTestOpsIncGen
-)
-target_link_libraries(MLIRTestDialect
- PUBLIC
- LLVMSupport
+
+ LINK_LIBS PUBLIC
MLIRControlFlowInterfaces
MLIRDerivedAttributeOpInterface
MLIRDialect
diff --git a/mlir/test/lib/IR/CMakeLists.txt b/mlir/test/lib/IR/CMakeLists.txt
index c4e4ebc9b88e..0a55a82b1c3d 100644
--- a/mlir/test/lib/IR/CMakeLists.txt
+++ b/mlir/test/lib/IR/CMakeLists.txt
@@ -1,16 +1,15 @@
-add_llvm_library(MLIRTestIR
+# Exclude tests from libMLIR.so
+add_mlir_library(MLIRTestIR
TestFunc.cpp
TestMatchers.cpp
TestSideEffects.cpp
TestSymbolUses.cpp
- ADDITIONAL_HEADER_DIRS
- )
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../Dialect/Test)
-include_directories(${CMAKE_CURRENT_BINARY_DIR}/../Dialect/Test)
+ EXCLUDE_FROM_LIBMLIR
-target_link_libraries(MLIRTestIR
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRPass
MLIRTestDialect
)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../Dialect/Test)
+include_directories(${CMAKE_CURRENT_BINARY_DIR}/../Dialect/Test)
diff --git a/mlir/test/lib/Pass/CMakeLists.txt b/mlir/test/lib/Pass/CMakeLists.txt
index 7d79e1137f40..608141e349d1 100644
--- a/mlir/test/lib/Pass/CMakeLists.txt
+++ b/mlir/test/lib/Pass/CMakeLists.txt
@@ -1,11 +1,13 @@
-add_llvm_library(MLIRTestPass
+# Exclude tests from libMLIR.so
+add_mlir_library(MLIRTestPass
TestPassManager.cpp
+ EXCLUDE_FROM_LIBMLIR
+
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Pass
- )
-target_link_libraries(MLIRTestPass
- PUBLIC
+
+ LINK_LIBS PUBLIC
MLIRIR
MLIRPass
)
diff --git a/mlir/test/lib/Transforms/CMakeLists.txt b/mlir/test/lib/Transforms/CMakeLists.txt
index 33129a9a9e0b..248da51bcec7 100644
--- a/mlir/test/lib/Transforms/CMakeLists.txt
+++ b/mlir/test/lib/Transforms/CMakeLists.txt
@@ -1,4 +1,5 @@
-add_llvm_library(MLIRTestTransforms
+# Exclude tests from libMLIR.so
+add_mlir_library(MLIRTestTransforms
TestAllReduceLowering.cpp
TestBufferPlacement.cpp
TestCallGraph.cpp
@@ -20,21 +21,16 @@ add_llvm_library(MLIRTestTransforms
TestVectorToLoopsConversion.cpp
TestVectorTransforms.cpp
+ EXCLUDE_FROM_LIBMLIR
+
ADDITIONAL_HEADER_DIRS
${MLIR_MAIN_INCLUDE_DIR}/mlir/Transforms
DEPENDS
MLIRStandardOpsIncGen
MLIRTestVectorTransformPatternsIncGen
-)
-
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../Dialect/Test)
-include_directories(${CMAKE_CURRENT_BINARY_DIR}/../Dialect/Test)
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../DeclarativeTransforms)
-include_directories(${CMAKE_CURRENT_BINARY_DIR}/../DeclarativeTransforms)
-target_link_libraries(MLIRTestTransforms
- PUBLIC
+ LINK_LIBS PUBLIC
MLIRAffineOps
MLIRAnalysis
MLIREDSC
@@ -51,3 +47,8 @@ target_link_libraries(MLIRTestTransforms
MLIRVectorToLoops
MLIRVector
)
+
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../Dialect/Test)
+include_directories(${CMAKE_CURRENT_BINARY_DIR}/../Dialect/Test)
+include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../DeclarativeTransforms)
+include_directories(${CMAKE_CURRENT_BINARY_DIR}/../DeclarativeTransforms)
diff --git a/mlir/tools/mlir-cpu-runner/CMakeLists.txt b/mlir/tools/mlir-cpu-runner/CMakeLists.txt
index 9903e8d86e7e..596012c88228 100644
--- a/mlir/tools/mlir-cpu-runner/CMakeLists.txt
+++ b/mlir/tools/mlir-cpu-runner/CMakeLists.txt
@@ -1,6 +1,12 @@
+set(LLVM_LINK_COMPONENTS
+ Core
+ Support
+ nativecodegen
+ )
+
add_llvm_tool(mlir-cpu-runner
mlir-cpu-runner.cpp
-)
+ )
llvm_update_compile_flags(mlir-cpu-runner)
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
target_link_libraries(mlir-cpu-runner PRIVATE
@@ -14,6 +20,4 @@ target_link_libraries(mlir-cpu-runner PRIVATE
MLIRParser
MLIRTargetLLVMIR
MLIRSupport
- LLVMCore
- LLVMSupport
)
diff --git a/mlir/tools/mlir-linalg-ods-gen/CMakeLists.txt b/mlir/tools/mlir-linalg-ods-gen/CMakeLists.txt
index b4fa6e35fc9a..3736a18b2009 100644
--- a/mlir/tools/mlir-linalg-ods-gen/CMakeLists.txt
+++ b/mlir/tools/mlir-linalg-ods-gen/CMakeLists.txt
@@ -1,3 +1,7 @@
+set(LLVM_LINK_COMPONENTS
+ Core
+ Support
+ )
add_llvm_tool(mlir-linalg-ods-gen
mlir-linalg-ods-gen.cpp
)
@@ -5,6 +9,4 @@ llvm_update_compile_flags(mlir-linalg-ods-gen)
target_link_libraries(mlir-linalg-ods-gen PRIVATE
MLIRParser
MLIRSupport
- LLVMCore
- LLVMSupport
)
diff --git a/mlir/tools/mlir-opt/CMakeLists.txt b/mlir/tools/mlir-opt/CMakeLists.txt
index 55b5762923c3..2504b04420b7 100644
--- a/mlir/tools/mlir-opt/CMakeLists.txt
+++ b/mlir/tools/mlir-opt/CMakeLists.txt
@@ -4,6 +4,12 @@ set(LLVM_OPTIONAL_SOURCES
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS)
+set(LLVM_LINK_COMPONENTS
+ Core
+ Support
+ AsmParser
+ )
+
set(LIBS
${dialect_libs}
${conversion_libs}
@@ -25,22 +31,26 @@ set(LIBS
MLIRSupport
MLIRIR
MLIROptLib
- LLVMSupport
- LLVMCore
- LLVMAsmParser
)
-add_llvm_library(MLIRMlirOptMain
+# Exclude from libMLIR.so because this has static options intended for
+# opt-like tools only.
+add_mlir_library(MLIRMlirOptMain
mlir-opt.cpp
-)
-target_link_libraries(MLIRMlirOptMain
- PUBLIC
+
+ EXCLUDE_FROM_LIBMLIR
+
+ LINK_LIBS
${LIBS}
-)
+ )
add_llvm_tool(mlir-opt
- mlir-opt.cpp
-)
+ mlir-opt.cpp
+ DEPENDS
+ ${LIBS}
+ )
+target_link_libraries(mlir-opt PRIVATE ${LIBS})
llvm_update_compile_flags(mlir-opt)
-target_link_libraries(mlir-opt PRIVATE ${LIBS} ${targets_to_link})
+
+mlir_check_link_libraries(mlir-opt)
diff --git a/mlir/tools/mlir-shlib/CMakeLists.txt b/mlir/tools/mlir-shlib/CMakeLists.txt
index d0e2e959652f..32fe833cee4e 100644
--- a/mlir/tools/mlir-shlib/CMakeLists.txt
+++ b/mlir/tools/mlir-shlib/CMakeLists.txt
@@ -8,8 +8,10 @@ if (MSVC)
return()
endif()
-get_property(mlir_libs GLOBAL PROPERTY MLIR_ALL_LIBS)
+get_property(mlir_libs GLOBAL PROPERTY MLIR_STATIC_LIBS)
+get_property(mlir_llvm_link_components GLOBAL PROPERTY MLIR_LLVM_LINK_COMPONENTS)
list(REMOVE_DUPLICATES mlir_libs)
+list(REMOVE_DUPLICATES mlir_llvm_link_components)
foreach (lib ${mlir_libs})
if(XCODE)
@@ -19,23 +21,32 @@ foreach (lib ${mlir_libs})
else()
list(APPEND _OBJECTS $<TARGET_OBJECTS:obj.${lib}>)
endif()
- list(APPEND _DEPS $<TARGET_PROPERTY:${lib},LINK_LIBRARIES>)
+ # libClang needs this, but it causes problems for MLIR (probably
+ # because we use public library dependencies within MLIR.)
+ # list(APPEND _DEPS $<TARGET_PROPERTY:${lib},LINK_LIBRARIES>)
endforeach ()
if(MLIR_LINK_MLIR_DYLIB)
set(INSTALL_WITH_TOOLCHAIN INSTALL_WITH_TOOLCHAIN)
endif()
-# libMLIR.so depends on LLVM components. To avoid multiple
-# copies of those LLVM components, libMLIR.so depends on libLLVM.so.
-# This probably won't work if some LLVM components are not included
-# in libLLVM.so.
if(LLVM_BUILD_LLVM_DYLIB)
- add_llvm_library(MLIR
+ add_mlir_library(
+ MLIR
SHARED
${INSTALL_WITH_TOOLCHAIN}
-
mlir-shlib.cpp
- )
- target_link_libraries(MLIR PRIVATE LLVM ${LLVM_PTHREAD_LIB})
+ ${_OBJECTS}
+ LINK_LIBS
+ ${_DEPS}
+
+ LINK_COMPONENTS
+ ${mlir_llvm_link_components}
+ )
+ target_link_libraries(MLIR PRIVATE ${LLVM_PTHREAD_LIB})
endif()
+
+#message("Libraries included in libMLIR.so: ${mlir_libs}")
+#message("LLVM Components included in libMLIR.so: ${mlir_llvm_link_components}")
+
+mlir_check_all_link_libraries(MLIR)
diff --git a/mlir/tools/mlir-tblgen/CMakeLists.txt b/mlir/tools/mlir-tblgen/CMakeLists.txt
index 19e6230e54ac..4c54e250f2c5 100644
--- a/mlir/tools/mlir-tblgen/CMakeLists.txt
+++ b/mlir/tools/mlir-tblgen/CMakeLists.txt
@@ -1,6 +1,7 @@
set(LLVM_LINK_COMPONENTS
- MLIRTableGen
+ Demangle
Support
+ TableGen
)
add_tablegen(mlir-tblgen MLIR
@@ -19,4 +20,10 @@ add_tablegen(mlir-tblgen MLIR
SPIRVUtilsGen.cpp
StructsGen.cpp
)
+
set_target_properties(mlir-tblgen PROPERTIES FOLDER "Tablegenning")
+target_link_libraries(mlir-tblgen
+ PRIVATE
+ LLVMMLIRTableGen)
+
+mlir_check_all_link_libraries(mlir-tblgen)
diff --git a/mlir/tools/mlir-translate/CMakeLists.txt b/mlir/tools/mlir-translate/CMakeLists.txt
index 9dc5971703ab..897e7adc03bd 100644
--- a/mlir/tools/mlir-translate/CMakeLists.txt
+++ b/mlir/tools/mlir-translate/CMakeLists.txt
@@ -1,16 +1,24 @@
+set(LLVM_LINK_COMPONENTS
+ Support
+ )
+
get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
get_property(translation_libs GLOBAL PROPERTY MLIR_TRANSLATION_LIBS)
-set(LIBS
+
+add_llvm_tool(mlir-translate
+ mlir-translate.cpp
+ )
+llvm_update_compile_flags(mlir-translate)
+target_link_libraries(mlir-translate
+ PRIVATE
${dialect_libs}
${translation_libs}
+ MLIRIR
MLIRParser
MLIRPass
MLIRSPIRV
MLIRTranslation
MLIRSupport
-)
-add_llvm_tool(mlir-translate
- mlir-translate.cpp
-)
-llvm_update_compile_flags(mlir-translate)
-target_link_libraries(mlir-translate PRIVATE MLIRIR MLIRTranslation ${LIBS} LLVMSupport)
+ )
+
+mlir_check_link_libraries(mlir-translate)
More information about the Mlir-commits
mailing list