(library
  (name ppx_server)
  (public_name eliom.ppx.server)
  (synopsis "Ppx syntax extension: server side")
  (wrapped false)
  (kind ppx_rewriter)
  (modules ppx_eliom_server)
  (preprocess (pps ppxlib.metaquot))
  (libraries ppx_utils))

(library
  (name ppx_client)
  (public_name eliom.ppx.client)
  (synopsis "Ppx syntax extension: client side")
  (wrapped false)
  (kind ppx_rewriter)
  (modules ppx_eliom_client)
  (preprocess (pps ppxlib.metaquot))
  (libraries ppx_utils))

(library
  (name ppx_type)
  (wrapped false)
  (public_name eliom.ppx.type)
  (synopsis "Ppx syntax extension: type inference")
  (kind ppx_rewriter)
  (modules ppx_eliom_type)
  (preprocess (pps ppxlib.metaquot))
  (libraries ppx_utils))

(library
  (name ppx_utils)
  (public_name eliom.ppx.utils)
  (wrapped false)
  (modules ppx_eliom_utils)
  (preprocess (pps ppxlib.metaquot ppx_optcomp))
  (libraries ppxlib))

(executable
  (name ppx_eliom_server_ex)
  (public_name ppx_eliom_server)
  (libraries ppx_server)
  (preprocess (pps ppxlib.metaquot))
  (modules ppx_eliom_server_ex))

(executable
  (name ppx_eliom_client_ex)
  (public_name ppx_eliom_client)
  (libraries ppx_client)
  (preprocess (pps ppxlib.metaquot))
  (modules ppx_eliom_client_ex))

(executable
  (name ppx_eliom_types_ex)
  (public_name ppx_eliom_types)
  (libraries ppx_type)
  (preprocess (pps ppxlib.metaquot))
  (modules ppx_eliom_types_ex))
