diff options
Diffstat (limited to 'mlir/cmake/modules/AddMLIR.cmake')
-rw-r--r-- | mlir/cmake/modules/AddMLIR.cmake | 31 |
1 files changed, 29 insertions, 2 deletions
diff --git a/mlir/cmake/modules/AddMLIR.cmake b/mlir/cmake/modules/AddMLIR.cmake index d8944532c6ff..cd7860ca2fe3 100644 --- a/mlir/cmake/modules/AddMLIR.cmake +++ b/mlir/cmake/modules/AddMLIR.cmake @@ -49,14 +49,41 @@ function(add_mlir_dialect dialect dialect_doc_filename) add_dependencies(mlir-doc ${dialect_doc_filename}DocGen) endfunction() +# Declare a library which can be compiled in libMLIR.so +macro(add_mlir_library name) + cmake_parse_arguments(ARG + "SHARED;INSTALL_WITH_TOOLCHAIN" + "" + "ADDITIONAL_HEADERS" + ${ARGN}) + set(srcs) + 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() + set_property(GLOBAL APPEND PROPERTY MLIR_ALL_LIBS ${name}) + endif() + add_llvm_library(${name} ${LIBTYPE} ${ARG_UNPARSED_ARGUMENTS} ${srcs}) +endmacro(add_mlir_library) + # Declare the library associated with a dialect. function(add_mlir_dialect_library name) set_property(GLOBAL APPEND PROPERTY MLIR_DIALECT_LIBS ${name}) - add_llvm_library(${ARGV}) + add_mlir_library(${ARGV}) endfunction(add_mlir_dialect_library) # Declare the library associated with a conversion. function(add_mlir_conversion_library name) set_property(GLOBAL APPEND PROPERTY MLIR_CONVERSION_LIBS ${name}) - add_llvm_library(${ARGV}) + add_mlir_library(${ARGV}) endfunction(add_mlir_conversion_library) |