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

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,8 +50,14 @@ 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(
conditional("meson", when="@2.4.101:"),
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.53:", type="build", when="@2.4.101:")
depends_on("meson@0.59:", type="build", when="@2.4.117:") depends_on("meson@0.59:", type="build", when="@2.4.117:")
@@ -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")