4 module C
= Myocamlbuild_config
9 let bracket res destroy k
= let x = (try k res
with e
-> destroy res
; raise e
) in destroy res
; x in
10 let get_line r d
= bracket r d input_line
in
12 bracket (open_out
"version.ml") close_out
(fun out
->
15 get_line (Unix.open_process_in
"git describe --always") (Unix.close_process_in
)
17 _
-> (try get_line (open_in
"version.id") close_in
with _
-> "<unknown>")
19 Printf.fprintf out
"let id=\"%s\"\n" (String.escaped
revision)
24 dispatch
begin function
27 let extlib_dir = C.lib
"extlib" in
29 ocaml_lib ~extern
:true ~dir
:extlib_dir "extLib";
30 ocaml_lib ~extern
:true ~dir
:(C.lib
"deriving") "deriving";
31 ocaml_lib ~extern
:true ~dir
:(C.lib
"oUnit") "oUnit";
33 flag
["ocaml"; "doc"; "use_extLib"] (S
[A
"-I"; A
extlib_dir]);