llvm-project/mlir/lib/CAPI/CMakeLists.txt
Mehdi Amini 772f7b87f8 Disable the MLIR ExecutionEngine library when the native target is not configured
The execution engine would not be functional anyway, we're already
disabling the tests, this also disable the rest of the code.

Anecdotally this reduces the number of static library built when the
builtin target is disabled goes from 236 to 218.

Here is the complete list of LLVM targets built when running
`ninja check-mlir`:

libLLVMAggressiveInstCombine.a
libLLVMAnalysis.a
libLLVMAsmParser.a
libLLVMBinaryFormat.a
libLLVMBitReader.a
libLLVMBitstreamReader.a
libLLVMBitWriter.a
libLLVMCore.a
libLLVMDebugInfoCodeView.a
libLLVMDebugInfoDWARF.a
libLLVMDemangle.a
libLLVMFileCheck.a
libLLVMFrontendOpenMP.a
libLLVMInstCombine.a
libLLVMIRReader.a
libLLVMMC.a
libLLVMMCParser.a
libLLVMObject.a
libLLVMProfileData.a
libLLVMRemarks.a
libLLVMScalarOpts.a
libLLVMSupport.a
libLLVMTableGen.a
libLLVMTableGenGlobalISel.a
libLLVMTextAPI.a
libLLVMTransformUtils.a

Differential Revision: https://reviews.llvm.org/D117287
2022-01-15 19:36:27 +00:00

41 lines
1.4 KiB
CMake

# For upstream, we accumulate all libraries into the MLIR_CAPI_LIBRARIES
# property via a custom wrapper function. This is then used to create an
# aggregate below.
set_property(GLOBAL APPEND PROPERTY MLIR_CAPI_LIBRARIES)
function(add_mlir_upstream_c_api_library name)
add_mlir_public_c_api_library(${name} ${ARGN})
set_property(GLOBAL APPEND PROPERTY MLIR_CAPI_LIBRARIES ${name})
endfunction()
add_subdirectory(Debug)
add_subdirectory(Dialect)
add_subdirectory(Conversion)
add_subdirectory(Interfaces)
add_subdirectory(IR)
add_subdirectory(Registration)
add_subdirectory(Transforms)
# Only enable the ExecutionEngine if the native target is configured in.
if(TARGET ${LLVM_NATIVE_ARCH})
add_subdirectory(ExecutionEngine)
endif()
# Build the optional CAPI dylib.
if(MLIR_BUILD_MLIR_C_DYLIB)
message(STATUS "Building MLIR-C dylib")
get_property(_capi_libraries GLOBAL PROPERTY MLIR_CAPI_LIBRARIES)
add_mlir_aggregate(MLIR-C
SHARED
EMBED_LIBS
${_capi_libraries}
)
if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
target_link_options(MLIR-C PRIVATE "-Wl,-exclude-libs,ALL")
else()
if(NOT CMAKE_C_VISIBILITY_PRESET STREQUAL "hidden" OR NOT CMAKE_CXX_VISIBILITY_PRESET STREQUAL "hidden")
message(STATUS "MLIR-C on this platform exports all symbols. Recommend building with CMAKE_(C|CXX)_VISIBILITY_PRESET=hidden or implement filtering support.")
endif()
endif()
endif()