gem5: new package (#47218)
This commit is contained in:
parent
84ea389017
commit
2761e650fa
70
var/spack/repos/builtin/packages/gem5/package.py
Normal file
70
var/spack/repos/builtin/packages/gem5/package.py
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
# Copyright 2013-2024 Lawrence Livermore National Security, LLC and other
|
||||||
|
# Spack Project Developers. See the top-level COPYRIGHT file for details.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
|
||||||
|
from spack.package import *
|
||||||
|
|
||||||
|
|
||||||
|
class Gem5(SConsPackage):
|
||||||
|
"""The gem5 simulator is a modular platform for computer-system
|
||||||
|
architecture research, encompassing system-level architecture as
|
||||||
|
well as processor microarchitecture. gem5 is a community led
|
||||||
|
project with an open governance model. gem5 was originally
|
||||||
|
conceived for computer architecture research in academia, but it
|
||||||
|
has grown to be used in computer system design by academia,
|
||||||
|
industry for research, and in teaching."""
|
||||||
|
|
||||||
|
homepage = "https://www.gem5.org"
|
||||||
|
git = "https://github.com/gem5/gem5"
|
||||||
|
url = "https://github.com/gem5/gem5/archive/refs/tags/v24.0.0.0.tar.gz"
|
||||||
|
|
||||||
|
version("24.0.0.1", tag="v24.0.0.1", commit="b1a44b89c7bae73fae2dc547bc1f871452075b85")
|
||||||
|
version("24.0.0.0", tag="v24.0.0.0", commit="43769abaf05120fed1e4e0cfbb34619edbc10f3f")
|
||||||
|
|
||||||
|
depends_on("c", type="build")
|
||||||
|
depends_on("cxx", type="build")
|
||||||
|
depends_on("scons", type="build")
|
||||||
|
depends_on("py-mypy", type="build")
|
||||||
|
depends_on("py-pybind11", type="build")
|
||||||
|
depends_on("python")
|
||||||
|
depends_on("gettext")
|
||||||
|
depends_on("hdf5+cxx")
|
||||||
|
depends_on("protobuf")
|
||||||
|
depends_on("gperftools")
|
||||||
|
depends_on("graphviz+pangocairo", type=("build", "run"))
|
||||||
|
depends_on("py-pydot", type=("build", "run"))
|
||||||
|
depends_on("capstone")
|
||||||
|
|
||||||
|
def patch(self):
|
||||||
|
filter_file(
|
||||||
|
" Environment(tools=[",
|
||||||
|
" Environment(ENV=os.environ, tools=[",
|
||||||
|
"SConstruct",
|
||||||
|
string=True,
|
||||||
|
)
|
||||||
|
filter_file(
|
||||||
|
"""conf.env['CONF']['HAVE_PERF_ATTR_EXCLUDE_HOST'] = conf.CheckMember(""",
|
||||||
|
"""conf.env['CONF']['HAVE_PERF_ATTR_EXCLUDE_HOST'] = bool(conf.CheckMember(""",
|
||||||
|
"src/cpu/kvm/SConsopts",
|
||||||
|
string=True,
|
||||||
|
)
|
||||||
|
filter_file(
|
||||||
|
"""perf_event_attr', 'exclude_host')""",
|
||||||
|
"""perf_event_attr', 'exclude_host'))""",
|
||||||
|
"src/cpu/kvm/SConsopts",
|
||||||
|
string=True,
|
||||||
|
)
|
||||||
|
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
mkdirp(prefix.bin)
|
||||||
|
install("build/ALL/gem5.opt", prefix.bin)
|
||||||
|
|
||||||
|
def build_args(self, spec, prefix):
|
||||||
|
args = []
|
||||||
|
args.append("build/ALL/gem5.opt")
|
||||||
|
args.append(f"-j{spack.config.determine_number_of_jobs(parallel=True)}")
|
||||||
|
args.append("--ignore-style")
|
||||||
|
|
||||||
|
return args
|
Loading…
Reference in New Issue
Block a user