description = ""
requires = "base
            compiler-libs.common
            ocaml-compiler-libs.common
            ocaml-compiler-libs.shadow
            ocaml-migrate-parsetree
            ppx_derivers
            ppxlib.ast
            ppxlib.print_diff
            ppxlib.traverse_builtins
            stdio"
archive(byte) = "ppxlib.cma"
archive(native) = "ppxlib.cmxa"
plugin(byte) = "ppxlib.cma"
plugin(native) = "ppxlib.cmxs"
package "ast" (
  directory = "ast"
  description = ""
  requires = "compiler-libs.common
              ocaml-compiler-libs.common
              ocaml-compiler-libs.shadow
              ocaml-migrate-parsetree"
  archive(byte) = "ppxlib_ast.cma"
  archive(native) = "ppxlib_ast.cmxa"
  plugin(byte) = "ppxlib_ast.cma"
  plugin(native) = "ppxlib_ast.cmxs"
)
package "metaquot" (
  directory = "metaquot"
  description = ""
  requires(ppx_driver) = "ppxlib
                          ppxlib.metaquot_lifters
                          ppxlib.traverse_builtins"
  archive(ppx_driver,byte) = "ppxlib_metaquot.cma"
  archive(ppx_driver,native) = "ppxlib_metaquot.cmxa"
  plugin(ppx_driver,byte) = "ppxlib_metaquot.cma"
  plugin(ppx_driver,native) = "ppxlib_metaquot.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = ""
  ppx(-ppx_driver,-custom_ppx) = "./ppx.exe --as-ppx"
)
package "metaquot_lifters" (
  directory = "metaquot_lifters"
  description = ""
  requires = "ppxlib ppxlib.traverse_builtins"
  archive(byte) = "ppxlib_metaquot_lifters.cma"
  archive(native) = "ppxlib_metaquot_lifters.cmxa"
  plugin(byte) = "ppxlib_metaquot_lifters.cma"
  plugin(native) = "ppxlib_metaquot_lifters.cmxs"
)
package "print_diff" (
  directory = "print_diff"
  description = ""
  requires = ""
  archive(byte) = "ppxlib_print_diff.cma"
  archive(native) = "ppxlib_print_diff.cmxa"
  plugin(byte) = "ppxlib_print_diff.cma"
  plugin(native) = "ppxlib_print_diff.cmxs"
)
package "runner" (
  directory = "runner"
  description = ""
  requires = "ppxlib"
  archive(byte) = "ppxlib_runner.cma"
  archive(native) = "ppxlib_runner.cmxa"
  plugin(byte) = "ppxlib_runner.cma"
  plugin(native) = "ppxlib_runner.cmxs"
)
package "runner_as_ppx" (
  directory = "runner_as_ppx"
  description = ""
  requires = "ppxlib"
  archive(byte) = "ppxlib_runner_as_ppx.cma"
  archive(native) = "ppxlib_runner_as_ppx.cmxa"
  plugin(byte) = "ppxlib_runner_as_ppx.cma"
  plugin(native) = "ppxlib_runner_as_ppx.cmxs"
)
package "traverse" (
  directory = "traverse"
  description = ""
  requires(ppx_driver) = "ppxlib"
  archive(ppx_driver,byte) = "ppxlib_traverse.cma"
  archive(ppx_driver,native) = "ppxlib_traverse.cmxa"
  plugin(ppx_driver,byte) = "ppxlib_traverse.cma"
  plugin(ppx_driver,native) = "ppxlib_traverse.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = ""
  ppx(-ppx_driver,-custom_ppx) = "./ppx.exe --as-ppx"
)
package "traverse_builtins" (
  directory = "traverse_builtins"
  description = ""
  requires = ""
  archive(byte) = "ppxlib_traverse_builtins.cma"
  archive(native) = "ppxlib_traverse_builtins.cmxa"
  plugin(byte) = "ppxlib_traverse_builtins.cma"
  plugin(native) = "ppxlib_traverse_builtins.cmxs"
)
