(library
 (name binaryen)
 (libraries libbinaryen_c)
 (modules types)
 (foreign_stubs
  (language c)
  (names binaryen_stubs_types)
  (flags :standard -O2 -Wall -Wextra))
 (js_of_ocaml
  (javascript_files types.js)))

(test
 (name test)
 (enabled_if
  (= %{bin-available:node} true))
 (modules test)
 (libraries binaryen)
 (modes exe js)
 (flags
  :standard
  (:include ./config/flags.sexp))
 (js_of_ocaml))

(rule
 (target test_no_js.ml)
 (action
  (copy %{dep:test.ml} %{target})))

(test
 (name test_no_js)
 (enabled_if
  (= %{bin-available:node} false))
 (modules test_no_js)
 (libraries binaryen)
 (modes exe)
 (flags
  :standard
  (:include ./config/flags.sexp)))
