diff options
author | Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com> | 2023-09-07 19:45:51 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-09-07 19:45:51 -0700 |
commit | 007f02e06acf22433f3110882ad5d1ec6660ab55 (patch) | |
tree | 9603b9a40451186f3d7ef7e1e794e794e39f984d /lib/spack/docs/build_systems | |
parent | 8ec16571361415767252836e4ce3026ce244315e (diff) | |
download | spack-007f02e06acf22433f3110882ad5d1ec6660ab55.tar.gz spack-007f02e06acf22433f3110882ad5d1ec6660ab55.tar.bz2 spack-007f02e06acf22433f3110882ad5d1ec6660ab55.tar.xz spack-007f02e06acf22433f3110882ad5d1ec6660ab55.zip |
Docs/Packaging guide: Add BundlePackage (#39691)
* Docs/Packaging guide: Add BundlePackage
* Adjusted version ordering note to reflect convention.
Diffstat (limited to 'lib/spack/docs/build_systems')
-rw-r--r-- | lib/spack/docs/build_systems/bundlepackage.rst | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/lib/spack/docs/build_systems/bundlepackage.rst b/lib/spack/docs/build_systems/bundlepackage.rst index ca2be81240..323a13d472 100644 --- a/lib/spack/docs/build_systems/bundlepackage.rst +++ b/lib/spack/docs/build_systems/bundlepackage.rst @@ -9,9 +9,32 @@ Bundle ------ -``BundlePackage`` represents a set of packages that are expected to work well -together, such as a collection of commonly used software libraries. The -associated software is specified as bundle dependencies. +``BundlePackage`` represents a set of packages that are expected to work +well together, such as a collection of commonly used software libraries. +The associated software is specified as dependencies. + +If it makes sense, variants, conflicts, and requirements can be added to +the package. :ref:`Variants <variants>` ensure that common build options +are consistent across the packages supporting them. :ref:`Conflicts +and requirements <packaging_conflicts>` prevent attempts to build with known +bugs or limitations. + +For example, if ``MyBundlePackage`` is known to only build on ``linux``, +it could use the ``require`` directive as follows: + +.. code-block:: python + + require("platform=linux", msg="MyBundlePackage only builds on linux") + +Spack has a number of built-in bundle packages, such as: + +* `AmdAocl <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/amd-aocl/package.py>`_ +* `EcpProxyApps <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/ecp-proxy-apps/package.py>`_ +* `Libc <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/libc/package.py>`_ +* `Xsdk <https://github.com/spack/spack/blob/develop/var/spack/repos/builtin/packages/xsdk/package.py>`_ + +where ``Xsdk`` also inherits from ``CudaPackage`` and ``RocmPackage`` and +``Libc`` is a virtual bundle package for the C standard library. ^^^^^^^^ |