(rule
 (targets generated_struct_stubs.c)
 (action
  (run %{exe:struct-stub-generator/driver.exe} --c-struct-file %{targets})))

(rule
 (targets struct-stub-generator.exe)
 (deps
  generated_struct_stubs.c
  ../clib/test_functions.h
  ../config/test-cflags)
 (action
  (run
   %{cc}
   %{read-lines:../config/test-cflags}
   -I
   ../clib
   -I
   %{ocaml-config:standard_library}
   -o
   %{targets}
   generated_struct_stubs.c)))

(rule
 (targets generated_stubs.c)
 (action
  (run %{exe:stub-generator/driver.exe} --c-file %{targets})))

(rule
 (targets generated_bindings.ml)
 (action
  (run %{exe:stub-generator/driver.exe} --ml-file %{targets})))

(library
 (name test_enums_generated)
 (modules generated_bindings)
 (foreign_stubs
  (language c)
  (names generated_stubs))
 (libraries test_functions)
 (wrapped false))

(test
 (name test_enums)
 (modules test_enums)
 (package ctypes-foreign)
 (libraries ounit2 ctypes test_enums_generated test_enums_stubs))
