@@ -465,24 +465,162 @@ envoy_cmake(
465465 }),
466466)
467467
468+ envoy_cmake (
469+ name = "llvm_15_0_7" ,
470+ cache_entries = {
471+ # Disable both: BUILD and INCLUDE, since some of the INCLUDE
472+ # targets build code instead of only generating build files.
473+ "LLVM_BUILD_BENCHMARKS" : "off" ,
474+ "LLVM_BUILD_DOCS" : "off" ,
475+ "LLVM_BUILD_EXAMPLES" : "off" ,
476+ "LLVM_BUILD_TESTS" : "off" ,
477+ "LLVM_BUILD_TOOLS" : "off" ,
478+ "LLVM_ENABLE_IDE" : "off" ,
479+ "LLVM_ENABLE_LIBEDIT" : "off" ,
480+ "LLVM_ENABLE_LIBXML2" : "off" ,
481+ "LLVM_ENABLE_TERMINFO" : "off" ,
482+ "LLVM_ENABLE_ZLIB" : "off" ,
483+ "LLVM_ENABLE_ZSTD" : "off" ,
484+ "LLVM_INCLUDE_BENCHMARKS" : "off" ,
485+ "LLVM_INCLUDE_DOCS" : "off" ,
486+ "LLVM_INCLUDE_EXAMPLES" : "off" ,
487+ "LLVM_INCLUDE_TESTS" : "off" ,
488+ "LLVM_INCLUDE_TOOLS" : "off" ,
489+ "LLVM_TARGETS_TO_BUILD" : "X86" ,
490+ "LLVM_USE_PERF" : "on" ,
491+ "CMAKE_CXX_FLAGS" : "-Wno-unused-command-line-argument" ,
492+ },
493+ generate_args = ["-GNinja" ] + select ({
494+ # `lld` doesn't work on MacOS
495+ "@platforms//os:linux" : ["-DLLVM_USE_LINKER=lld" ],
496+ "//conditions:default" : [],
497+ }) + select ({
498+ "//bazel:dbg_build" : ["-DCMAKE_BUILD_TYPE=Debug" ],
499+ "//conditions:default" : ["-DCMAKE_BUILD_TYPE=MinSizeRel" ],
500+ }),
501+ lib_source = "@org_llvm_llvm_15_0_7//:all" ,
502+ out_data_dirs = [
503+ "bin" ,
504+ "include" ,
505+ "lib" ,
506+ "libexec" ,
507+ "share" ,
508+ ],
509+ out_static_libs = [
510+ # How to get the library list:
511+ # build LLVM with "-DLLVM_INCLUDE_TOOLS=ON"
512+ # cd bin and run "./llvm-config --libnames"
513+ "libLLVMWindowsManifest.a" ,
514+ "libLLVMXRay.a" ,
515+ "libLLVMLibDriver.a" ,
516+ "libLLVMDlltoolDriver.a" ,
517+ "libLLVMCoverage.a" ,
518+ "libLLVMLineEditor.a" ,
519+ "libLLVMX86Disassembler.a" ,
520+ "libLLVMX86AsmParser.a" ,
521+ "libLLVMX86CodeGen.a" ,
522+ "libLLVMX86Desc.a" ,
523+ "libLLVMX86Info.a" ,
524+ "libLLVMOrcJIT.a" ,
525+ "libLLVMMCJIT.a" ,
526+ "libLLVMJITLink.a" ,
527+ "libLLVMInterpreter.a" ,
528+ "libLLVMExecutionEngine.a" ,
529+ "libLLVMRuntimeDyld.a" ,
530+ "libLLVMOrcTargetProcess.a" ,
531+ "libLLVMOrcShared.a" ,
532+ "libLLVMDWP.a" ,
533+ "libLLVMSymbolize.a" ,
534+ "libLLVMDebugInfoPDB.a" ,
535+ "libLLVMDebugInfoGSYM.a" ,
536+ "libLLVMOption.a" ,
537+ "libLLVMObjectYAML.a" ,
538+ "libLLVMMCA.a" ,
539+ "libLLVMMCDisassembler.a" ,
540+ "libLLVMLTO.a" ,
541+ "libLLVMPasses.a" ,
542+ "libLLVMCFGuard.a" ,
543+ "libLLVMCoroutines.a" ,
544+ "libLLVMObjCARCOpts.a" ,
545+ "libLLVMipo.a" ,
546+ "libLLVMVectorize.a" ,
547+ "libLLVMLinker.a" ,
548+ "libLLVMInstrumentation.a" ,
549+ "libLLVMFrontendOpenMP.a" ,
550+ "libLLVMFrontendOpenACC.a" ,
551+ "libLLVMExtensions.a" ,
552+ "libLLVMDWARFLinker.a" ,
553+ "libLLVMGlobalISel.a" ,
554+ "libLLVMMIRParser.a" ,
555+ "libLLVMAsmPrinter.a" ,
556+ "libLLVMDebugInfoMSF.a" ,
557+ "libLLVMDebugInfoDWARF.a" ,
558+ "libLLVMSelectionDAG.a" ,
559+ "libLLVMCodeGen.a" ,
560+ "libLLVMIRReader.a" ,
561+ "libLLVMAsmParser.a" ,
562+ "libLLVMInterfaceStub.a" ,
563+ "libLLVMFileCheck.a" ,
564+ "libLLVMFuzzMutate.a" ,
565+ "libLLVMTarget.a" ,
566+ "libLLVMScalarOpts.a" ,
567+ "libLLVMInstCombine.a" ,
568+ "libLLVMAggressiveInstCombine.a" ,
569+ "libLLVMTransformUtils.a" ,
570+ "libLLVMBitWriter.a" ,
571+ "libLLVMAnalysis.a" ,
572+ "libLLVMProfileData.a" ,
573+ "libLLVMObject.a" ,
574+ "libLLVMTextAPI.a" ,
575+ "libLLVMMCParser.a" ,
576+ "libLLVMMC.a" ,
577+ "libLLVMDebugInfoCodeView.a" ,
578+ "libLLVMBitReader.a" ,
579+ "libLLVMCore.a" ,
580+ "libLLVMRemarks.a" ,
581+ "libLLVMBitstreamReader.a" ,
582+ "libLLVMBinaryFormat.a" ,
583+ "libLLVMTableGen.a" ,
584+ "libLLVMSupport.a" ,
585+ "libLLVMDemangle.a" ,
586+ "libLLVMPerfJITEvents.a" ,
587+ ],
588+ working_directory = "llvm" ,
589+ )
590+
468591envoy_cmake (
469592 name = "wamr" ,
470593 cache_entries = {
471- "WAMR_BUILD_AOT" : "0" ,
472- "WAMR_BUILD_FAST_INTERP" : "1" ,
594+ # aot/jit by default
595+ "LLVM_DIR" : "$EXT_BUILD_DEPS/copy_llvm_15_0_7/llvm/lib/cmake/llvm" ,
596+ "WAMR_BUILD_AOT" : "1" ,
597+ "WAMR_BUILD_FAST_INTERP" : "0" ,
473598 "WAMR_BUILD_INTERP" : "1" ,
474- "WAMR_BUILD_JIT" : "0" ,
599+ "WAMR_BUILD_JIT" : "1" ,
600+ # disable WASI
475601 "WAMR_BUILD_LIBC_WASI" : "0" ,
476- "WAMR_BUILD_MULTI_MODULE" : "0" ,
602+ "WAMR_BUILD_LIBC_BUILTIN" : "0" ,
603+ # MVP
604+ "WAMR_BUILD_BULK_MEMORY" : "1" ,
605+ "WAMR_BUILD_REF_TYPES" : "1" ,
606+ # only for jit and aot
477607 "WAMR_BUILD_SIMD" : "0" ,
478608 "WAMR_BUILD_TAIL_CALL" : "1" ,
479609 "WAMR_BUILD_WASM_CACHE" : "0" ,
480- "WAMR_DISABLE_HW_BOUND_CHECK" : "0" ,
481- "WAMR_DISABLE_STACK_HW_BOUND_CHECK" : "1" ,
610+ "WAMR_BUILD_MULTI_MODULE" : "0" ,
611+ # enable below to enhance development experience
612+ # name section
613+ "WAMR_BUILD_CUSTOM_NAME_SECTION" : "1" ,
614+ "WAMR_BUILD_LOAD_CUSTOM_SECTION" : "1" ,
615+ # output call stack if meet a trap
616+ "WAMR_BUILD_DUMP_CALL_STACK" : "1" ,
617+ # linux perf. only for jit and aot
618+ "WAMR_BUILD_LINUX_PERF" : "1" ,
482619 },
483620 lib_source = "@com_github_wamr//:all" ,
484621 out_static_libs = ["libvmlib.a" ],
485622 tags = ["skip_on_windows" ],
623+ deps = [":llvm_15_0_7" ],
486624)
487625
488626envoy_cmake (
0 commit comments