package "ppx" (
  directory = "ppx"
  version = "20210608"
  description = "Compile-time support for generating visitors"
  requires(ppx_driver) = "compiler-libs.common
                          ppx_deriving.api
                          ppxlib
                          ppxlib.ast
                          result"
  archive(ppx_driver,byte) = "ppx_deriving_visitors.cma"
  archive(ppx_driver,native) = "ppx_deriving_visitors.cmxa"
  plugin(ppx_driver,byte) = "ppx_deriving_visitors.cma"
  plugin(ppx_driver,native) = "ppx_deriving_visitors.cmxs"
  # This is what dune uses to find out the runtime dependencies of
  # a preprocessor
  ppx_runtime_deps = "visitors.runtime"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = "ppx_deriving.runtime visitors.runtime"
  requires(-ppx_driver,-custom_ppx) += "ppx_deriving"
  ppxopt(-ppx_driver,-custom_ppx) = "ppx_deriving,package:visitors.ppx"
  library_kind = "ppx_deriver"
)
package "runtime" (
  directory = "runtime"
  version = "20210608"
  description = "Runtime support for the generated visitors"
  requires = "result"
  archive(byte) = "VisitorsRuntime.cma"
  archive(native) = "VisitorsRuntime.cmxa"
  plugin(byte) = "VisitorsRuntime.cma"
  plugin(native) = "VisitorsRuntime.cmxs"
)