gtkplus: build_system={autotools,meson} (#46869)

* gtkplus: build_system={autotools,meson}

* gtkplus: fix style, fix spelling

* gtkplus: setup_dependent_build_environment in mixin

* gtkplus: swap setup_dependent_{run,build}_environment
This commit is contained in:
Wouter Deconinck 2024-10-12 14:49:23 -05:00 committed by GitHub
parent e65be13056
commit 389b1824e9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -6,7 +6,7 @@
from spack.package import *
class Gtkplus(MesonPackage):
class Gtkplus(AutotoolsPackage, MesonPackage):
"""The GTK+ package contains libraries used for creating graphical user
interfaces for applications."""
@ -15,6 +15,12 @@ class Gtkplus(MesonPackage):
license("LGPL-2.0-or-later")
build_system(
conditional("autotools", when="@:3.24.35"),
conditional("meson", when="@3.24.9:"),
default="autotools",
)
version("3.24.41", sha256="47da61487af3087a94bc49296fd025ca0bc02f96ef06c556e7c8988bd651b6fa")
version("3.24.29", sha256="f57ec4ade8f15cab0c23a80dcaee85b876e70a8823d9105f067ce335a8268caa")
version("3.24.26", sha256="2cc1b2dc5cad15d25b6abd115c55ffd8331e8d4677745dd3ce6db725b4fff1e9")
@ -45,8 +51,8 @@ class Gtkplus(MesonPackage):
variant("cups", default=False, description="enable cups support")
# See meson.build for version requirements
depends_on("meson@0.48.0:", when="@3.24:", type="build")
depends_on("ninja", when="@3.24:", type="build")
depends_on("meson@0.48.0:", when="build_system=meson", type="build")
depends_on("ninja", when="build_system=meson", type="build")
# Needed to build man pages:
# depends_on('docbook-xml', when='@3.24:', type='build')
# depends_on('docbook-xsl', when='@3.24:', type='build')
@ -92,13 +98,19 @@ def patch(self):
def setup_run_environment(self, env):
env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0"))
def setup_dependent_run_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0"))
class BuildEnvironment:
def setup_dependent_build_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0"))
def setup_dependent_run_environment(self, env, dependent_spec):
env.prepend_path("XDG_DATA_DIRS", self.prefix.share)
env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0"))
class MesonBuilder(BuildEnvironment, spack.build_systems.meson.MesonBuilder):
def meson_args(self):
args = []
@ -114,6 +126,13 @@ def meson_args(self):
return args
def check(self):
"""All build time checks open windows in the X server, don't do that"""
pass
class AutotoolsBuilder(BuildEnvironment, spack.build_systems.autotools.AutotoolsBuilder):
def configure_args(self):
true = which("true")
args = [
@ -129,18 +148,6 @@ def configure_args(self):
args.append("--disable-cups")
return args
@when("@:3.20.10")
def meson(self, spec, prefix):
configure(*self.configure_args())
@when("@:3.20.10")
def build(self, spec, prefix):
make()
@when("@:3.20.10")
def install(self, spec, prefix):
make("install")
def check(self):
"""All build time checks open windows in the X server, don't do that"""
pass