Skip to content

Commit

Permalink
docs: Add documentation on Spack builds
Browse files Browse the repository at this point in the history
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
stephenswat committed Aug 26, 2024
1 parent 2cfa5f7 commit 9504140
Showing 1 changed file with 54 additions and 0 deletions.
54 changes: 54 additions & 0 deletions docs/getting_started.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down

0 comments on commit 9504140

Please sign in to comment.