-
Notifications
You must be signed in to change notification settings - Fork 168
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
docs: Add documentation on Spack builds
This commit adds a new section to the "getting started" section of the documentation detailing how Spack can be used to install the dependencies of ACTS.
- Loading branch information
1 parent
2cfa5f7
commit 9504140
Showing
1 changed file
with
54 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -188,6 +188,60 @@ However, if you have the necessary prerequisites installed it is possible to use | |
it locally. ACTS developers regularly use different Linux distributions | ||
and macOS to build and develop ACTS. | ||
|
||
### Using Spack | ||
|
||
The Spack package manager can be used to more easily install ACTS' | ||
dependencies. Like building ACTS on your local machine in general, builds using | ||
Spack are not officially supported. In order to start using Spack, follow the | ||
instructions on the [official Spack | ||
documentation](https://spack.readthedocs.io/en/latest/getting_started.html). | ||
|
||
Once Spack has been installed, we are ready to create a development | ||
environment; for example: | ||
|
||
```console | ||
$ spack env create acts | ||
``` | ||
|
||
This new environment can then be activated and deactivated as follows: | ||
|
||
```console | ||
$ spack env activate acts | ||
$ despacktivate | ||
``` | ||
|
||
:::{tip} | ||
The creation of a Spack environment is persistent, i.e. you should only need to | ||
create your environment once. The activation of the environment, on the other | ||
hand, affects only your current shell. As a result, you will need to activate | ||
the environment every time you open a new shell. | ||
::: | ||
|
||
With the Spack environment activated, you are ready to install ACTS' | ||
dependencies. You can either do this manually, or you can rely on Spack's | ||
definition of how to do this. To use the Spack definition, execute the | ||
following command (tuned for ACTS version 36.1.0): | ||
|
||
```console | ||
$ spack install --add --only dependencies "[email protected]+tgeo+geomodel+podio+edm4hep+examples+odd+fatras+json+dd4hep+geant4+fatras_geant4+hepmc3+pythia8+python+svg+traccc" | ||
``` | ||
|
||
The string starting with `acts` in the command above is the so-called _spec_, | ||
and it consists of three parts. The first part is the name of the package, | ||
which is `acts`. The second part is the version of the package, in this case | ||
`36.1.0`; Spack will pull in a set of dependencies suitable for that given | ||
version, so it is recommended to tune the version number to match the version | ||
of ACTS you want to build. The final part is a series of variants, marked with | ||
the `+` symbol. The command above allows you to build virtually all components | ||
of ACTS, but it also pulls in a large number of dependencies. You can | ||
optionally remove variants you do not need in order to speed up the Spack | ||
build. | ||
|
||
Once Spack has concretized and installed the ACTS dependencies, you can build | ||
ACTS as normal using CMake. | ||
|
||
Spack support is experimental and not officially supported. Because ACTS' dependencies are constantly changing, it is possible that Spack's database may at times be out of date. If you encouter any problems using Spack to build ACTS, unofficial support is available in the #Spack channel on the ACTS Mattermost. | ||
|
||
(build_docs)= | ||
## Building the documentation | ||
|
||
|