description = "Type-driven code generation"
ppx(-custom_ppx) = "./ppx_deriving"
requires = "ppx_deriving.runtime"

package "api" (
  directory = "api"
  version = "5.2.1"
  description = "Plugin API for ppx_deriving"
  requires = "compiler-libs.common ppx_derivers ppxlib ppxlib.ast result"
  archive(byte) = "ppx_deriving_api.cma"
  archive(native) = "ppx_deriving_api.cmxa"
  plugin(byte) = "ppx_deriving_api.cma"
  plugin(native) = "ppx_deriving_api.cmxs"
  # This is what dune uses to find out the runtime dependencies of
  # a preprocessor
  ppx_runtime_deps = "ppx_deriving.runtime"
)
package "create" (
  directory = "create"
  version = "5.2.1"
  description = "[@@deriving create]"
  requires(ppx_driver) = "compiler-libs.common
                          ppx_deriving.api
                          ppxlib
                          ppxlib.ast"
  archive(ppx_driver,byte) = "ppx_deriving_create.cma"
  archive(ppx_driver,native) = "ppx_deriving_create.cmxa"
  plugin(ppx_driver,byte) = "ppx_deriving_create.cma"
  plugin(ppx_driver,native) = "ppx_deriving_create.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = "ppx_deriving.runtime"
  requires(-ppx_driver,-custom_ppx) += "ppx_deriving"
  ppxopt(-ppx_driver,-custom_ppx) = "ppx_deriving,package:ppx_deriving.create"
  library_kind = "ppx_deriver"
)
package "enum" (
  directory = "enum"
  version = "5.2.1"
  description = "[@@deriving enum]"
  requires(ppx_driver) = "compiler-libs.common
                          ppx_deriving.api
                          ppxlib
                          ppxlib.ast"
  archive(ppx_driver,byte) = "ppx_deriving_enum.cma"
  archive(ppx_driver,native) = "ppx_deriving_enum.cmxa"
  plugin(ppx_driver,byte) = "ppx_deriving_enum.cma"
  plugin(ppx_driver,native) = "ppx_deriving_enum.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = "ppx_deriving.runtime"
  requires(-ppx_driver,-custom_ppx) += "ppx_deriving"
  ppxopt(-ppx_driver,-custom_ppx) = "ppx_deriving,package:ppx_deriving.enum"
  library_kind = "ppx_deriver"
)
package "eq" (
  directory = "eq"
  version = "5.2.1"
  description = "[@@deriving eq]"
  requires(ppx_driver) = "compiler-libs.common
                          ppx_deriving.api
                          ppxlib
                          ppxlib.ast"
  archive(ppx_driver,byte) = "ppx_deriving_eq.cma"
  archive(ppx_driver,native) = "ppx_deriving_eq.cmxa"
  plugin(ppx_driver,byte) = "ppx_deriving_eq.cma"
  plugin(ppx_driver,native) = "ppx_deriving_eq.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = "ppx_deriving.runtime"
  requires(-ppx_driver,-custom_ppx) += "ppx_deriving"
  ppxopt(-ppx_driver,-custom_ppx) = "ppx_deriving,package:ppx_deriving.eq"
  library_kind = "ppx_deriver"
)
package "fold" (
  directory = "fold"
  version = "5.2.1"
  description = "[@@deriving fold]"
  requires(ppx_driver) = "compiler-libs.common
                          ppx_deriving.api
                          ppxlib
                          ppxlib.ast"
  archive(ppx_driver,byte) = "ppx_deriving_fold.cma"
  archive(ppx_driver,native) = "ppx_deriving_fold.cmxa"
  plugin(ppx_driver,byte) = "ppx_deriving_fold.cma"
  plugin(ppx_driver,native) = "ppx_deriving_fold.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = "ppx_deriving.runtime"
  requires(-ppx_driver,-custom_ppx) += "ppx_deriving"
  ppxopt(-ppx_driver,-custom_ppx) = "ppx_deriving,package:ppx_deriving.fold"
  library_kind = "ppx_deriver"
)
package "iter" (
  directory = "iter"
  version = "5.2.1"
  description = "[@@deriving iter]"
  requires(ppx_driver) = "compiler-libs.common
                          ppx_deriving.api
                          ppxlib
                          ppxlib.ast"
  archive(ppx_driver,byte) = "ppx_deriving_iter.cma"
  archive(ppx_driver,native) = "ppx_deriving_iter.cmxa"
  plugin(ppx_driver,byte) = "ppx_deriving_iter.cma"
  plugin(ppx_driver,native) = "ppx_deriving_iter.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = "ppx_deriving.runtime"
  requires(-ppx_driver,-custom_ppx) += "ppx_deriving"
  ppxopt(-ppx_driver,-custom_ppx) = "ppx_deriving,package:ppx_deriving.iter"
  library_kind = "ppx_deriver"
)
package "make" (
  directory = "make"
  version = "5.2.1"
  description = "[@@deriving make]"
  requires(ppx_driver) = "compiler-libs.common
                          ppx_deriving.api
                          ppxlib
                          ppxlib.ast"
  archive(ppx_driver,byte) = "ppx_deriving_make.cma"
  archive(ppx_driver,native) = "ppx_deriving_make.cmxa"
  plugin(ppx_driver,byte) = "ppx_deriving_make.cma"
  plugin(ppx_driver,native) = "ppx_deriving_make.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = "ppx_deriving.runtime"
  requires(-ppx_driver,-custom_ppx) += "ppx_deriving"
  ppxopt(-ppx_driver,-custom_ppx) = "ppx_deriving,package:ppx_deriving.make"
  library_kind = "ppx_deriver"
)
package "map" (
  directory = "map"
  version = "5.2.1"
  description = "[@@deriving map]"
  requires(ppx_driver) = "compiler-libs.common
                          ppx_deriving.api
                          ppxlib
                          ppxlib.ast"
  archive(ppx_driver,byte) = "ppx_deriving_map.cma"
  archive(ppx_driver,native) = "ppx_deriving_map.cmxa"
  plugin(ppx_driver,byte) = "ppx_deriving_map.cma"
  plugin(ppx_driver,native) = "ppx_deriving_map.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = "ppx_deriving.runtime"
  requires(-ppx_driver,-custom_ppx) += "ppx_deriving"
  ppxopt(-ppx_driver,-custom_ppx) = "ppx_deriving,package:ppx_deriving.map"
  library_kind = "ppx_deriver"
)
package "ord" (
  directory = "ord"
  version = "5.2.1"
  description = "[@@deriving ord]"
  requires(ppx_driver) = "compiler-libs.common
                          ppx_deriving.api
                          ppxlib
                          ppxlib.ast"
  archive(ppx_driver,byte) = "ppx_deriving_ord.cma"
  archive(ppx_driver,native) = "ppx_deriving_ord.cmxa"
  plugin(ppx_driver,byte) = "ppx_deriving_ord.cma"
  plugin(ppx_driver,native) = "ppx_deriving_ord.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = "ppx_deriving.runtime"
  requires(-ppx_driver,-custom_ppx) += "ppx_deriving"
  ppxopt(-ppx_driver,-custom_ppx) = "ppx_deriving,package:ppx_deriving.ord"
  library_kind = "ppx_deriver"
)
package "runtime" (
  directory = "runtime"
  version = "5.2.1"
  description = "Type-driven code generation"
  requires = "result"
  archive(byte) = "ppx_deriving_runtime.cma"
  archive(native) = "ppx_deriving_runtime.cmxa"
  plugin(byte) = "ppx_deriving_runtime.cma"
  plugin(native) = "ppx_deriving_runtime.cmxs"
)
package "show" (
  directory = "show"
  version = "5.2.1"
  description = "[@@deriving show]"
  requires(ppx_driver) = "compiler-libs.common
                          ppx_deriving.api
                          ppxlib
                          ppxlib.ast"
  archive(ppx_driver,byte) = "ppx_deriving_show.cma"
  archive(ppx_driver,native) = "ppx_deriving_show.cmxa"
  plugin(ppx_driver,byte) = "ppx_deriving_show.cma"
  plugin(ppx_driver,native) = "ppx_deriving_show.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = "ppx_deriving.runtime"
  requires(-ppx_driver,-custom_ppx) += "ppx_deriving"
  ppxopt(-ppx_driver,-custom_ppx) = "ppx_deriving,package:ppx_deriving.show"
  library_kind = "ppx_deriver"
)
package "std" (
  directory = "std"
  version = "5.2.1"
  description = "Meta-package for all built-in derivers"
  requires(ppx_driver) = "ppx_deriving.create
                          ppx_deriving.enum
                          ppx_deriving.eq
                          ppx_deriving.fold
                          ppx_deriving.iter
                          ppx_deriving.make
                          ppx_deriving.map
                          ppx_deriving.ord
                          ppx_deriving.show"
  archive(ppx_driver,byte) = "ppx_deriving_std.cma"
  archive(ppx_driver,native) = "ppx_deriving_std.cmxa"
  plugin(ppx_driver,byte) = "ppx_deriving_std.cma"
  plugin(ppx_driver,native) = "ppx_deriving_std.cmxs"
  # This line makes things transparent for people mixing preprocessors
  # and normal dependencies
  requires(-ppx_driver) = "ppx_deriving.runtime"
  requires(-ppx_driver,-custom_ppx) += "ppx_deriving"
  ppxopt(-ppx_driver,-custom_ppx) = "ppx_deriving,package:ppx_deriving.std"
  library_kind = "ppx_deriver"
)