diff --git a/_oasis b/_oasis index 104e273b..5353aa5a 100644 --- a/_oasis +++ b/_oasis @@ -8,7 +8,7 @@ LicenseFile: LICENSE Plugins: META (0.3), DevFiles (0.3) OCamlVersion: >= 4.00.1 BuildTools: ocamlbuild -AlphaFeatures: compiled_setup_ml +AlphaFeatures: compiled_setup_ml, ocamlbuild_more_args Synopsis: A modular standard library focused on data structures. Description: @@ -144,39 +144,13 @@ Document containers BuildTools+: ocamldoc Install: true XOCamlbuildPath: . - XOCamlbuildLibraries: containers,containers.string + XOCamlbuildExtraArgs: + "-docflags '-colorize-code -short-functors -charset utf-8'" + XOCamlbuildLibraries: + containers, containers.misc, containers.iter, containers.data, + containers.string, containers.advanced, containers.io, containers.sexp, + containers.lwt -Document containers_misc - Title: Containers_misc docs - Type: ocamlbuild (0.3) - BuildTools+: ocamldoc - Install: true - XOCamlbuildPath: . - XOCamlbuildLibraries: containers.misc - -Document containers_string - Title: Containers_string docs - Type: ocamlbuild (0.3) - BuildTools+: ocamldoc - Install: true - XOCamlbuildPath: . - XOCamlbuildLibraries: containers.string - -Document containers_advanced - Title: Containers_advanced docs - Type: ocamlbuild (0.3) - BuildTools+: ocamldoc - Install: true - XOCamlbuildPath: . - XOCamlbuildLibraries: containers.advanced - -Document containers_lwt - Title: Containers_lwt docs - Type: ocamlbuild (0.3) - BuildTools+: ocamldoc - Install: true - XOCamlbuildPath: . - XOCamlbuildLibraries: containers.lwt Executable run_benchs Path: benchs/ diff --git a/doc/intro.txt b/doc/intro.txt new file mode 100644 index 00000000..e69de29b diff --git a/myocamlbuild.ml b/myocamlbuild.ml index 06976423..d9e54987 100644 --- a/myocamlbuild.ml +++ b/myocamlbuild.ml @@ -1,6 +1,8 @@ (* OASIS_START *) (* OASIS_STOP *) +let doc_intro = "doc/intro.txt" + open Ocamlbuild_plugin;; dispatch @@ -9,17 +11,17 @@ dispatch | After_rules -> (* replace with Ocamlbuild_cppo.dispatch when 4.00 is not supported anymore *) - let dep = "%(name).cppo.ml" in + let dep_cppo = "%(name).cppo.ml" in let prod1 = "%(name: <*> and not <*.cppo>).ml" in let prod2 = "%(name: <**/*> and not <**/*.cppo>).ml" in let f prod env _build = - let dep = env dep in + let dep = env dep_cppo in let prod = env prod in let tags = tags_of_pathname prod ++ "cppo" in Cmd (S[A "cppo"; T tags; S [A "-o"; P prod]; P dep ]) in - rule "cppo1" ~dep ~prod:prod1 (f prod1) ; - rule "cppo2" ~dep ~prod:prod2 (f prod2) ; + rule "cppo1" ~dep:dep_cppo ~prod:prod1 (f prod1) ; + rule "cppo2" ~dep:dep_cppo ~prod:prod2 (f prod2) ; pflag ["cppo"] "cppo_D" (fun s -> S [A "-D"; A s]) ; pflag ["cppo"] "cppo_U" (fun s -> S [A "-U"; A s]) ; pflag ["cppo"] "cppo_I" (fun s -> @@ -40,7 +42,15 @@ dispatch let ocaml_major = "OCAML_MAJOR " ^ string_of_int major in let ocaml_minor = "OCAML_MINOR " ^ string_of_int minor in - flag ["cppo"] & S[A"-D"; A ocaml_major; A"-D"; A ocaml_minor] + flag ["cppo"] & S[A"-D"; A ocaml_major; A"-D"; A ocaml_minor] ; + + (* Documentation index *) + dep ["ocaml"; "doc"; "extension:html"] & [doc_intro] ; + flag ["ocaml"; "doc"; "extension:html"] & + (S[A"-t"; A"Containers doc"; + A"-intro"; P doc_intro; + ]); + | _ -> () end; dispatch_default