1add_subdirectory(Debug)
2add_subdirectory(Dialect)
3add_subdirectory(Conversion)
4add_subdirectory(ExecutionEngine)
5add_subdirectory(IR)
6add_subdirectory(Registration)
7add_subdirectory(Transforms)
8
9
10################################################################################
11# libMLIRPublicAPI shared library/DLL.
12################################################################################
13
14get_property(public_api_libs GLOBAL PROPERTY MLIR_PUBLIC_C_API_LIBS)
15
16foreach(lib ${public_api_libs})
17  if(XCODE)
18    # Xcode doesn't support object libraries, so we have to trick it into
19    # linking the static libraries instead.
20    list(APPEND _DEPS "-force_load" ${lib})
21  else()
22    list(APPEND _OBJECTS $<TARGET_OBJECTS:obj.${lib}>)
23  endif()
24  # Accumulate transitive deps of each exported lib into _DEPS.
25  list(APPEND _DEPS  $<TARGET_PROPERTY:${lib},LINK_LIBRARIES>)
26endforeach()
27
28add_mlir_library(MLIRPublicAPI
29  SHARED
30  ${_OBJECTS}
31  EXCLUDE_FROM_LIBMLIR
32  LINK_LIBS
33  # Dependency on the implementation shared library.
34  $<$<BOOL:${LLVM_BUILD_LLVM_DYLIB}>:MLIR>
35  ${_DEPS}
36)
37
38target_link_options(
39  MLIRPublicAPI
40  PRIVATE
41    # On Linux, disable re-export of any static linked libraries that
42    # came through.
43    $<$<PLATFORM_ID:Linux>:LINKER:--exclude-libs,ALL>
44)
45