* [Caml-list] Using a custom ocamldoc html with ocamlbuild
@ 2011-06-10 16:00 Till Varoquaux
2011-06-10 20:58 ` [Caml-list] " Till Varoquaux
0 siblings, 1 reply; 2+ messages in thread
From: Till Varoquaux @ 2011-06-10 16:00 UTC (permalink / raw)
To: Caml-list List
Hello everyone.
I am currently trying to cajole ocamlbuild into using a custom
generator. Adding the extra command line arguments to load the
generator isn't hard:
flag ["doc";"ocaml"] & S[A"-i";A "+custom";A "my_gen.cmo"]
The tricky part is removing the -html flag that is passed to ocamldoc.
As far as I can tell there's no easy to do so (Flags.remove does not
actually allow you to do that). Maybe there's a way I could remove the
"extension:html" tag and therefore avoid triggering the rule that adds
-html?
All best,
Till
^ permalink raw reply [flat|nested] 2+ messages in thread
* [Caml-list] Re: Using a custom ocamldoc html with ocamlbuild
2011-06-10 16:00 [Caml-list] Using a custom ocamldoc html with ocamlbuild Till Varoquaux
@ 2011-06-10 20:58 ` Till Varoquaux
0 siblings, 0 replies; 2+ messages in thread
From: Till Varoquaux @ 2011-06-10 20:58 UTC (permalink / raw)
To: Caml-list List
On Fri, Jun 10, 2011 at 12:00 PM, Till Varoquaux <till@pps.jussieu.fr> wrote:
> Hello everyone.
>
> I am currently trying to cajole ocamlbuild into using a custom
> generator. Adding the extra command line arguments to load the
> generator isn't hard:
>
> flag ["doc";"ocaml"] & S[A"-i";A "+custom";A "my_gen.cmo"]
>
> The tricky part is removing the -html flag that is passed to ocamldoc.
> As far as I can tell there's no easy to do so (Flags.remove does not
> actually allow you to do that). Maybe there's a way I could remove the
> "extension:html" tag and therefore avoid triggering the rule that adds
> -html?
>
> All best,
> Till
>
As suggested by Christophe Troestler the solution seemed indeed to
write my own rule. The hack is to dynamically remove the
"extension:html" tag from the list...
open Ocamlbuild_pack
let ocdoc_plus =
let base = My_unix.run_and_read "ocamlfind query ocamldoc_htmlplus" in
(* TODO: check that we are indeed stripping the trailling nl. *)
String.sub base 0 (String.length base -1)
(* calls out to Ocaml_tools.ocamldoc_l_dir but filters out the
"extension:html"
flag which causes -html to be added to the ocamldoc command line.*)
let my_ocamldoc tags deps docout docdir =
let tags = tags -- "extension:html" in
Ocaml_tools.ocamldoc_l_dir tags deps docout docdir
(* copy of the normal ocamldoc rule that uses our custom generator. *)
let () = Rule.rule
"ocamldoc: document ocaml project odocl & *odoc -> docdir (html+)"
~insert:`top
~prod:"%.docdir/index.html"
~stamp:"%.docdir/html.stamp"
~dep:"%.odocl"
(Ocaml_tools.document_ocaml_project
~ocamldoc:my_ocamldoc
"%.odocl" "%.docdir/index.html" "%.docdir");
dep ["doc";"ocaml";"intro"] ["lib/intro.txt"];
flag ["doc";"ocaml"] & S[A"-i";A
ocdoc_plus;A"-g";A"ocamldoc_htmlplus.cma"];
flag ["doc";"ocaml";"intro"] & S[A"-intro";A"lib/intro.txt"]
All in all this isn't actually as bad as I thought it might be. If
anyone can think of any cleaner way to proceed I am all ears...
Thanks,
Till
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-06-10 20:58 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-10 16:00 [Caml-list] Using a custom ocamldoc html with ocamlbuild Till Varoquaux
2011-06-10 20:58 ` [Caml-list] " Till Varoquaux
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox