1b918c1a8Sjsg 2b918c1a8Sjsg struct AvailableComponent { 3b918c1a8Sjsg /// The name of the component. 4b918c1a8Sjsg const char *Name; 5b918c1a8Sjsg 6b918c1a8Sjsg /// The name of the library for this component (or NULL). 7b918c1a8Sjsg const char *Library; 8b918c1a8Sjsg 9b918c1a8Sjsg /// Whether the component is installed. 10b918c1a8Sjsg bool IsInstalled; 11b918c1a8Sjsg 12b918c1a8Sjsg /// The list of libraries required when linking this component. 13*1ad61ae0Srobert const char *RequiredLibraries[96]; 14*1ad61ae0Srobert } AvailableComponents[96] = { 15b918c1a8Sjsg { "aggressiveinstcombine", "LLVMAggressiveInstCombine", true, {"analysis", "core", "support", "transformutils"} }, 16*1ad61ae0Srobert{ "all", nullptr, true, {"demangle", "support", "tablegen", "core", "fuzzercli", "fuzzmutate", "filecheck", "interfacestub", "irprinter", "irreader", "codegen", "selectiondag", "asmprinter", "mirparser", "globalisel", "binaryformat", "bitreader", "bitwriter", "bitstreamreader", "dwarflinker", "dwarflinkerparallel", "extensions", "frontendhlsl", "frontendopenacc", "frontendopenmp", "transformutils", "instrumentation", "aggressiveinstcombine", "instcombine", "scalaropts", "ipo", "vectorize", "objcarcopts", "coroutines", "cfguard", "linker", "analysis", "lto", "mc", "mcparser", "mcdisassembler", "mca", "objcopy", "object", "objectyaml", "option", "remarks", "debuginfodwarf", "debuginfogsym", "debuginfologicalview", "debuginfomsf", "debuginfocodeview", "debuginfopdb", "symbolize", "dwp", "executionengine", "interpreter", "jitlink", "mcjit", "orcjit", "orcshared", "orctargetprocess", "runtimedyld", "target", "armcodegen", "armasmparser", "armdisassembler", "armdesc", "arminfo", "armutils", "amdgpucodegen", "amdgpuasmparser", "amdgpudisassembler", "amdgputargetmca", "amdgpudesc", "amdgpuinfo", "amdgpuutils", "asmparser", "lineeditor", "profiledata", "coverage", "passes", "targetparser", "textapi", "dlltooldriver", "libdriver", "xray", "windowsdriver", "windowsmanifest", "all-targets", "engine", "native", "nativecodegen", "arm", "amdgpu"} }, 17b918c1a8Sjsg{ "all-targets", nullptr, true, {"arm", "amdgpu"} }, 18*1ad61ae0Srobert{ "amdgpu", nullptr, true, {"amdgpucodegen", "amdgpuasmparser", "amdgpudisassembler", "amdgputargetmca", "amdgpudesc", "amdgpuinfo", "amdgpuutils"} }, 19*1ad61ae0Srobert{ "amdgpuasmparser", "LLVMAMDGPUAsmParser", true, {"mc", "mcparser", "amdgpudesc", "amdgpuinfo", "amdgpuutils", "support", "targetparser"} }, 20*1ad61ae0Srobert{ "amdgpucodegen", "LLVMAMDGPUCodeGen", true, {"analysis", "asmprinter", "codegen", "core", "ipo", "mc", "passes", "amdgpudesc", "amdgpuinfo", "amdgpuutils", "scalaropts", "selectiondag", "support", "target", "targetparser", "transformutils", "vectorize", "globalisel", "binaryformat", "mirparser"} }, 21*1ad61ae0Srobert{ "amdgpudesc", "LLVMAMDGPUDesc", true, {"core", "mc", "amdgpuinfo", "amdgpuutils", "support", "binaryformat", "targetparser"} }, 22b918c1a8Sjsg{ "amdgpudisassembler", "LLVMAMDGPUDisassembler", true, {"amdgpudesc", "amdgpuinfo", "amdgpuutils", "mc", "mcdisassembler", "support"} }, 23*1ad61ae0Srobert{ "amdgpuinfo", "LLVMAMDGPUInfo", true, {"mc", "support"} }, 24*1ad61ae0Srobert{ "amdgputargetmca", "LLVMAMDGPUTargetMCA", true, {"mc", "mcparser", "amdgpudesc", "amdgpuinfo", "amdgpuutils", "support", "targetparser", "mca"} }, 25*1ad61ae0Srobert{ "amdgpuutils", "LLVMAMDGPUUtils", true, {"analysis", "core", "mc", "binaryformat", "support", "targetparser"} }, 26*1ad61ae0Srobert{ "analysis", "LLVMAnalysis", true, {"binaryformat", "core", "object", "profiledata", "support", "targetparser"} }, 275a38ef86Spatrick{ "arm", nullptr, true, {"armcodegen", "armasmparser", "armdisassembler", "armdesc", "arminfo", "armutils"} }, 28*1ad61ae0Srobert{ "armasmparser", "LLVMARMAsmParser", true, {"armdesc", "arminfo", "mc", "mcparser", "support", "targetparser", "armutils"} }, 29*1ad61ae0Srobert{ "armcodegen", "LLVMARMCodeGen", true, {"armdesc", "arminfo", "analysis", "asmprinter", "codegen", "core", "ipo", "mc", "scalaropts", "selectiondag", "support", "target", "targetparser", "globalisel", "armutils", "transformutils", "cfguard"} }, 30*1ad61ae0Srobert{ "armdesc", "LLVMARMDesc", true, {"arminfo", "armutils", "mc", "mcdisassembler", "support", "binaryformat", "targetparser"} }, 31*1ad61ae0Srobert{ "armdisassembler", "LLVMARMDisassembler", true, {"armdesc", "arminfo", "mcdisassembler", "mc", "support", "armutils"} }, 32*1ad61ae0Srobert{ "arminfo", "LLVMARMInfo", true, {"mc", "support"} }, 33b918c1a8Sjsg{ "armutils", "LLVMARMUtils", true, {"support"} }, 34b918c1a8Sjsg{ "asmparser", "LLVMAsmParser", true, {"binaryformat", "core", "support"} }, 35*1ad61ae0Srobert{ "asmprinter", "LLVMAsmPrinter", true, {"analysis", "binaryformat", "codegen", "core", "debuginfocodeview", "debuginfodwarf", "debuginfomsf", "mc", "mcparser", "remarks", "support", "target", "targetparser"} }, 36*1ad61ae0Srobert{ "binaryformat", "LLVMBinaryFormat", true, {"support", "targetparser"} }, 37*1ad61ae0Srobert{ "bitreader", "LLVMBitReader", true, {"bitstreamreader", "core", "support", "targetparser"} }, 38aa1fa3d4Spatrick{ "bitstreamreader", "LLVMBitstreamReader", true, {"support"} }, 39*1ad61ae0Srobert{ "bitwriter", "LLVMBitWriter", true, {"analysis", "core", "mc", "object", "support", "targetparser"} }, 40*1ad61ae0Srobert{ "cfguard", "LLVMCFGuard", true, {"core", "support", "targetparser"} }, 41*1ad61ae0Srobert{ "codegen", "LLVMCodeGen", true, {"analysis", "bitreader", "bitwriter", "core", "mc", "objcarcopts", "profiledata", "scalaropts", "support", "target", "targetparser", "transformutils"} }, 42*1ad61ae0Srobert{ "core", "LLVMCore", true, {"binaryformat", "remarks", "support", "targetparser"} }, 43b918c1a8Sjsg{ "coroutines", "LLVMCoroutines", true, {"analysis", "core", "ipo", "scalaropts", "support", "transformutils"} }, 44*1ad61ae0Srobert{ "coverage", "LLVMCoverage", true, {"core", "object", "profiledata", "support", "targetparser"} }, 455a38ef86Spatrick{ "debuginfocodeview", "LLVMDebugInfoCodeView", true, {"support"} }, 46*1ad61ae0Srobert{ "debuginfodwarf", "LLVMDebugInfoDWARF", true, {"binaryformat", "object", "support", "targetparser"} }, 47*1ad61ae0Srobert{ "debuginfogsym", "LLVMDebugInfoGSYM", true, {"mc", "object", "support", "targetparser", "debuginfodwarf"} }, 48*1ad61ae0Srobert{ "debuginfologicalview", "LLVMDebugInfoLogicalView", true, {"binaryformat", "object", "mc", "support", "targetparser", "debuginfodwarf"} }, 49b918c1a8Sjsg{ "debuginfomsf", "LLVMDebugInfoMSF", true, {"support"} }, 50c04ab3e3Spatrick{ "debuginfopdb", "LLVMDebugInfoPDB", true, {"binaryformat", "object", "support", "debuginfocodeview", "debuginfomsf"} }, 51b918c1a8Sjsg{ "demangle", "LLVMDemangle", true, {} }, 52*1ad61ae0Srobert{ "dlltooldriver", "LLVMDlltoolDriver", true, {"object", "option", "support", "targetparser"} }, 53*1ad61ae0Srobert{ "dwarflinker", "LLVMDWARFLinker", true, {"binaryformat", "debuginfodwarf", "asmprinter", "codegen", "mc", "object", "support", "targetparser"} }, 54*1ad61ae0Srobert{ "dwarflinkerparallel", "LLVMDWARFLinkerParallel", true, {"binaryformat", "debuginfodwarf", "asmprinter", "codegen", "mc", "object", "support"} }, 555a38ef86Spatrick{ "dwp", "LLVMDWP", true, {"debuginfodwarf", "mc", "object", "support", "target"} }, 56b918c1a8Sjsg{ "engine", nullptr, true, {"interpreter"} }, 57*1ad61ae0Srobert{ "executionengine", "LLVMExecutionEngine", true, {"core", "mc", "object", "orctargetprocess", "runtimedyld", "support", "target", "targetparser"} }, 58c04ab3e3Spatrick{ "extensions", "LLVMExtensions", true, {"support"} }, 595a38ef86Spatrick{ "filecheck", "LLVMFileCheck", true, {} }, 60*1ad61ae0Srobert{ "frontendhlsl", "LLVMFrontendHLSL", true, {"core", "support"} }, 615a38ef86Spatrick{ "frontendopenacc", "LLVMFrontendOpenACC", true, {} }, 62*1ad61ae0Srobert{ "frontendopenmp", "LLVMFrontendOpenMP", true, {"core", "support", "targetparser", "transformutils", "analysis", "mc", "scalaropts"} }, 63*1ad61ae0Srobert{ "fuzzercli", "LLVMFuzzerCLI", true, {"support", "targetparser"} }, 64*1ad61ae0Srobert{ "fuzzmutate", "LLVMFuzzMutate", true, {"analysis", "bitreader", "bitwriter", "core", "scalaropts", "support", "target", "targetparser", "transformutils"} }, 65aa1fa3d4Spatrick{ "globalisel", "LLVMGlobalISel", true, {"analysis", "codegen", "core", "mc", "selectiondag", "support", "target", "transformutils"} }, 66b918c1a8Sjsg{ "instcombine", "LLVMInstCombine", true, {"analysis", "core", "support", "transformutils"} }, 67*1ad61ae0Srobert{ "instrumentation", "LLVMInstrumentation", true, {"analysis", "core", "demangle", "mc", "support", "targetparser", "transformutils", "profiledata"} }, 68*1ad61ae0Srobert{ "interfacestub", "LLVMInterfaceStub", true, {"binaryformat", "mc", "object", "support", "targetparser"} }, 69b918c1a8Sjsg{ "interpreter", "LLVMInterpreter", true, {"codegen", "core", "executionengine", "support"} }, 70*1ad61ae0Srobert{ "ipo", "LLVMipo", true, {"aggressiveinstcombine", "analysis", "bitreader", "bitwriter", "core", "frontendopenmp", "instcombine", "irreader", "linker", "object", "profiledata", "scalaropts", "support", "targetparser", "transformutils", "vectorize", "instrumentation"} }, 71*1ad61ae0Srobert{ "irprinter", "LLVMIRPrinter", true, {"analysis", "core", "support"} }, 72b918c1a8Sjsg{ "irreader", "LLVMIRReader", true, {"asmparser", "bitreader", "core", "support"} }, 73*1ad61ae0Srobert{ "jitlink", "LLVMJITLink", true, {"binaryformat", "object", "option", "orctargetprocess", "support", "targetparser"} }, 74*1ad61ae0Srobert{ "libdriver", "LLVMLibDriver", true, {"binaryformat", "bitreader", "object", "option", "support", "targetparser", "binaryformat", "bitreader", "object", "option", "support"} }, 75b918c1a8Sjsg{ "lineeditor", "LLVMLineEditor", true, {"support"} }, 76*1ad61ae0Srobert{ "linker", "LLVMLinker", true, {"core", "object", "support", "transformutils", "targetparser"} }, 77*1ad61ae0Srobert{ "lto", "LLVMLTO", true, {"aggressiveinstcombine", "analysis", "binaryformat", "bitreader", "bitwriter", "codegen", "core", "extensions", "ipo", "instcombine", "instrumentation", "linker", "mc", "objcarcopts", "object", "passes", "remarks", "scalaropts", "support", "target", "targetparser", "transformutils"} }, 78*1ad61ae0Srobert{ "mc", "LLVMMC", true, {"support", "targetparser", "binaryformat", "debuginfocodeview"} }, 79aa1fa3d4Spatrick{ "mca", "LLVMMCA", true, {"mc", "support"} }, 80*1ad61ae0Srobert{ "mcdisassembler", "LLVMMCDisassembler", true, {"mc", "support", "targetparser"} }, 81b918c1a8Sjsg{ "mcjit", "LLVMMCJIT", true, {"core", "executionengine", "object", "runtimedyld", "support", "target"} }, 82*1ad61ae0Srobert{ "mcparser", "LLVMMCParser", true, {"mc", "support", "targetparser"} }, 83b918c1a8Sjsg{ "mirparser", "LLVMMIRParser", true, {"asmparser", "binaryformat", "codegen", "core", "mc", "support", "target"} }, 84b918c1a8Sjsg{ "native", nullptr, true, {} }, 85b918c1a8Sjsg{ "nativecodegen", nullptr, true, {} }, 86b918c1a8Sjsg{ "objcarcopts", "LLVMObjCARCOpts", true, {"analysis", "core", "support", "transformutils"} }, 87*1ad61ae0Srobert{ "objcopy", "LLVMObjCopy", true, {"binaryformat", "object", "support", "mc"} }, 88*1ad61ae0Srobert{ "object", "LLVMObject", true, {"bitreader", "core", "mc", "irreader", "binaryformat", "mcparser", "support", "targetparser", "textapi"} }, 89*1ad61ae0Srobert{ "objectyaml", "LLVMObjectYAML", true, {"binaryformat", "object", "support", "targetparser", "debuginfocodeview", "mc"} }, 90b918c1a8Sjsg{ "option", "LLVMOption", true, {"support"} }, 91*1ad61ae0Srobert{ "orcjit", "LLVMOrcJIT", true, {"core", "executionengine", "jitlink", "object", "orcshared", "orctargetprocess", "windowsdriver", "mc", "mcdisassembler", "passes", "runtimedyld", "support", "target", "targetparser", "transformutils"} }, 925a38ef86Spatrick{ "orcshared", "LLVMOrcShared", true, {"support"} }, 93*1ad61ae0Srobert{ "orctargetprocess", "LLVMOrcTargetProcess", true, {"orcshared", "support", "targetparser"} }, 94*1ad61ae0Srobert{ "passes", "LLVMPasses", true, {"aggressiveinstcombine", "analysis", "codegen", "core", "coroutines", "ipo", "instcombine", "irprinter", "objcarcopts", "scalaropts", "support", "target", "transformutils", "vectorize", "instrumentation"} }, 95*1ad61ae0Srobert{ "profiledata", "LLVMProfileData", true, {"core", "object", "support", "demangle", "symbolize", "debuginfodwarf", "targetparser"} }, 96aa1fa3d4Spatrick{ "remarks", "LLVMRemarks", true, {"bitstreamreader", "support"} }, 97*1ad61ae0Srobert{ "runtimedyld", "LLVMRuntimeDyld", true, {"core", "mc", "object", "support", "targetparser"} }, 98b918c1a8Sjsg{ "scalaropts", "LLVMScalarOpts", true, {"aggressiveinstcombine", "analysis", "core", "instcombine", "support", "transformutils"} }, 99*1ad61ae0Srobert{ "selectiondag", "LLVMSelectionDAG", true, {"analysis", "codegen", "core", "mc", "support", "target", "targetparser", "transformutils"} }, 100b918c1a8Sjsg{ "support", "LLVMSupport", true, {"demangle"} }, 101*1ad61ae0Srobert{ "symbolize", "LLVMSymbolize", true, {"debuginfodwarf", "debuginfopdb", "object", "support", "demangle", "targetparser"} }, 102b918c1a8Sjsg{ "tablegen", "LLVMTableGen", true, {"support"} }, 103*1ad61ae0Srobert{ "target", "LLVMTarget", true, {"analysis", "core", "mc", "support", "targetparser"} }, 104*1ad61ae0Srobert{ "targetparser", "LLVMTargetParser", true, {"support"} }, 105*1ad61ae0Srobert{ "textapi", "LLVMTextAPI", true, {"support", "binaryformat", "targetparser"} }, 106*1ad61ae0Srobert{ "transformutils", "LLVMTransformUtils", true, {"analysis", "core", "support", "targetparser"} }, 107b918c1a8Sjsg{ "vectorize", "LLVMVectorize", true, {"analysis", "core", "support", "transformutils"} }, 108*1ad61ae0Srobert{ "windowsdriver", "LLVMWindowsDriver", true, {"option", "support", "targetparser"} }, 109b918c1a8Sjsg{ "windowsmanifest", "LLVMWindowsManifest", true, {"support"} }, 110*1ad61ae0Srobert{ "xray", "LLVMXRay", true, {"support", "object", "targetparser"} }, 111b918c1a8Sjsg};