Module Ocamlbuild_js_of_ocaml

module Ocamlbuild_js_of_ocaml: sig .. end
Ocamlbuild plugin to build with js_of_ocaml


Js_of_ocaml comes with a support for OCamlbuild.

Initialize

Initialize the js_of_ocaml ocamlbuild plugin with the following code in myocamlbuild.ml:

     let _ = Ocamlbuild_plugin.dispatch Ocamlbuild_js_of_ocaml.dispatcher
   
Side note: Ocamlbuild_plugin.dispatch should be used only once. The last call will override previous ones.

With Oasis

If you use oasis, myocamlbuild.ml should look like:

     let _ =
       Ocamlbuild_plugin.dispatch
         (fun hook ->
            dispatch_default hook;
            Ocamlbuild_js_of_ocaml.dispatcher
              ~oasis_executables:["src/yourprogram.byte"]
              hook;
         )
   

Build

Build a JavaScript program myprog.js by calling the command:

     ocamlbuild -use-ocamlfind -plugin-tag "package(js_of_ocaml.ocamlbuild)" myprog.js
   
It will first build the bytecode myprog.byte and finally produce myprog.js (in _build).

Options

One can pass option to the Js_of_ocaml compiler using tags. See <<a_manual chapter="options" |Options>>.

Available tags:

Exemples

In the _tags file:

     <myprog.js>:pretty, opt(3)
   

Dispatchers


val dispatcher : ?oasis_executables:Ocamlbuild_plugin.Pathname.t list ->
Ocamlbuild_plugin.hook -> unit
The main dispatcher

?oasis_executables is the paths of the executables (having the .byte extension) you want to compile as a javascript executable. The former executables are still compiled.

Side note: Ocamlbuild_plugin.dispatch should be used only once as it record only one function for an ocamlbuild module.


Low level functions


val oasis_support : executables:Ocamlbuild_plugin.Pathname.t list -> unit
Map each targets given as argument to ocamlbuild and replace each element that exists in ~executables by its corresponding .js target.