From f97634d4ddef6d15ece0aef2be8a250639693e41 Mon Sep 17 00:00:00 2001 From: Ron Lieberman Date: Thu, 23 Oct 2025 20:25:48 -0500 Subject: [PATCH] [mlir][install] cmake to suppress install of libMLIR*.a and .o's --- mlir/CMakeLists.txt | 5 + mlir/cmake/modules/AddMLIR.cmake | 8 ++ mlir/lib/CAPI/CMakeLists.txt | 18 +-- mlir/lib/CMakeLists.txt | 40 +++---- mlir/lib/Conversion/CMakeLists.txt | 162 +++++++++++++------------- mlir/lib/Dialect/XeGPU/CMakeLists.txt | 6 +- mlir/lib/Target/CMakeLists.txt | 14 +-- mlir/test/lib/CMakeLists.txt | 20 ++-- mlir/test/lib/Dialect/CMakeLists.txt | 52 ++++----- mlir/unittests/CMakeLists.txt | 30 ++--- mlir/unittests/Dialect/CMakeLists.txt | 24 ++-- 11 files changed, 196 insertions(+), 183 deletions(-) diff --git a/mlir/CMakeLists.txt b/mlir/CMakeLists.txt index 1a211f5495764..514ecc6aa63de 100644 --- a/mlir/CMakeLists.txt +++ b/mlir/CMakeLists.txt @@ -14,6 +14,11 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR) set(MLIR_STANDALONE_BUILD TRUE) endif() +set(MLIR_SUPPRESS_LIB_INSTALL OFF CACHE BOOL "prevent installation of libMLIR*.a and related .o's") +if(MLIR_SUPPRESS_LIB_INSTALL) + message(WARNING "MLIR_SUPPRESS_LIB_INSTALL is "${MLIR_SUPPRESS_LIB_INSTALL}) +endif() + # Must go below project(..) include(GNUInstallDirs) set(CMAKE_CXX_STANDARD 17 CACHE STRING "C++ standard to conform to") diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake index 6589458ab7894..85b5957b7a12c 100644 --- a/mlir/cmake/modules/AddMLIR.cmake +++ b/mlir/cmake/modules/AddMLIR.cmake @@ -762,3 +762,11 @@ function(mlir_target_link_libraries target type) target_link_libraries(${target} ${type} ${ARGN}) endif() endfunction() + +function(add_subdirectory_optional_install name) + if(MLIR_SUPPRESS_LIB_INSTALL) + add_subdirectory(${name} EXCLUDE_FROM_ALL) + else() + add_subdirectory(${name}) + endif() +endfunction(add_subdirectory_optional_install) diff --git a/mlir/lib/CAPI/CMakeLists.txt b/mlir/lib/CAPI/CMakeLists.txt index 6c438508425b7..76d37cbd100dd 100644 --- a/mlir/lib/CAPI/CMakeLists.txt +++ b/mlir/lib/CAPI/CMakeLists.txt @@ -7,17 +7,17 @@ function(add_mlir_upstream_c_api_library name) set_property(GLOBAL APPEND PROPERTY MLIR_CAPI_LIBS ${name}) endfunction() -add_subdirectory(Debug) -add_subdirectory(Dialect) -add_subdirectory(Conversion) -add_subdirectory(Interfaces) -add_subdirectory(IR) -add_subdirectory(RegisterEverything) -add_subdirectory(Transforms) -add_subdirectory(Target) +add_subdirectory_optional_install(Debug) +add_subdirectory_optional_install(Dialect) +add_subdirectory_optional_install(Conversion) +add_subdirectory_optional_install(Interfaces) +add_subdirectory_optional_install(IR) +add_subdirectory_optional_install(RegisterEverything) +add_subdirectory_optional_install(Transforms) +add_subdirectory_optional_install(Target) if(MLIR_ENABLE_EXECUTION_ENGINE) - add_subdirectory(ExecutionEngine) + add_subdirectory_optional_install(ExecutionEngine) endif() # Build the optional CAPI dylib. diff --git a/mlir/lib/CMakeLists.txt b/mlir/lib/CMakeLists.txt index 91ed05f6548d7..2151c48fc77dd 100644 --- a/mlir/lib/CMakeLists.txt +++ b/mlir/lib/CMakeLists.txt @@ -1,26 +1,26 @@ # Enable errors for any global constructors. add_flag_if_supported("-Werror=global-constructors" WERROR_GLOBAL_CONSTRUCTOR) -add_subdirectory(Analysis) -add_subdirectory(AsmParser) -add_subdirectory(Bytecode) -add_subdirectory(Conversion) -add_subdirectory(Debug) -add_subdirectory(Dialect) -add_subdirectory(IR) -add_subdirectory(Interfaces) -add_subdirectory(Parser) -add_subdirectory(Pass) -add_subdirectory(Query) -add_subdirectory(Reducer) -add_subdirectory(Remark) -add_subdirectory(Rewrite) -add_subdirectory(Support) -add_subdirectory(TableGen) -add_subdirectory(Target) -add_subdirectory(Tools) -add_subdirectory(Transforms) -add_subdirectory(ExecutionEngine) +add_subdirectory_optional_install(Analysis) +add_subdirectory_optional_install(AsmParser) +add_subdirectory_optional_install(Bytecode) +add_subdirectory_optional_install(Conversion) +add_subdirectory_optional_install(Debug) +add_subdirectory_optional_install(Dialect) +add_subdirectory_optional_install(IR) +add_subdirectory_optional_install(Interfaces) +add_subdirectory_optional_install(Parser) +add_subdirectory_optional_install(Pass) +add_subdirectory_optional_install(Query) +add_subdirectory_optional_install(Reducer) +add_subdirectory_optional_install(Remark) +add_subdirectory_optional_install(Rewrite) +add_subdirectory_optional_install(Support) +add_subdirectory_optional_install(TableGen) +add_subdirectory_optional_install(Target) +add_subdirectory_optional_install(Tools) +add_subdirectory_optional_install(Transforms) +add_subdirectory_optional_install(ExecutionEngine) get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) get_property(conversion_libs GLOBAL PROPERTY MLIR_CONVERSION_LIBS) diff --git a/mlir/lib/Conversion/CMakeLists.txt b/mlir/lib/Conversion/CMakeLists.txt index bebf1b8fff3f9..c1aa5a33f0642 100644 --- a/mlir/lib/Conversion/CMakeLists.txt +++ b/mlir/lib/Conversion/CMakeLists.txt @@ -1,81 +1,81 @@ -add_subdirectory(AffineToStandard) -add_subdirectory(AMDGPUToROCDL) -add_subdirectory(ArithCommon) -add_subdirectory(ArithToAMDGPU) -add_subdirectory(ArithToArmSME) -add_subdirectory(ArithToEmitC) -add_subdirectory(ArithToLLVM) -add_subdirectory(ArithToSPIRV) -add_subdirectory(ArmNeon2dToIntr) -add_subdirectory(ArmSMEToSCF) -add_subdirectory(ArmSMEToLLVM) -add_subdirectory(AsyncToLLVM) -add_subdirectory(BufferizationToMemRef) -add_subdirectory(ComplexCommon) -add_subdirectory(ComplexToLibm) -add_subdirectory(ComplexToROCDLLibraryCalls) -add_subdirectory(ComplexToLLVM) -add_subdirectory(ComplexToSPIRV) -add_subdirectory(ComplexToStandard) -add_subdirectory(ControlFlowToLLVM) -add_subdirectory(ControlFlowToSCF) -add_subdirectory(ControlFlowToSPIRV) -add_subdirectory(ConvertToEmitC) -add_subdirectory(ConvertToLLVM) -add_subdirectory(FuncToEmitC) -add_subdirectory(FuncToLLVM) -add_subdirectory(FuncToSPIRV) -add_subdirectory(GPUCommon) -add_subdirectory(GPUToLLVMSPV) -add_subdirectory(GPUToNVVM) -add_subdirectory(GPUToROCDL) -add_subdirectory(GPUToSPIRV) -add_subdirectory(IndexToLLVM) -add_subdirectory(IndexToSPIRV) -add_subdirectory(LinalgToStandard) -add_subdirectory(LLVMCommon) -add_subdirectory(MathToEmitC) -add_subdirectory(MathToFuncs) -add_subdirectory(MathToLibm) -add_subdirectory(MathToLLVM) -add_subdirectory(MathToROCDL) -add_subdirectory(MathToSPIRV) -add_subdirectory(MathToXeVM) -add_subdirectory(MemRefToEmitC) -add_subdirectory(MemRefToLLVM) -add_subdirectory(MemRefToSPIRV) -add_subdirectory(ShardToMPI) -add_subdirectory(MPIToLLVM) -add_subdirectory(NVGPUToNVVM) -add_subdirectory(NVVMToLLVM) -add_subdirectory(OpenACCToSCF) -add_subdirectory(OpenMPToLLVM) -add_subdirectory(PDLToPDLInterp) -add_subdirectory(PtrToLLVM) -add_subdirectory(ReconcileUnrealizedCasts) -add_subdirectory(SCFToControlFlow) -add_subdirectory(SCFToEmitC) -add_subdirectory(SCFToGPU) -add_subdirectory(SCFToOpenMP) -add_subdirectory(SCFToSPIRV) -add_subdirectory(ShapeToStandard) -add_subdirectory(SPIRVCommon) -add_subdirectory(SPIRVToLLVM) -add_subdirectory(TensorToLinalg) -add_subdirectory(TensorToSPIRV) -add_subdirectory(TosaToArith) -add_subdirectory(TosaToLinalg) -add_subdirectory(TosaToMLProgram) -add_subdirectory(TosaToSCF) -add_subdirectory(TosaToTensor) -add_subdirectory(UBToLLVM) -add_subdirectory(UBToSPIRV) -add_subdirectory(VectorToAMX) -add_subdirectory(VectorToArmSME) -add_subdirectory(VectorToGPU) -add_subdirectory(VectorToLLVM) -add_subdirectory(VectorToSCF) -add_subdirectory(VectorToSPIRV) -add_subdirectory(VectorToXeGPU) -add_subdirectory(XeVMToLLVM) -add_subdirectory(XeGPUToXeVM) +add_subdirectory_optional_install(AffineToStandard) +add_subdirectory_optional_install(AMDGPUToROCDL) +add_subdirectory_optional_install(ArithCommon) +add_subdirectory_optional_install(ArithToAMDGPU) +add_subdirectory_optional_install(ArithToArmSME) +add_subdirectory_optional_install(ArithToEmitC) +add_subdirectory_optional_install(ArithToLLVM) +add_subdirectory_optional_install(ArithToSPIRV) +add_subdirectory_optional_install(ArmNeon2dToIntr) +add_subdirectory_optional_install(ArmSMEToSCF) +add_subdirectory_optional_install(ArmSMEToLLVM) +add_subdirectory_optional_install(AsyncToLLVM) +add_subdirectory_optional_install(BufferizationToMemRef) +add_subdirectory_optional_install(ComplexCommon) +add_subdirectory_optional_install(ComplexToLibm) +add_subdirectory_optional_install(ComplexToROCDLLibraryCalls) +add_subdirectory_optional_install(ComplexToLLVM) +add_subdirectory_optional_install(ComplexToSPIRV) +add_subdirectory_optional_install(ComplexToStandard) +add_subdirectory_optional_install(ControlFlowToLLVM) +add_subdirectory_optional_install(ControlFlowToSCF) +add_subdirectory_optional_install(ControlFlowToSPIRV) +add_subdirectory_optional_install(ConvertToEmitC) +add_subdirectory_optional_install(ConvertToLLVM) +add_subdirectory_optional_install(FuncToEmitC) +add_subdirectory_optional_install(FuncToLLVM) +add_subdirectory_optional_install(FuncToSPIRV) +add_subdirectory_optional_install(GPUCommon) +add_subdirectory_optional_install(GPUToLLVMSPV) +add_subdirectory_optional_install(GPUToNVVM) +add_subdirectory_optional_install(GPUToROCDL) +add_subdirectory_optional_install(GPUToSPIRV) +add_subdirectory_optional_install(IndexToLLVM) +add_subdirectory_optional_install(IndexToSPIRV) +add_subdirectory_optional_install(LinalgToStandard) +add_subdirectory_optional_install(LLVMCommon) +add_subdirectory_optional_install(MathToEmitC) +add_subdirectory_optional_install(MathToFuncs) +add_subdirectory_optional_install(MathToLibm) +add_subdirectory_optional_install(MathToLLVM) +add_subdirectory_optional_install(MathToROCDL) +add_subdirectory_optional_install(MathToSPIRV) +add_subdirectory_optional_install(MathToXeVM) +add_subdirectory_optional_install(MemRefToEmitC) +add_subdirectory_optional_install(MemRefToLLVM) +add_subdirectory_optional_install(MemRefToSPIRV) +add_subdirectory_optional_install(ShardToMPI) +add_subdirectory_optional_install(MPIToLLVM) +add_subdirectory_optional_install(NVGPUToNVVM) +add_subdirectory_optional_install(NVVMToLLVM) +add_subdirectory_optional_install(OpenACCToSCF) +add_subdirectory_optional_install(OpenMPToLLVM) +add_subdirectory_optional_install(PDLToPDLInterp) +add_subdirectory_optional_install(PtrToLLVM) +add_subdirectory_optional_install(ReconcileUnrealizedCasts) +add_subdirectory_optional_install(SCFToControlFlow) +add_subdirectory_optional_install(SCFToEmitC) +add_subdirectory_optional_install(SCFToGPU) +add_subdirectory_optional_install(SCFToOpenMP) +add_subdirectory_optional_install(SCFToSPIRV) +add_subdirectory_optional_install(ShapeToStandard) +add_subdirectory_optional_install(SPIRVCommon) +add_subdirectory_optional_install(SPIRVToLLVM) +add_subdirectory_optional_install(TensorToLinalg) +add_subdirectory_optional_install(TensorToSPIRV) +add_subdirectory_optional_install(TosaToArith) +add_subdirectory_optional_install(TosaToLinalg) +add_subdirectory_optional_install(TosaToMLProgram) +add_subdirectory_optional_install(TosaToSCF) +add_subdirectory_optional_install(TosaToTensor) +add_subdirectory_optional_install(UBToLLVM) +add_subdirectory_optional_install(UBToSPIRV) +add_subdirectory_optional_install(VectorToAMX) +add_subdirectory_optional_install(VectorToArmSME) +add_subdirectory_optional_install(VectorToGPU) +add_subdirectory_optional_install(VectorToLLVM) +add_subdirectory_optional_install(VectorToSCF) +add_subdirectory_optional_install(VectorToSPIRV) +add_subdirectory_optional_install(VectorToXeGPU) +add_subdirectory_optional_install(XeVMToLLVM) +add_subdirectory_optional_install(XeGPUToXeVM) diff --git a/mlir/lib/Dialect/XeGPU/CMakeLists.txt b/mlir/lib/Dialect/XeGPU/CMakeLists.txt index 31167e6af908b..5d7ce48d57a98 100644 --- a/mlir/lib/Dialect/XeGPU/CMakeLists.txt +++ b/mlir/lib/Dialect/XeGPU/CMakeLists.txt @@ -1,3 +1,3 @@ -add_subdirectory(IR) -add_subdirectory(Transforms) -add_subdirectory(Utils) +add_subdirectory_optional_install(IR) +add_subdirectory_optional_install(Transforms) +add_subdirectory_optional_install(Utils) diff --git a/mlir/lib/Target/CMakeLists.txt b/mlir/lib/Target/CMakeLists.txt index f0c3ac4d511c1..ce2767f545750 100644 --- a/mlir/lib/Target/CMakeLists.txt +++ b/mlir/lib/Target/CMakeLists.txt @@ -1,7 +1,7 @@ -add_subdirectory(Cpp) -add_subdirectory(IRDLToCpp) -add_subdirectory(SPIRV) -add_subdirectory(LLVMIR) -add_subdirectory(LLVM) -add_subdirectory(SMTLIB) -add_subdirectory(Wasm) +add_subdirectory_optional_install(Cpp) +add_subdirectory_optional_install(IRDLToCpp) +add_subdirectory_optional_install(SPIRV) +add_subdirectory_optional_install(LLVMIR) +add_subdirectory_optional_install(LLVM) +add_subdirectory_optional_install(SMTLIB) +add_subdirectory_optional_install(Wasm) diff --git a/mlir/test/lib/CMakeLists.txt b/mlir/test/lib/CMakeLists.txt index 88e55e77a3fb9..cb2baf9a127e8 100644 --- a/mlir/test/lib/CMakeLists.txt +++ b/mlir/test/lib/CMakeLists.txt @@ -1,10 +1,10 @@ -add_subdirectory(Analysis) -add_subdirectory(Conversion) -add_subdirectory(Dialect) -add_subdirectory(Interfaces) -add_subdirectory(IR) -add_subdirectory(Pass) -add_subdirectory(Reducer) -add_subdirectory(Rewrite) -add_subdirectory(Tools) -add_subdirectory(Transforms) +add_subdirectory_optional_install(Analysis) +add_subdirectory_optional_install(Conversion) +add_subdirectory_optional_install(Dialect) +add_subdirectory_optional_install(Interfaces) +add_subdirectory_optional_install(IR) +add_subdirectory_optional_install(Pass) +add_subdirectory_optional_install(Reducer) +add_subdirectory_optional_install(Rewrite) +add_subdirectory_optional_install(Tools) +add_subdirectory_optional_install(Transforms) diff --git a/mlir/test/lib/Dialect/CMakeLists.txt b/mlir/test/lib/Dialect/CMakeLists.txt index e31140a6f6ba7..2edb46ba475e4 100644 --- a/mlir/test/lib/Dialect/CMakeLists.txt +++ b/mlir/test/lib/Dialect/CMakeLists.txt @@ -1,26 +1,26 @@ -add_subdirectory(Affine) -add_subdirectory(Arith) -add_subdirectory(ArmSME) -add_subdirectory(Bufferization) -add_subdirectory(ControlFlow) -add_subdirectory(DLTI) -add_subdirectory(Func) -add_subdirectory(GPU) -add_subdirectory(Linalg) -add_subdirectory(LLVM) -add_subdirectory(Math) -add_subdirectory(MemRef) -add_subdirectory(Shard) -add_subdirectory(NVGPU) -add_subdirectory(OpenACC) -add_subdirectory(SCF) -add_subdirectory(Shape) -add_subdirectory(SPIRV) -add_subdirectory(Tensor) -add_subdirectory(Test) -add_subdirectory(TestDyn) -add_subdirectory(TestIRDLToCpp) -add_subdirectory(Tosa) -add_subdirectory(Transform) -add_subdirectory(Vector) -add_subdirectory(XeGPU) +add_subdirectory_optional_install(Affine) +add_subdirectory_optional_install(Arith) +add_subdirectory_optional_install(ArmSME) +add_subdirectory_optional_install(Bufferization) +add_subdirectory_optional_install(ControlFlow) +add_subdirectory_optional_install(DLTI) +add_subdirectory_optional_install(Func) +add_subdirectory_optional_install(GPU) +add_subdirectory_optional_install(Linalg) +add_subdirectory_optional_install(LLVM) +add_subdirectory_optional_install(Math) +add_subdirectory_optional_install(MemRef) +add_subdirectory_optional_install(Shard) +add_subdirectory_optional_install(NVGPU) +add_subdirectory_optional_install(OpenACC) +add_subdirectory_optional_install(SCF) +add_subdirectory_optional_install(Shape) +add_subdirectory_optional_install(SPIRV) +add_subdirectory_optional_install(Tensor) +add_subdirectory_optional_install(Test) +add_subdirectory_optional_install(TestDyn) +add_subdirectory_optional_install(TestIRDLToCpp) +add_subdirectory_optional_install(Tosa) +add_subdirectory_optional_install(Transform) +add_subdirectory_optional_install(Vector) +add_subdirectory_optional_install(XeGPU) diff --git a/mlir/unittests/CMakeLists.txt b/mlir/unittests/CMakeLists.txt index 89332bce5fe05..646b94c1a0cd5 100644 --- a/mlir/unittests/CMakeLists.txt +++ b/mlir/unittests/CMakeLists.txt @@ -5,21 +5,21 @@ function(add_mlir_unittest test_dirname) add_unittest(MLIRUnitTests ${test_dirname} ${ARGN}) endfunction() -add_subdirectory(Analysis) -add_subdirectory(Bytecode) -add_subdirectory(Conversion) -add_subdirectory(Debug) -add_subdirectory(Dialect) -add_subdirectory(Interfaces) -add_subdirectory(IR) -add_subdirectory(Parser) -add_subdirectory(Pass) -add_subdirectory(Support) -add_subdirectory(Rewrite) -add_subdirectory(TableGen) -add_subdirectory(Target) -add_subdirectory(Transforms) +add_subdirectory_optional_install(Analysis) +add_subdirectory_optional_install(Bytecode) +add_subdirectory_optional_install(Conversion) +add_subdirectory_optional_install(Debug) +add_subdirectory_optional_install(Dialect) +add_subdirectory_optional_install(Interfaces) +add_subdirectory_optional_install(IR) +add_subdirectory_optional_install(Parser) +add_subdirectory_optional_install(Pass) +add_subdirectory_optional_install(Support) +add_subdirectory_optional_install(Rewrite) +add_subdirectory_optional_install(TableGen) +add_subdirectory_optional_install(Target) +add_subdirectory_optional_install(Transforms) if(MLIR_ENABLE_EXECUTION_ENGINE) - add_subdirectory(ExecutionEngine) + add_subdirectory_optional_install(ExecutionEngine) endif() diff --git a/mlir/unittests/Dialect/CMakeLists.txt b/mlir/unittests/Dialect/CMakeLists.txt index aea247547473d..cf1855937b3c6 100644 --- a/mlir/unittests/Dialect/CMakeLists.txt +++ b/mlir/unittests/Dialect/CMakeLists.txt @@ -6,15 +6,15 @@ mlir_target_link_libraries(MLIRDialectTests MLIRIR MLIRDialect) -add_subdirectory(AMDGPU) -add_subdirectory(ArmSME) -add_subdirectory(Index) -add_subdirectory(LLVMIR) -add_subdirectory(MemRef) -add_subdirectory(OpenACC) -add_subdirectory(SCF) -add_subdirectory(SparseTensor) -add_subdirectory(SPIRV) -add_subdirectory(SMT) -add_subdirectory(Transform) -add_subdirectory(Utils) +add_subdirectory_optional_install(AMDGPU) +add_subdirectory_optional_install(ArmSME) +add_subdirectory_optional_install(Index) +add_subdirectory_optional_install(LLVMIR) +add_subdirectory_optional_install(MemRef) +add_subdirectory_optional_install(OpenACC) +add_subdirectory_optional_install(SCF) +add_subdirectory_optional_install(SparseTensor) +add_subdirectory_optional_install(SPIRV) +add_subdirectory_optional_install(SMT) +add_subdirectory_optional_install(Transform) +add_subdirectory_optional_install(Utils)