|
| 1 | +load("@rules_foreign_cc//foreign_cc:defs.bzl", "cmake") |
| 2 | + |
| 3 | +licenses(["notice"]) # Apache 2 |
| 4 | + |
| 5 | +package(default_visibility = ["//visibility:public"]) |
| 6 | + |
| 7 | +filegroup( |
| 8 | + name = "srcs", |
| 9 | + srcs = glob(["**"]), |
| 10 | +) |
| 11 | + |
| 12 | +cmake( |
| 13 | + name = "llvm_13_0_1_lib", |
| 14 | + cache_entries = { |
| 15 | + # Disable both: BUILD and INCLUDE, since some of the INCLUDE |
| 16 | + # targets build code instead of only generating build files. |
| 17 | + "LLVM_BUILD_BENCHMARKS": "off", |
| 18 | + "LLVM_INCLUDE_BENCHMARKS": "off", |
| 19 | + "LLVM_BUILD_DOCS": "off", |
| 20 | + "LLVM_INCLUDE_DOCS": "off", |
| 21 | + "LLVM_BUILD_EXAMPLES": "off", |
| 22 | + "LLVM_INCLUDE_EXAMPLES": "off", |
| 23 | + "LLVM_BUILD_RUNTIME": "off", |
| 24 | + "LLVM_BUILD_RUNTIMES": "off", |
| 25 | + "LLVM_INCLUDE_RUNTIMES": "off", |
| 26 | + "LLVM_BUILD_TESTS": "off", |
| 27 | + "LLVM_INCLUDE_TESTS": "off", |
| 28 | + "LLVM_BUILD_TOOLS": "off", |
| 29 | + "LLVM_INCLUDE_TOOLS": "off", |
| 30 | + "LLVM_BUILD_UTILS": "off", |
| 31 | + "LLVM_INCLUDE_UTILS": "off", |
| 32 | + "LLVM_ENABLE_IDE": "off", |
| 33 | + "LLVM_ENABLE_LIBEDIT": "off", |
| 34 | + "LLVM_ENABLE_LIBXML2": "off", |
| 35 | + "LLVM_ENABLE_TERMINFO": "off", |
| 36 | + "LLVM_ENABLE_ZLIB": "off", |
| 37 | + "LLVM_TARGETS_TO_BUILD": "X86", |
| 38 | + "CMAKE_CXX_FLAGS": "-Wno-unused-command-line-argument", |
| 39 | + }, |
| 40 | + # `lld` doesn't work on MacOS |
| 41 | + generate_args = select({ |
| 42 | + "@platforms//os:linux": [ |
| 43 | + "-GNinja", |
| 44 | + "-DLLVM_USE_LINKER=lld", |
| 45 | + ], |
| 46 | + "//conditions:default": [ |
| 47 | + "-GNinja", |
| 48 | + ], |
| 49 | + }), |
| 50 | + lib_source = ":srcs", |
| 51 | + out_data_dirs = [ |
| 52 | + "bin", |
| 53 | + "include", |
| 54 | + "lib", |
| 55 | + "libexec", |
| 56 | + "share", |
| 57 | + ], |
| 58 | + out_static_libs = [ |
| 59 | + # How to get the library list: |
| 60 | + # build LLVM with "-DLLVM_INCLUDE_TOOLS=ON" |
| 61 | + # cd bin and run "./llvm-config --libnames" |
| 62 | + "libLLVMWindowsManifest.a", |
| 63 | + "libLLVMXRay.a", |
| 64 | + "libLLVMLibDriver.a", |
| 65 | + "libLLVMDlltoolDriver.a", |
| 66 | + "libLLVMCoverage.a", |
| 67 | + "libLLVMLineEditor.a", |
| 68 | + "libLLVMX86Disassembler.a", |
| 69 | + "libLLVMX86AsmParser.a", |
| 70 | + "libLLVMX86CodeGen.a", |
| 71 | + "libLLVMX86Desc.a", |
| 72 | + "libLLVMX86Info.a", |
| 73 | + "libLLVMOrcJIT.a", |
| 74 | + "libLLVMMCJIT.a", |
| 75 | + "libLLVMJITLink.a", |
| 76 | + "libLLVMInterpreter.a", |
| 77 | + "libLLVMExecutionEngine.a", |
| 78 | + "libLLVMRuntimeDyld.a", |
| 79 | + "libLLVMOrcTargetProcess.a", |
| 80 | + "libLLVMOrcShared.a", |
| 81 | + "libLLVMDWP.a", |
| 82 | + "libLLVMSymbolize.a", |
| 83 | + "libLLVMDebugInfoPDB.a", |
| 84 | + "libLLVMDebugInfoGSYM.a", |
| 85 | + "libLLVMOption.a", |
| 86 | + "libLLVMObjectYAML.a", |
| 87 | + "libLLVMMCA.a", |
| 88 | + "libLLVMMCDisassembler.a", |
| 89 | + "libLLVMLTO.a", |
| 90 | + "libLLVMPasses.a", |
| 91 | + "libLLVMCFGuard.a", |
| 92 | + "libLLVMCoroutines.a", |
| 93 | + "libLLVMObjCARCOpts.a", |
| 94 | + "libLLVMipo.a", |
| 95 | + "libLLVMVectorize.a", |
| 96 | + "libLLVMLinker.a", |
| 97 | + "libLLVMInstrumentation.a", |
| 98 | + "libLLVMFrontendOpenMP.a", |
| 99 | + "libLLVMFrontendOpenACC.a", |
| 100 | + "libLLVMExtensions.a", |
| 101 | + "libLLVMDWARFLinker.a", |
| 102 | + "libLLVMGlobalISel.a", |
| 103 | + "libLLVMMIRParser.a", |
| 104 | + "libLLVMAsmPrinter.a", |
| 105 | + "libLLVMDebugInfoMSF.a", |
| 106 | + "libLLVMDebugInfoDWARF.a", |
| 107 | + "libLLVMSelectionDAG.a", |
| 108 | + "libLLVMCodeGen.a", |
| 109 | + "libLLVMIRReader.a", |
| 110 | + "libLLVMAsmParser.a", |
| 111 | + "libLLVMInterfaceStub.a", |
| 112 | + "libLLVMFileCheck.a", |
| 113 | + "libLLVMFuzzMutate.a", |
| 114 | + "libLLVMTarget.a", |
| 115 | + "libLLVMScalarOpts.a", |
| 116 | + "libLLVMInstCombine.a", |
| 117 | + "libLLVMAggressiveInstCombine.a", |
| 118 | + "libLLVMTransformUtils.a", |
| 119 | + "libLLVMBitWriter.a", |
| 120 | + "libLLVMAnalysis.a", |
| 121 | + "libLLVMProfileData.a", |
| 122 | + "libLLVMObject.a", |
| 123 | + "libLLVMTextAPI.a", |
| 124 | + "libLLVMMCParser.a", |
| 125 | + "libLLVMMC.a", |
| 126 | + "libLLVMDebugInfoCodeView.a", |
| 127 | + "libLLVMBitReader.a", |
| 128 | + "libLLVMCore.a", |
| 129 | + "libLLVMRemarks.a", |
| 130 | + "libLLVMBitstreamReader.a", |
| 131 | + "libLLVMBinaryFormat.a", |
| 132 | + "libLLVMTableGen.a", |
| 133 | + "libLLVMSupport.a", |
| 134 | + "libLLVMDemangle.a", |
| 135 | + ], |
| 136 | +) |
0 commit comments