# Building libmlir-cpp.so fails if LLVM_ENABLE_PIC=Off if (NOT LLVM_ENABLE_PIC) return() endif() # Building libmlir-cpp.so may not work on MSVC if (MSVC) return() endif() 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) # Xcode doesn't support object libraries, so we have to trick it into # linking the static libraries instead. list(APPEND _DEPS "-force_load" ${lib}) else() list(APPEND _OBJECTS $) endif() # libClang needs this, but it causes problems for MLIR (probably # because we use public library dependencies within MLIR.) # list(APPEND _DEPS $) endforeach () if(MLIR_LINK_MLIR_DYLIB) set(INSTALL_WITH_TOOLCHAIN INSTALL_WITH_TOOLCHAIN) endif() if(LLVM_BUILD_LLVM_DYLIB) add_mlir_library( MLIR SHARED ${INSTALL_WITH_TOOLCHAIN} mlir-shlib.cpp ${_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)