Boolean Language¶
The Boolean language allows the user to define simple Boolean expressions that Dune can evaluate. Here’s a semiformal specification of the language:
op ::= '=' | '<' | '>' | '<>' | '>=' | '<=' expr ::= (and <expr>+) (or <expr>+) (<op> <template> <template>) (not <expr>) <template>
After an expression is evaluated, it must be exactly the string true
or
false
to be considered as a Boolean. Any other value will be treated as an
error.
Below is a simple example of a condition expressing that the build has a Flambda compiler, with the help of variable expansion, and is targeting OSX:
(and %{ocaml-config:flambda} (= %{ocaml-config:system} macosx))