description = ""
requires =
"elpi.parser
 elpi.trace.runtime
 elpi.util
 ppx_deriving.runtime
 re.str
 stdlib-shims
 unix"
archive(byte) = "elpi.cma"
archive(native) = ""
plugin(byte) = "elpi.cma"
plugin(native) = ""
package "lexer_config" (
  directory = "lexer_config"
  description = ""
  requires = "elpi.util"
  archive(byte) = "elpi_lexer_config.cma"
  archive(native) = ""
  plugin(byte) = "elpi_lexer_config.cma"
  plugin(native) = ""
)
package "parser" (
  directory = "parser"
  description = ""
  requires =
  "elpi.lexer_config
   elpi.util
   menhirLib
   ppx_deriving.runtime
   stdlib-shims
   unix"
  archive(byte) = "elpi_parser.cma"
  archive(native) = ""
  plugin(byte) = "elpi_parser.cma"
  plugin(native) = ""
)
package "trace" (
  directory = "trace"
  package "ppx" (
    directory = "ppx"
    description = ""
    requires(ppx_driver) = "ppxlib ppxlib.ast"
    archive(ppx_driver,byte) = "trace_ppx.cma"
    archive(ppx_driver,native) = ""
    plugin(ppx_driver,byte) = "trace_ppx.cma"
    plugin(ppx_driver,native) = ""
    # This is what dune uses to find out the runtime dependencies of
    # a preprocessor
    ppx_runtime_deps = "elpi.trace.runtime"
    # This line makes things transparent for people mixing preprocessors
    # and normal dependencies
    requires(-ppx_driver) = "elpi.trace.runtime"
    ppx(-ppx_driver,-custom_ppx) = "./ppx.exe --as-ppx"
    library_kind = "ppx_rewriter"
  )
  package "runtime" (
    directory = "runtime"
    description = ""
    requires = "re"
    archive(byte) = "trace_ppx_runtime.cma"
    archive(native) = ""
    plugin(byte) = "trace_ppx_runtime.cma"
    plugin(native) = ""
  )
)
package "util" (
  directory = "util"
  description = ""
  requires = "re.str"
  archive(byte) = "elpi_util.cma"
  archive(native) = ""
  plugin(byte) = "elpi_util.cma"
  plugin(native) = ""
)