This is liable to change in the future.
A ocaml_binary() rule builds both native and bytecode executables from the supplied set of OCaml and C source files and dependencies.
Note: Buck is currently tested with 4.X OCaml series.
The name of the rule.
The set of dependencies of this rule. It could include references to ocaml_library and cxx_library rules.
Platform specific dependencies. These should be specified as a list of pairs where the first element is an un-anchored regex (in java.util.regex.Pattern syntax) against which the platform name is matched, and the second element is a list of dependencies (same format as
deps) that are exported if the platform matches the regex. See
depsfor more information.
The set of additional compiler flags to pass to ocaml compiler. It supports specifying ppx (see for example).
List of build target patterns that identify the build rules that can include this rule as a dependency, for example, by listing it in their
exported_depsattributes. For more information, see visibility.
For more examples, check out our integration tests.
ocaml_binary( name='greet', srcs=[ 'main.ml', 'lex.mll', 'parser.mly', 'hashtable.c', ], deps=[ ':greeting', ':bridge', ], ) ocaml_library( name='greeting', srcs=[ 'greeting.ml', ], deps=[ ':join', ], ) ocaml_library( name='join', srcs=[ 'join.ml', ], ) cxx_library( name='bridge', srcs=[ 'bridge.c', ], )