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
41 lines
1.4 KiB
CMake
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()
|
|
|