Index: clang/utils/TableGen/CMakeLists.txt =================================================================== --- clang/utils/TableGen/CMakeLists.txt +++ clang/utils/TableGen/CMakeLists.txt @@ -1,6 +1,8 @@ set(LLVM_LINK_COMPONENTS Support) -add_tablegen(clang-tblgen CLANG DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" +add_tablegen(clang-tblgen CLANG + DESTINATION "${CLANG_TOOLS_INSTALL_DIR}" + EXPORT Clang ASTTableGen.cpp ClangASTNodesEmitter.cpp ClangASTPropertiesEmitter.cpp Index: llvm/cmake/modules/TableGen.cmake =================================================================== --- llvm/cmake/modules/TableGen.cmake +++ llvm/cmake/modules/TableGen.cmake @@ -2,6 +2,7 @@ # while LLVM_TARGET_DEPENDS may contain additional file dependencies. # Extra parameters for `tblgen' may come after `ofn' parameter. # Adds the name of the generated file to TABLEGEN_OUTPUT. +include(LLVMDistributionSupport) function(tablegen project ofn) cmake_parse_arguments(ARG "" "" "DEPENDS;EXTRA_INCLUDES" ${ARGN}) @@ -140,7 +141,7 @@ endfunction() macro(add_tablegen target project) - cmake_parse_arguments(ADD_TABLEGEN "" "DESTINATION" "" ${ARGN}) + cmake_parse_arguments(ADD_TABLEGEN "" "DESTINATION;EXPORT" "" ${ARGN}) set(${target}_OLD_LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS}) set(LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS} TableGen) @@ -190,14 +191,12 @@ endif() if (ADD_TABLEGEN_DESTINATION AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND LLVM_BUILD_UTILS) - set(export_to_llvmexports) - if(${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS OR - NOT LLVM_DISTRIBUTION_COMPONENTS) - set(export_to_llvmexports EXPORT LLVMExports) + set(export_arg) + if(ADD_TABLEGEN_EXPORT) + get_target_export_arg(${target} ${ADD_TABLEGEN_EXPORT} export_arg) endif() - install(TARGETS ${target} - ${export_to_llvmexports} + ${export_arg} COMPONENT ${target} RUNTIME DESTINATION "${ADD_TABLEGEN_DESTINATION}") if(NOT LLVM_ENABLE_IDE) @@ -206,5 +205,8 @@ COMPONENT ${target}) endif() endif() - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${target}) + if(ADD_TABLEGEN_EXPORT) + string(TOUPPER ${ADD_TABLEGEN_EXPORT} export_upper) + set_property(GLOBAL APPEND PROPERTY ${export_upper}_EXPORTS ${target}) + endif() endmacro() Index: llvm/utils/TableGen/CMakeLists.txt =================================================================== --- llvm/utils/TableGen/CMakeLists.txt +++ llvm/utils/TableGen/CMakeLists.txt @@ -2,7 +2,9 @@ set(LLVM_LINK_COMPONENTS Support) -add_tablegen(llvm-tblgen LLVM DESTINATION "${LLVM_TOOLS_INSTALL_DIR}" +add_tablegen(llvm-tblgen LLVM + DESTINATION "${LLVM_TOOLS_INSTALL_DIR}" + EXPORT LLVM AsmMatcherEmitter.cpp AsmWriterEmitter.cpp AsmWriterInst.cpp Index: mlir/tools/mlir-pdll/CMakeLists.txt =================================================================== --- mlir/tools/mlir-pdll/CMakeLists.txt +++ mlir/tools/mlir-pdll/CMakeLists.txt @@ -12,7 +12,9 @@ MLIRPDLLParser ) -add_tablegen(mlir-pdll MLIR_PDLL DESTINATION "${MLIR_TOOLS_INSTALL_DIR}" +add_tablegen(mlir-pdll MLIR_PDLL + DESTINATION "${MLIR_TOOLS_INSTALL_DIR}" + EXPORT MLIR mlir-pdll.cpp DEPENDS Index: mlir/tools/mlir-tblgen/CMakeLists.txt =================================================================== --- mlir/tools/mlir-tblgen/CMakeLists.txt +++ mlir/tools/mlir-tblgen/CMakeLists.txt @@ -4,7 +4,9 @@ TableGen ) -add_tablegen(mlir-tblgen MLIR DESTINATION "${MLIR_TOOLS_INSTALL_DIR}" +add_tablegen(mlir-tblgen MLIR + DESTINATION "${MLIR_TOOLS_INSTALL_DIR}" + EXPORT MLIR AttrOrTypeDefGen.cpp AttrOrTypeFormatGen.cpp CodeGenHelpers.cpp