(dirs tools client assets)

(executables
    (names %%%PROJECT_NAME%%%)
    (modes (byte plugin) (native plugin))
    (libraries eliom.server ocsipersist.dbm)
    (preprocess
       (pps
           lwt_ppx
           pgocaml_ppx
           js_of_ocaml-ppx_deriving_json
           ocsigen-i18n
           ocsigen-ppx-rpc --rpc-raw
           eliom.ppx.server
           -- --prefix %%%MODULE_NAME%%%_ --suffix _i18n --default-module %%%MODULE_NAME%%%_i18n
       )
    )
  )

(rule (target %%%PROJECT_NAME%%%_i18n.eliom) (deps assets/%%%PROJECT_NAME%%%_i18n.tsv)
  (action
    (with-stdout-to %{target}
      (with-stdin-from %{deps}
        (pipe-stdout
          (run ocsigen-i18n-generator --languages en,fr --default-language fr %{deps})
          (run sed "1 s/]/[@@deriving json]]\\n[%%shared [@@@ocaml.warning\"-27\"]]/"))))))

(rule (alias %%%PROJECT_NAME%%%)
   (deps %%%PROJECT_NAME%%%.cma client/%%%PROJECT_NAME%%%.bc client/%%%PROJECT_NAME%%%.bc.js tools/check_modules.ml)
   (action (run ocaml tools/check_modules.ml %%%PROJECT_NAME%%%)))

(env (_ (flags (:standard -w -9-37-39))))
