constants.lua 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375
  1. --- from llvm/CMakeLists.txt
  2. function get_llvm_all_projects()
  3. -- @see https://llvm.org/docs/CMake.html
  4. -- Some projects listed here can also go in LLVM_ENABLE_RUNTIMES. They should
  5. -- only appear in one of the two lists. If a project is a valid possiblity for
  6. -- both, prefer putting it in LLVM_ENABLE_RUNTIMES.
  7. return {
  8. "bolt",
  9. "clang",
  10. "clang-tools-extra", -- But we do not build clang tools.
  11. "libclc",
  12. "lld",
  13. "lldb",
  14. "mlir", -- TODO: incompleted.
  15. "polly"
  16. }
  17. end
  18. function get_llvm_extra_projects()
  19. return {
  20. "flang"
  21. }
  22. end
  23. function get_llvm_known_projects()
  24. return table.join(get_llvm_all_projects(), get_llvm_extra_projects())
  25. end
  26. function get_llvm_all_runtimes()
  27. return {
  28. "libc",
  29. "libunwind",
  30. "libcxxabi",
  31. "pstl",
  32. "libcxx",
  33. "compiler-rt",
  34. "openmp",
  35. "llvm-libgcc",
  36. "offload",
  37. "flang-rt"
  38. }
  39. end
  40. --- from cmake/llvm/LLVMExports.cmake
  41. function get_llvm_shared_libraries()
  42. return {
  43. "LLVM",
  44. "Remarks",
  45. "LTO"
  46. }
  47. end
  48. function get_llvm_static_libraries()
  49. return {
  50. "LLVMExegesisMips",
  51. "LLVMExegesisPowerPC",
  52. "LLVMExegesisAArch64",
  53. "LLVMExegesisX86",
  54. "LLVMOptDriver",
  55. "LLVMExegesis",
  56. "LLVMOrcDebugging",
  57. "LLVMBPFCodeGen",
  58. "LLVMAMDGPUCodeGen",
  59. "LLVMOrcJIT",
  60. "LLVMLTO",
  61. "LLVMPasses",
  62. "LLVMX86CodeGen",
  63. "LLVMRISCVCodeGen",
  64. "LLVMPowerPCCodeGen",
  65. "LLVMMipsCodeGen",
  66. "LLVMARMCodeGen",
  67. "LLVMAArch64CodeGen",
  68. "LLVMNVPTXCodeGen",
  69. "LLVMHexagonCodeGen",
  70. "LLVMCoroutines",
  71. "LLVMWebAssemblyCodeGen",
  72. "LLVMDWARFLinkerParallel",
  73. "LLVMDWARFLinkerClassic",
  74. "LLVMXCoreCodeGen",
  75. "LLVMVECodeGen",
  76. "LLVMSystemZCodeGen",
  77. "LLVMSparcCodeGen",
  78. "LLVMMSP430CodeGen",
  79. "LLVMLoongArchCodeGen",
  80. "LLVMLanaiCodeGen",
  81. "LLVMAVRCodeGen",
  82. "LLVMGlobalISel",
  83. "LLVMipo",
  84. "LLVMWebAssemblyUtils",
  85. "LLVMInterpreter",
  86. "LLVMDWARFLinker",
  87. "LLVMMIRParser",
  88. "LLVMAsmPrinter",
  89. "LLVMSelectionDAG",
  90. "LLVMFrontendOpenMP",
  91. "LLVMCodeGen",
  92. "LLVMFuzzMutate",
  93. "LLVMAMDGPUTargetMCA",
  94. "LLVMAMDGPUDisassembler",
  95. "LLVMAMDGPUAsmParser",
  96. "LLVMMCJIT",
  97. "LLVMScalarOpts",
  98. "LLVMAMDGPUDesc",
  99. "LLVMExecutionEngine",
  100. "LLVMLinker",
  101. "LLVMHipStdPar",
  102. "LLVMObjCARCOpts",
  103. "LLVMVectorize",
  104. "LLVMInstCombine",
  105. "LLVMAggressiveInstCombine",
  106. "LLVMInstrumentation",
  107. "LLVMFrontendOffloading",
  108. "LLVMAMDGPUUtils",
  109. "LLVMTarget",
  110. "LLVMTransformUtils",
  111. "LLVMFrontendDriver",
  112. "LLVMBitWriter",
  113. "LLVMIRPrinter",
  114. "LLVMCoverage",
  115. "LLVMAnalysis",
  116. "LLVMCFIVerify",
  117. "LLVMProfileData",
  118. "LLVMDebuginfod",
  119. "LLVMARMDisassembler",
  120. "LLVMARMAsmParser",
  121. "LLVMSymbolize",
  122. "LLVMDebugInfoLogicalView",
  123. "LLVMTextAPIBinaryReader",
  124. "LLVMDWP",
  125. "LLVMDebugInfoGSYM",
  126. "LLVMXRay",
  127. "LLVMLibDriver",
  128. "LLVMDlltoolDriver",
  129. "LLVMARMDesc",
  130. "LLVMRuntimeDyld",
  131. "LLVMJITLink",
  132. "LLVMDebugInfoPDB",
  133. "LLVMDebugInfoDWARF",
  134. "LLVMObjectYAML",
  135. "LLVMObjCopy",
  136. "LLVMCodeGenData",
  137. "LLVMInterfaceStub",
  138. "LLVMX86TargetMCA",
  139. "LLVMX86AsmParser",
  140. "LLVMWebAssemblyDisassembler",
  141. "LLVMWebAssemblyAsmParser",
  142. "LLVMVEAsmParser",
  143. "LLVMSystemZDisassembler",
  144. "LLVMSystemZAsmParser",
  145. "LLVMSparcAsmParser",
  146. "LLVMRISCVTargetMCA",
  147. "LLVMRISCVDisassembler",
  148. "LLVMRISCVAsmParser",
  149. "LLVMPowerPCAsmParser",
  150. "LLVMMSP430AsmParser",
  151. "LLVMMipsAsmParser",
  152. "LLVMLoongArchDisassembler",
  153. "LLVMLoongArchAsmParser",
  154. "LLVMLanaiDisassembler",
  155. "LLVMLanaiAsmParser",
  156. "LLVMHexagonDisassembler",
  157. "LLVMHexagonAsmParser",
  158. "LLVMBPFAsmParser",
  159. "LLVMAVRAsmParser",
  160. "LLVMAArch64Disassembler",
  161. "LLVMAArch64AsmParser",
  162. "LLVMObject",
  163. "LLVMXCoreDesc",
  164. "LLVMXCoreDisassembler",
  165. "LLVMX86Desc",
  166. "LLVMX86Disassembler",
  167. "LLVMWebAssemblyDesc",
  168. "LLVMVEDesc",
  169. "LLVMVEDisassembler",
  170. "LLVMSystemZDesc",
  171. "LLVMSparcDesc",
  172. "LLVMSparcDisassembler",
  173. "LLVMRISCVDesc",
  174. "LLVMPowerPCDesc",
  175. "LLVMPowerPCDisassembler",
  176. "LLVMNVPTXDesc",
  177. "LLVMMSP430Disassembler",
  178. "LLVMMSP430Desc",
  179. "LLVMMipsDesc",
  180. "LLVMMipsDisassembler",
  181. "LLVMLoongArchDesc",
  182. "LLVMLanaiDesc",
  183. "LLVMHexagonDesc",
  184. "LLVMBPFDesc",
  185. "LLVMBPFDisassembler",
  186. "LLVMAVRDesc",
  187. "LLVMAVRDisassembler",
  188. "LLVMAArch64Desc",
  189. "LLVMIRReader",
  190. "LLVMXCoreInfo",
  191. "LLVMX86Info",
  192. "LLVMWebAssemblyInfo",
  193. "LLVMVEInfo",
  194. "LLVMSystemZInfo",
  195. "LLVMSparcInfo",
  196. "LLVMRISCVInfo",
  197. "LLVMPowerPCInfo",
  198. "LLVMNVPTXInfo",
  199. "LLVMMSP430Info",
  200. "LLVMMipsInfo",
  201. "LLVMLoongArchInfo",
  202. "LLVMLanaiInfo",
  203. "LLVMHexagonInfo",
  204. "LLVMBPFInfo",
  205. "LLVMAVRInfo",
  206. "LLVMARMInfo",
  207. "LLVMAMDGPUInfo",
  208. "LLVMAArch64Info",
  209. "LLVMMCA",
  210. "LLVMMCDisassembler",
  211. "LLVMMCParser",
  212. "LLVMDiff",
  213. "LLVMAsmParser",
  214. "LLVMSandboxIR",
  215. "LLVMAArch64Utils",
  216. "LLVMCFGuard",
  217. "LLVMFrontendHLSL",
  218. "LLVMBitReader",
  219. "LLVMTextAPI",
  220. "LLVMMC",
  221. "LLVMCore",
  222. "LLVMTableGenCommon",
  223. "LLVMWindowsDriver",
  224. "LLVMOrcTargetProcess",
  225. "LLVMBinaryFormat",
  226. "LLVMFuzzerCLI",
  227. "LLVMRemarks",
  228. "LLVMTableGenBasic",
  229. "LLVMWindowsManifest",
  230. "LLVMTargetParser",
  231. "LLVMLineEditor",
  232. "LLVMARMUtils",
  233. "LLVMOrcShared",
  234. "LLVMDebugInfoBTF",
  235. "LLVMDebugInfoCodeView",
  236. "LLVMDebugInfoMSF",
  237. "LLVMOption",
  238. "LLVMFrontendOpenACC",
  239. "LLVMExtensions",
  240. "LLVMBitstreamReader",
  241. "LLVMCodeGenTypes",
  242. "LLVMFileCheck",
  243. "LLVMTableGen",
  244. "LLVMSupport",
  245. "LLVMDemangle",
  246. "Remarks", -- shared
  247. "LTO" -- shared
  248. }
  249. end
  250. function get_bolt_shared_libraries()
  251. return {} -- TODO
  252. end
  253. function get_bolt_static_libraries()
  254. return {
  255. "LLVMBOLTRewrite",
  256. "LLVMBOLTRuntimeLibs",
  257. "LLVMBOLTTargetRISCV",
  258. "LLVMBOLTTargetX86",
  259. "LLVMBOLTTargetAArch64",
  260. "LLVMBOLTProfile",
  261. "LLVMBOLTPasses",
  262. "LLVMBOLTCore",
  263. "LLVMBOLTUtils"
  264. }
  265. end
  266. function get_polly_shared_libraries()
  267. return {} -- TODO
  268. end
  269. function get_polly_static_libraries()
  270. return {
  271. "Polly",
  272. "LLVMPolly", -- shared
  273. "PollyISL",
  274. }
  275. end
  276. --- from cmake/clang/ClangTargets.cmake
  277. function get_clang_shared_libraries()
  278. return {
  279. "clang-cpp",
  280. "clang" -- Clang's stable CAPI (shared)
  281. }
  282. end
  283. function get_clang_static_libraries()
  284. return {
  285. "clangInterpreter",
  286. "clangFrontendTool",
  287. "clangStaticAnalyzerFrontend",
  288. "clangStaticAnalyzerCheckers",
  289. "clangTransformer",
  290. "clangStaticAnalyzerCore",
  291. "clangToolingRefactoring",
  292. "clangExtractAPI",
  293. "clangCrossTU",
  294. "clangHandleCXX",
  295. "clangDependencyScanning",
  296. "clangIndex",
  297. "clangTooling",
  298. "clangToolingSyntax",
  299. "clangRewriteFrontend",
  300. "clangARCMigrate",
  301. "clangCodeGen",
  302. "clangFrontend",
  303. "clangAnalysisFlowSensitiveModels",
  304. "clangSerialization",
  305. "clangParse",
  306. "clangFormat",
  307. "clangAnalysisFlowSensitive",
  308. "clangSema",
  309. "clangToolingInclusions",
  310. "clangAnalysis",
  311. "clangDynamicASTMatchers",
  312. "clangToolingCore",
  313. "clangInstallAPI",
  314. "clangToolingASTDiff",
  315. "clangToolingInclusionsStdlib",
  316. "clangEdit",
  317. "clangASTMatchers",
  318. "clangRewrite",
  319. "clangAST",
  320. "clangIndexSerialization",
  321. "clangDriver",
  322. "clangLex",
  323. "clangAPINotes",
  324. "clangHandleLLVM",
  325. "clangSupport",
  326. "clangDirectoryWatcher",
  327. "clangBasic",
  328. "clang", -- Clang's stable CAPI (shared)
  329. }
  330. end
  331. --- from cmake/lld/LLDTargets.cmake
  332. function get_lld_shared_libraries()
  333. return {} -- TODO
  334. end
  335. function get_lld_static_libraries()
  336. return {
  337. "lldMinGW",
  338. "lldWasm",
  339. "lldMachO",
  340. "lldELF",
  341. "lldCOFF",
  342. "lldCommon",
  343. }
  344. end
  345. --- lldb
  346. function get_lldb_shared_libraries()
  347. return {
  348. "lldb"
  349. }
  350. end
  351. function get_lldb_static_libraries()
  352. return {
  353. "lldb" -- shared
  354. }
  355. end