package js_of_ocaml-ocamlbuild
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=7970b15482d4804f81a8d7e5e57527ac82563771be1420986985a6878fbc3d38
md5=b7a03bea097ac6bda3aaaf4b12b82581
doc/js_of_ocaml-ocamlbuild/Ocamlbuild_js_of_ocaml/index.html
Module Ocamlbuild_js_of_ocaml
Source
Ocamlbuild plugin to build with js_of_ocaml
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:
- pretty: Pretty print the generated javascript.
- debuginfo: Output debug information.
- noinline: Disable inlining
- sourcemap: Generate sourcemap
- tailcall(none): Set the tailcall optimisation (default "trampoline")
- opt(3): Set the compilation profile (default 1)
- debug: enables pretty, debuginfo, sourcemap
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
Map each targets given as argument to ocamlbuild and replace each element that exists in ~executables
by its corresponding .js target.