Document test dependency type (#18365)
This commit is contained in:
parent
601f97d8a5
commit
1992fdf712
@ -1967,22 +1967,29 @@ exactly what kind of a dependency you need. For example:
|
|||||||
depends_on('cmake', type='build')
|
depends_on('cmake', type='build')
|
||||||
depends_on('py-numpy', type=('build', 'run'))
|
depends_on('py-numpy', type=('build', 'run'))
|
||||||
depends_on('libelf', type=('build', 'link'))
|
depends_on('libelf', type=('build', 'link'))
|
||||||
|
depends_on('py-pytest', type='test')
|
||||||
|
|
||||||
The following dependency types are available:
|
The following dependency types are available:
|
||||||
|
|
||||||
* **"build"**: made available during the project's build. The package will
|
* **"build"**: the dependency will be added to the ``PATH`` and
|
||||||
be added to ``PATH``, the compiler include paths, and ``PYTHONPATH``.
|
``PYTHONPATH`` at build-time.
|
||||||
Other projects which depend on this one will not have these modified
|
* **"link"**: the dependency will be added to Spack's compiler
|
||||||
(building project X doesn't need project Y's build dependencies).
|
wrappers, automatically injecting the appropriate linker flags,
|
||||||
* **"link"**: the project is linked to by the project. The package will be
|
including ``-I``, ``-L``, and RPATH/RUNPATH handling.
|
||||||
added to the current package's ``rpath``.
|
* **"run"**: the dependency will be added to the ``PATH`` and
|
||||||
* **"run"**: the project is used by the project at runtime. The package will
|
``PYTHONPATH`` at run-time. This is true for both ``spack load``
|
||||||
be added to ``PATH`` and ``PYTHONPATH``.
|
and the module files Spack writes.
|
||||||
|
* **"test"**: the dependency will be added to the ``PATH`` and
|
||||||
|
``PYTHONPATH`` at build-time. The only difference between
|
||||||
|
"build" and "test" is that test dependencies are only built
|
||||||
|
if the user requests unit tests with ``spack install --test``.
|
||||||
|
|
||||||
One of the advantages of the ``build`` dependency type is that although the
|
One of the advantages of the ``build`` dependency type is that although the
|
||||||
dependency needs to be installed in order for the package to be built, it
|
dependency needs to be installed in order for the package to be built, it
|
||||||
can be uninstalled without concern afterwards. ``link`` and ``run`` disallow
|
can be uninstalled without concern afterwards. ``link`` and ``run`` disallow
|
||||||
this because uninstalling the dependency would break the package.
|
this because uninstalling the dependency would break the package. Another
|
||||||
|
consequence of this is that ``build``-only dependencies do not affect the
|
||||||
|
hash of the package. The same is true for ``test`` dependencies.
|
||||||
|
|
||||||
If the dependency type is not specified, Spack uses a default of
|
If the dependency type is not specified, Spack uses a default of
|
||||||
``('build', 'link')``. This is the common case for compiler languages.
|
``('build', 'link')``. This is the common case for compiler languages.
|
||||||
@ -2003,7 +2010,8 @@ package. In that case, you could say something like:
|
|||||||
|
|
||||||
.. code-block:: python
|
.. code-block:: python
|
||||||
|
|
||||||
variant('mpi', default=False)
|
variant('mpi', default=False, description='Enable MPI support')
|
||||||
|
|
||||||
depends_on('mpi', when='+mpi')
|
depends_on('mpi', when='+mpi')
|
||||||
|
|
||||||
``when`` can include constraints on the variant, version, compiler, etc. and
|
``when`` can include constraints on the variant, version, compiler, etc. and
|
||||||
|
Loading…
Reference in New Issue
Block a user