54 lines
1.5 KiB
ReStructuredText
54 lines
1.5 KiB
ReStructuredText
dune-workspace
|
|
==============
|
|
|
|
A ``dune-workspace`` file (if present) marks the root of the current Dune
|
|
workspace (see :doc:`/explanation/scopes`). It can be used to define compilation contexts
|
|
(see :doc:`/reference/dune-workspace/context`) and specify settings common to
|
|
all Dune projects contained within the workspace.
|
|
|
|
By default, a workspace has only one build context named ``default`` which
|
|
corresponds to the environment in which ``dune`` is run. You can define more
|
|
contexts by writing a ``dune-workspace`` file.
|
|
|
|
You can point Dune to an explicit ``dune-workspace`` file with the
|
|
``--workspace`` option. For instance, it's good practice to write a
|
|
``dune-workspace.dev`` in your project with all the OCaml versions your projects
|
|
support, so developers can test that the code builds with all OCaml versions by
|
|
simply running:
|
|
|
|
.. code:: console
|
|
|
|
$ dune build --workspace dune-workspace.dev @all @runtest
|
|
|
|
The ``dune-workspace`` file uses the S-expression syntax. This is what a typical
|
|
``dune-workspace`` file looks like:
|
|
|
|
.. code:: dune
|
|
|
|
(lang dune 3.14)
|
|
(context (opam (switch 4.08.1)))
|
|
(context (opam (switch 4.11.1)))
|
|
(context (opam (switch 4.14.2)))
|
|
|
|
The rest of this section describe the stanzas available.
|
|
|
|
Note that an empty ``dune-workspace`` file is interpreted the same as one
|
|
containing exactly:
|
|
|
|
.. code:: dune
|
|
|
|
(lang dune 3.2)
|
|
(context default)
|
|
|
|
This allows you to use an empty ``dune-workspace`` file to mark the root of your
|
|
project.
|
|
|
|
.. toctree::
|
|
|
|
config
|
|
context
|
|
env
|
|
lock_dir
|
|
pin
|
|
profile
|
|
repository
|