17c64f6bfSValentin Churavy# Building libmlir-cpp.so fails if LLVM_ENABLE_PIC=Off 27c64f6bfSValentin Churavyif (NOT LLVM_ENABLE_PIC) 37c64f6bfSValentin Churavy return() 47c64f6bfSValentin Churavyendif() 57c64f6bfSValentin Churavy 67c64f6bfSValentin Churavy# Building libmlir-cpp.so may not work on MSVC 77c64f6bfSValentin Churavyif (MSVC) 87c64f6bfSValentin Churavy return() 97c64f6bfSValentin Churavyendif() 107c64f6bfSValentin Churavy 115469f434SStephen Neuendorfferget_property(mlir_libs GLOBAL PROPERTY MLIR_STATIC_LIBS) 125469f434SStephen Neuendorfferget_property(mlir_llvm_link_components GLOBAL PROPERTY MLIR_LLVM_LINK_COMPONENTS) 137c64f6bfSValentin Churavylist(REMOVE_DUPLICATES mlir_libs) 145469f434SStephen Neuendorfferlist(REMOVE_DUPLICATES mlir_llvm_link_components) 157c64f6bfSValentin Churavy 167c64f6bfSValentin Churavyforeach (lib ${mlir_libs}) 177c64f6bfSValentin Churavy if(XCODE) 187c64f6bfSValentin Churavy # Xcode doesn't support object libraries, so we have to trick it into 197c64f6bfSValentin Churavy # linking the static libraries instead. 207c64f6bfSValentin Churavy list(APPEND _DEPS "-force_load" ${lib}) 217c64f6bfSValentin Churavy else() 227c64f6bfSValentin Churavy list(APPEND _OBJECTS $<TARGET_OBJECTS:obj.${lib}>) 237c64f6bfSValentin Churavy endif() 245469f434SStephen Neuendorffer # libClang needs this, but it causes problems for MLIR (probably 255469f434SStephen Neuendorffer # because we use public library dependencies within MLIR.) 265469f434SStephen Neuendorffer # list(APPEND _DEPS $<TARGET_PROPERTY:${lib},LINK_LIBRARIES>) 277c64f6bfSValentin Churavyendforeach () 287c64f6bfSValentin Churavy 297c64f6bfSValentin Churavyif(MLIR_LINK_MLIR_DYLIB) 307c64f6bfSValentin Churavy set(INSTALL_WITH_TOOLCHAIN INSTALL_WITH_TOOLCHAIN) 317c64f6bfSValentin Churavyendif() 327c64f6bfSValentin Churavy 337c64f6bfSValentin Churavyif(LLVM_BUILD_LLVM_DYLIB) 345469f434SStephen Neuendorffer add_mlir_library( 355469f434SStephen Neuendorffer MLIR 367c64f6bfSValentin Churavy SHARED 37*6244d87fSMichael Kruse EXCLUDE_FROM_LIBMLIR 387c64f6bfSValentin Churavy ${INSTALL_WITH_TOOLCHAIN} 397c64f6bfSValentin Churavy mlir-shlib.cpp 405469f434SStephen Neuendorffer ${_OBJECTS} 415469f434SStephen Neuendorffer LINK_LIBS 425469f434SStephen Neuendorffer ${_DEPS} 435469f434SStephen Neuendorffer 445469f434SStephen Neuendorffer LINK_COMPONENTS 455469f434SStephen Neuendorffer ${mlir_llvm_link_components} 467c64f6bfSValentin Churavy ) 475469f434SStephen Neuendorffer target_link_libraries(MLIR PRIVATE ${LLVM_PTHREAD_LIB}) 487c64f6bfSValentin Churavyendif() 495469f434SStephen Neuendorffer 505469f434SStephen Neuendorffer#message("Libraries included in libMLIR.so: ${mlir_libs}") 515469f434SStephen Neuendorffer#message("LLVM Components included in libMLIR.so: ${mlir_llvm_link_components}") 525469f434SStephen Neuendorffer 535469f434SStephen Neuendorffermlir_check_all_link_libraries(MLIR) 54