OCaml Flags

In library, executable, executables, and env stanzas, you can specify OCaml compilation flags using the following fields:

  • (flags <flags>) to specify flags passed to both ocamlc and ocamlopt

  • (ocamlc_flags <flags>) to specify flags passed to ocamlc only

  • (ocamlopt_flags <flags>) to specify flags passed to ocamlopt only

For all these fields, <flags> is specified in the Ordered Set Language. These fields all support (:include ...) forms.

The value of :standard depends on the selected build profile. See Default OCaml Flags for the default OCaml flags Dune adds, including the default -g in ocamlc_flags and ocamlopt_flags.

The default value for (flags ...) is taken from the environment, as a result it’s recommended to write (flags ...) fields as follows:

(flags (:standard <my options>))