2017-05-14 00:10:00 +00:00
|
|
|
***********
|
|
|
|
Terminology
|
|
|
|
***********
|
|
|
|
|
|
|
|
- **package**: a package is a set of libraries, executables, ... that
|
|
|
|
are built and installed as one by opam
|
|
|
|
|
|
|
|
- **project**: a project is a source tree, maybe containing one or more
|
|
|
|
packages
|
|
|
|
|
|
|
|
- **root**: the root is the directory from where Jbuilder can build
|
|
|
|
things. Jbuilder knows how to build targets that are descendents of
|
|
|
|
the root. Anything outside of the tree starting from the root is
|
|
|
|
considered part of the **installed world**. How the root is
|
2017-05-18 20:15:49 +00:00
|
|
|
determined is explained in :ref:`finding-root`.
|
2017-05-14 00:10:00 +00:00
|
|
|
|
|
|
|
- **workspace**: the workspace is the subtree starting from the root.
|
|
|
|
It can contain any number of projects that will be built
|
|
|
|
simultaneously by jbuilder
|
|
|
|
|
|
|
|
- **installed world**: anything outside of the workspace, that Jbuilder
|
|
|
|
takes for granted and doesn't know how to build
|
|
|
|
|
|
|
|
- **build context**: a build context is a subdirectory of the
|
|
|
|
``<root>/_build`` directory. It contains all the build artifacts of
|
|
|
|
the workspace built against a specific configuration. Without
|
|
|
|
specific configuration from the user, there is always a ``default``
|
|
|
|
build context, which corresponds to the environment in which Jbuilder
|
|
|
|
is executed. Build contexts can be specified by writing a
|
2017-05-18 20:15:49 +00:00
|
|
|
:ref:`jbuild-workspace` file
|
2017-05-14 00:10:00 +00:00
|
|
|
|
|
|
|
- **build context root**: the root of a build context named ``foo`` is
|
|
|
|
``<root>/_build/<foo>``
|
|
|
|
|
|
|
|
- **alias**: an alias is a build target that doesn't produce any file
|
|
|
|
and has configurable dependencies. Alias are per-directory and some
|
|
|
|
are recursive; asking an alias to be built in a given directory will
|
|
|
|
trigger the construction of the alias in all children directories
|
|
|
|
recursively. The most interesting ones are:
|
|
|
|
|
|
|
|
- ``runtest`` which runs user defined tests
|
|
|
|
- ``install`` which depends on everything that should be installed
|