diff --git a/mlir/lib/ExecutionEngine/CMakeLists.txt b/mlir/lib/ExecutionEngine/CMakeLists.txt index b7e448d5417ea..a091944b9ee7d 100644 --- a/mlir/lib/ExecutionEngine/CMakeLists.txt +++ b/mlir/lib/ExecutionEngine/CMakeLists.txt @@ -97,6 +97,29 @@ add_mlir_library(MLIRExecutionEngine MLIRTargetLLVMIRExport ) +if(LLVM_BUILD_LLVM_DYLIB) + # Build a shared library for the execution engine. Some downstream projects + # use this library to build their own CPU runners while preserving dynamic + # linkage. + add_mlir_library(MLIRExecutionEngineShared + ExecutionEngine.cpp + SHARED + + EXCLUDE_FROM_LIBMLIR + + ADDITIONAL_HEADER_DIRS + ${MLIR_MAIN_INCLUDE_DIR}/mlir/ExecutionEngine + + # Ensures that all necessary dependencies are resolved. + DEPENDS + MLIRExecutionEngine + + LINK_LIBS PUBLIC + LLVM + MLIR + ) +endif() + get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS) add_mlir_library(MLIRJitRunner JitRunner.cpp