Flag llvm
 Description: Build with llvm backend
 Default: false

Flag llvm_static
  Description: Links with llvm in a static mode
  Default: true


Library bap_llvm
  Path:          lib/bap_llvm
  Build$:        flag(everything) || flag(llvm)
  BuildDepends:  bap, bap-core-theory, bap-knowledge, bitvec, ogre, monads, core_kernel, ppx_bap, mmap, core_kernel.caml_unix
  FindlibName:   bap-llvm
  Modules:       Bap_llvm,
                 Bap_llvm_loader
  InternalModules:
                 Bap_llvm_config,
                 Bap_llvm_disasm
  CCOpt:         $cc_optimization
  CCLib:         $llvm_lib $cxxlibs $llvm_ldflags -lcurses -lzstd
  CSources:      llvm_disasm.h,
                 llvm_disasm.c,
                 llvm_stubs.c,
                 llvm_error_or.c,
                 llvm_error_or.h,
                 llvm_loader.c,
                 llvm_loader.h,
                 llvm_coff_loader.c,
                 llvm_coff_loader.h,
                 llvm_elf_loader.c,
                 llvm_elf_loader.h,
                 llvm_macho_loader.c,
                 llvm_macho_loader.h,
                 llvm_loader_stubs.c,
                 llvm_loader_stubs.h,
                 llvm_loader_utils.c,
                 llvm_loader_utils.h,
                 llvm_pdb_loader.c,
                 llvm_pdb_loader.h,
                 llvm_primitives.c,
                 llvm_primitives.h

Library llvm_plugin
  XMETADescription: provide loader and disassembler using LLVM library
  Path:            plugins/llvm
  Build$:          flag(everything) || flag(llvm)
  FindlibName:     bap-plugin-llvm
  InternalModules: Llvm_main
  BuildDepends:    bap, bap-llvm, bap-main, core_kernel
  XMETAExtraLines: tags="disassembler, llvm, loader, elf, macho, coff"
