(rule (copy copy-sources/pped.pp.re pped.re))
(rule (copy copy-sources/pped.rei.pp pped.rei))

(library
 ((name rlib)
  (public_name rlib)
  (modules (bar cppome foo hello pped))
  (lint
   (per_module
    ((pps (reasonppx (-lint true))) (hello cppome))
    ((action (run ./pp/reasononlypp.exe -lint ${<})) (foo bar pped))))
  (preprocess
   (per_module
    ((pps (reasonppx)) (foo))
    ((pps (reasonppx (-lint false))) (hello))
    ((action (run ./pp/reasononlypp.exe ${<})) (cppome))))))

(executable
 ((name rbin)
  (modules rbin)
  (lint (action (run ./pp/reasononlypp.exe -lint ${<})))
  (preprocess (action (run ./pp/reasononlypp.exe ${<})))
  (libraries (rlib))))

;; we want to make sure that .rei files are present
(alias
 ((name install-file)
  (deps (rlib.install))
  (action (echo "${read:rlib.install}"))))

(alias
 ((name runtest)
  (deps (rbin.exe))
  (action (run ${<}))))
