libdrm: add v2.4.121, v2.4.122 (switch to multiple build systems) (#45663)

* libdrm: add  v2.4.121, v2.4.122 (switch to multiple build systems)

* [@spackbot] updating style on behalf of wdconinc

---------

Co-authored-by: wdconinc <wdconinc@users.noreply.github.com>
This commit is contained in:
Wouter Deconinck 2024-08-11 16:26:37 -05:00 committed by GitHub
parent 078984dcf4
commit 847d7bc87d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -6,18 +6,21 @@
from spack.package import * from spack.package import *
class Libdrm(Package): class Libdrm(AutotoolsPackage, MesonPackage):
"""A userspace library for accessing the DRM, direct rendering manager, """A userspace library for accessing the DRM, direct rendering manager,
on Linux, BSD and other systems supporting the ioctl interface.""" on Linux, BSD and other systems supporting the ioctl interface."""
homepage = "https://dri.freedesktop.org/libdrm/" homepage = "https://dri.freedesktop.org/libdrm/"
url = "https://dri.freedesktop.org/libdrm/libdrm-2.4.101.tar.xz" url = "https://dri.freedesktop.org/libdrm/libdrm-2.4.101.tar.xz"
list_url = "https://dri.freedesktop.org/libdrm/" list_url = "https://dri.freedesktop.org/libdrm/"
git = "https://gitlab.freedesktop.org/mesa/drm"
maintainers("wdconinc") maintainers("wdconinc")
license("MIT") license("MIT")
version("2.4.122", sha256="d9f5079b777dffca9300ccc56b10a93588cdfbc9dde2fae111940dfb6292f251")
version("2.4.121", sha256="909084a505d7638887f590b70791b3bbd9069c710c948f5d1f1ce6d080cdfcab")
version("2.4.120", sha256="3bf55363f76c7250946441ab51d3a6cc0ae518055c0ff017324ab76cdefb327a") version("2.4.120", sha256="3bf55363f76c7250946441ab51d3a6cc0ae518055c0ff017324ab76cdefb327a")
version("2.4.119", sha256="0a49f12f09b5b6e68eaaaff3f02ca7cff9aa926939b212d343161d3e8ac56291") version("2.4.119", sha256="0a49f12f09b5b6e68eaaaff3f02ca7cff9aa926939b212d343161d3e8ac56291")
version("2.4.118", sha256="a777bd85f2b5fc9c57f886c82058300578317cafdbc77d0a769d7e9a9567ab88") version("2.4.118", sha256="a777bd85f2b5fc9c57f886c82058300578317cafdbc77d0a769d7e9a9567ab88")
@ -39,7 +42,7 @@ class Libdrm(Package):
version("2.4.59", sha256="ed9d03a92c2d80e6310cc350db3430620f1659ae084a07c6824cee7bc81ae8fa") version("2.4.59", sha256="ed9d03a92c2d80e6310cc350db3430620f1659ae084a07c6824cee7bc81ae8fa")
version("2.4.33", sha256="bd2a8fecf28616f2157ca33ede691c139cc294ed2d0c4244b62ca7d22e98e5a4") version("2.4.33", sha256="bd2a8fecf28616f2157ca33ede691c139cc294ed2d0c4244b62ca7d22e98e5a4")
depends_on("c", type="build") # generated depends_on("c", type="build")
variant("docs", default=False, description="Build man pages") variant("docs", default=False, description="Build man pages")
@ -47,10 +50,16 @@ class Libdrm(Package):
depends_on("libpciaccess@0.10:") depends_on("libpciaccess@0.10:")
depends_on("libpthread-stubs") depends_on("libpthread-stubs")
# 2.4.90 is the first version to use meson, spack defaults to meson since # 2.4.90 is the first version to use meson, but spack supports meson since 2.4.101.
# 2.4.101. build_system(
depends_on("meson@0.53:", type="build", when="@2.4.101:") conditional("meson", when="@2.4.101:"),
depends_on("meson@0.59:", type="build", when="@2.4.117:") conditional("autotools", when="@:2.4.100"),
default="meson",
)
with when("build_system=meson"):
depends_on("meson@0.53:", type="build", when="@2.4.101:")
depends_on("meson@0.59:", type="build", when="@2.4.117:")
# >= 2.4.104 uses reStructuredText for man pages. # >= 2.4.104 uses reStructuredText for man pages.
with when("@2.4.104: +docs"): with when("@2.4.104: +docs"):
@ -68,24 +77,8 @@ def url_for_version(self, version):
else: else:
return self.list_url + "libdrm-%s.tar.xz" % version return self.list_url + "libdrm-%s.tar.xz" % version
def meson_args(self):
if self.version <= Version("2.4.112"):
return ["-Dman-pages=" + ("true" if "+docs" in self.spec else "false")]
else:
return ["-Dman-pages=" + ("enabled" if "+docs" in self.spec else "disabled")]
def install(self, spec, prefix): class AutotoolsBuilder(spack.build_systems.autotools.AutotoolsBuilder):
with working_dir("spack-build", create=True):
args = []
args.extend(std_meson_args)
args.extend(self.meson_args())
meson("..", *args)
ninja("-v")
if self.run_tests:
ninja("test")
ninja("install")
@when("@:2.4.100")
def configure_args(self): def configure_args(self):
args = [] args = []
args.append("--enable-static") args.append("--enable-static")
@ -101,12 +94,10 @@ def configure_args(self):
args.append("CFLAGS=-fcommon") args.append("CFLAGS=-fcommon")
return args return args
@when("@:2.4.100")
def install(self, spec, prefix): class MesonBuilder(spack.build_systems.meson.MesonBuilder):
configure("--prefix={0}".format(prefix), *self.configure_args()) def meson_args(self):
make() if self.spec.satisfies("@:2.4.112"):
if self.run_tests: return ["-Dman-pages=" + ("true" if "+docs" in self.spec else "false")]
make("check") else:
make("install") return ["-Dman-pages=" + ("enabled" if "+docs" in self.spec else "disabled")]
if self.run_tests:
make("installcheck")