Skip to content

Commit

Permalink
Add a bundle package and environment to build a basic "externals" sta…
Browse files Browse the repository at this point in the history
…ck (#676)

* Add a base package that bundles a bunch of common deps

* Add all boost variants that are required

* Make sure we have a suitable fmt version
  • Loading branch information
tmadlener authored Jan 10, 2025
1 parent 65fa0f2 commit 4b46ee1
Show file tree
Hide file tree
Showing 2 changed files with 89 additions and 0 deletions.
21 changes: 21 additions & 0 deletions environments/key4hep-dev-external/spack.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
spack:
packages:
all:
variants:
- build_type=RelWithDebInfo
- 'cxxstd=20'
target: []
compiler: []

boost:
require: +atomic+chrono+context+date_time+exception+fiber+filesystem+graph+iostreams+locale+log+math+multithreaded+program_options+python+random+regex+serialization+shared+signals+system+test+thread+timer+wave
# Keep the possibility to build Gaudi 38
fmt:
require: "@:10"

view: false
include:
- ../key4hep-common/packages.yaml

specs:
- key4hep-external-stack
68 changes: 68 additions & 0 deletions packages/key4hep-external-stack/package.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
#!/usr/bin/env python3

from datetime import datetime

from spack.pkg.k4.key4hep_stack import Key4hepPackage, install_setup_script

from common import *


class Key4hepExternalStack(BundlePackage, Key4hepPackage):
"""Bundle package that contains a basic external software stack upon which
Key4hep can be built
The packages in this base stack are mainly
"""

homepage = "https://cern.ch/key4hep"

version(datetime.today().strftime("%Y-%m-%d"))

# this bundle package installs a custom setup script, so
# need to add the install phase (which normally does not
# exist for a bundle package)
phases = ["install"]

# Some generally useful development tools
depends_on("cmake")
depends_on("ninja")
depends_on("python")
depends_on("gdb")
depends_on("catch2@3:")
depends_on("boost")
depends_on("py-pytest")

# general hep packages
depends_on("root")
depends_on("geant4")
depends_on("pythia8")
depends_on("hepmc3")
depends_on("evtgen +photos+tauola+pythia8+hepmc3")
depends_on("heppdt")
depends_on("fastjet")

# podio dependencies
depends_on("py-pyyaml")
depends_on("py-tabulate")
depends_on("py-jinja2")
depends_on("py-graphviz")

# other general deps
depends_on("py-numpy")
depends_on("py-scipy")

# gaudi dependencies
depends_on("py-nose")
depends_on("cppgsl")
depends_on("fmt")
depends_on("cppunit")
depends_on("gperftools")
depends_on("py-networkx")
depends_on("py-six")
depends_on("range-v3")
depends_on("py-pytest-cov")
depends_on("jemalloc")
depends_on("aida")

def install(self, spec, prefix):
return install_setup_script(self, spec, prefix, "K4_EXTERNAL_STACK")

0 comments on commit 4b46ee1

Please sign in to comment.