synopsis: "PPX Rewriters for Ocaml, written using Camlp5"
description:
"""
This is a collection of PPX rewriters, re-implementing those based on ppxlib
and other libraries, but instead based on Camlp5.  Included is also a collection
of support libraries for writing new PPX rewriters.  Included are:

pa_assert: ppx_assert
pa_ppx.deriving, pa_ppx.deriving_plugins (enum, eq, fold, iter, make, map, ord, sexp, show, yojson):
  ppx_deriving, plugins, ppx_sexp_conv, ppx_deriving_yojson
pa_ppx.expect_test: ppx_expect_test
pa_ppx.here: ppx_here
pa_ppx.import: ppx_import
pa_ppx.inline_test: ppx_inline_test

pa_ppx.undo_deriving: pa_ppx.deriving expands [@@deriving ...] into code; this rewriter undoes that.
pa_ppx.unmatched_vala: expands to match-cases (support library for camlp5-based PPX rewriters)
pa_ppx.hashrecons: support for writing AST rewriters that automatically fills in hash-consing boilerplate
pa_dock: implements doc-comment extraction for camlp5 preprocessors

Many of the reimplementations in fact offer significant enhanced
function, described in the pa_ppx documentation.  In addition, there
is an extensive test-suite, much of it slightly modified versions of
the tests for the respective PPX rewriters.

"""
opam-version: "2.0"
maintainer: "Chet Murthy <chetsky@gmail.com>"
authors: ["Chet Murthy"]
homepage: "https://github.com/camlp5/pa_ppx"
license: "BSD-3-Clause"
bug-reports: "https://github.com/camlp5/pa_ppx/issues"
dev-repo: "git+https://github.com/camlp5/pa_ppx.git"
doc: "https://github.com/camlp5/pa_ppx/doc"

depends: [
  "ocaml"       { >= "4.10.0" & < "4.12.0" }
  "camlp5"      { >= "8.00~alpha03" & < "8.00" }
  "not-ocamlfind" { >= "0.01" }
  "pcre" { >= "7.4.3" }
  "yojson" { >= "1.7.0" }
  "ounit2" { >= "2.2.3" }
  "bos" { >= "0.2.0" }
  "base"
  "sexplib"
  "ppx_deriving_protobuf" { >= "2.7" }
  "uint" { >= "2.0.1" }
  "ppx_import" { with-test & >= "1.7.1" }
  "ppx_deriving_yojson" { with-test & >= "3.5.2" }
  "ppx_here" { with-test & >= "v0.13.0" }
  "ppx_sexp_conv" { with-test & >= "v0.13.0" }
  "expect_test_helpers" { with-test & >= "v0.13.0" }
]
depexts: [
  [
    "libstring-shellquote-perl"
    "libipc-system-simple-perl"
  ] {os-family = "debian"}
  [
    "perl-string-shellquote"
    "perl-ipc-system-simple"
  ] {os-distribution = "alpine"}
  [
    "perl-String-ShellQuote"
    "perl-IPC-System-Simple"
  ] {os-distribution = "centos"}
  [
    "perl-String-ShellQuote"
    "perl-IPC-System-Simple"
  ] {os-family = "suse"}
  [
    "perl-String-ShellQuote"
    "perl-IPC-System-Simple"
  ] {os-family = "fedora"}
]
available: [ os != "macos" ]
build: [
  [make "get-generated"]
  [make "sys"]
  [make "test"] {with-test}
]
install: [make "install"]
url {
  src: "https://github.com/camlp5/pa_ppx/archive/0.03.tar.gz"
  checksum: [
    "sha512=b5d847ecf7a4b19002467eb312425f764199e99637c704d4542bb8c320b96c04b267ef0d78efae29843108968d7f9b64ed02fc2cb9681eb85cad96b9d326957c"
  ]
}
