11# Copyright Spack Project Developers. See COPYRIGHT file for details.
22#
33# SPDX-License-Identifier: (Apache-2.0 OR MIT)
4- from spack_repo .builtin .build_systems import autotools
4+ from spack_repo .builtin .build_systems import autotools , meson
55from spack_repo .builtin .build_systems .autotools import AutotoolsPackage
66from spack_repo .builtin .build_systems .meson import MesonPackage
77
@@ -21,6 +21,10 @@ class GobjectIntrospection(MesonPackage, AutotoolsPackage):
2121
2222 license ("LGPL-2.0-or-later AND GPL-2.0-or-later AND MIT" )
2323
24+ version ("1.86.0" , sha256 = "920d1a3fcedeadc32acff95c2e203b319039dd4b4a08dd1a2dfd283d19c0b9ae" )
25+ version ("1.84.0" , sha256 = "945b57da7ec262e5c266b89e091d14be800cc424277d82a02872b7d794a84779" )
26+ version ("1.82.0" , sha256 = "0f5a4c1908424bf26bc41e9361168c363685080fbdb87a196c891c8401ca2f09" )
27+ version ("1.80.1" , sha256 = "a1df7c424e15bda1ab639c00e9051b9adf5cea1a9e512f8a603b53cd199bc6d8" )
2428 version ("1.78.1" , sha256 = "bd7babd99af7258e76819e45ba4a6bc399608fe762d83fde3cac033c50841bb4" )
2529 version ("1.76.1" , sha256 = "196178bf64345501dcdc4d8469b36aa6fe80489354efe71cb7cb8ab82a3738bf" )
2630 version ("1.72.1" , sha256 = "012e313186e3186cf0fde6decb57d970adf90e6b1fac5612fe69cbb5ba99543a" )
@@ -45,7 +49,9 @@ class GobjectIntrospection(MesonPackage, AutotoolsPackage):
4549 # Does not build with sed from Darwin
4650 depends_on ("sed" , when = "platform=darwin" , type = "build" )
4751
48- depends_on ("cairo+gobject" )
52+ depends_on ("cairo+gobject" , when = "@:1.78" )
53+ depends_on ("glib-bootstrap@2.82:" , when = "@1.82:" )
54+ depends_on ("glib-bootstrap@2.80:" , when = "@1.80" )
4955 depends_on ("glib@2.78:" , when = "@1.78" )
5056 depends_on ("glib@2.76:" , when = "@1.76" )
5157 depends_on ("glib@2.58:" , when = "@1.60:1.72" )
@@ -124,35 +130,52 @@ def url_for_version(self, version):
124130 url = "https://download.gnome.org/sources/gobject-introspection/{0}/gobject-introspection-{1}.tar.xz"
125131 return url .format (version .up_to (2 ), version )
126132
127- def setup_build_environment (self , env : EnvironmentModifications ) -> None :
128- # Only needed for sbang.patch above
129- if self .spec .satisfies ("@:1.60" ):
130- env .set ("SPACK_SBANG" , sbang_install_path ())
131- env .set ("GI_SCANNER_DISABLE_CACHE" , "1" )
132-
133133 def setup_run_environment (self , env : EnvironmentModifications ) -> None :
134134 env .prepend_path ("GI_TYPELIB_PATH" , join_path (self .prefix .lib , "girepository-1.0" ))
135135
136- def setup_dependent_build_environment (
136+ def setup_dependent_run_environment (
137137 self , env : EnvironmentModifications , dependent_spec : Spec
138138 ) -> None :
139139 env .prepend_path ("XDG_DATA_DIRS" , self .prefix .share )
140140 env .prepend_path ("GI_TYPELIB_PATH" , join_path (self .prefix .lib , "girepository-1.0" ))
141+
142+ @property
143+ def parallel (self ):
144+ return not self .spec .satisfies ("%fj" )
145+
146+
147+ class BuildEnvironment :
148+ def setup_build_environment (self , env : EnvironmentModifications ) -> None :
149+ # Only needed for sbang.patch above
150+ if self .spec .satisfies ("@:1.60" ):
151+ env .set ("SPACK_SBANG" , sbang_install_path ())
141152 env .set ("GI_SCANNER_DISABLE_CACHE" , "1" )
142153
143- def setup_dependent_run_environment (
154+ def setup_dependent_build_environment (
144155 self , env : EnvironmentModifications , dependent_spec : Spec
145156 ) -> None :
146157 env .prepend_path ("XDG_DATA_DIRS" , self .prefix .share )
147158 env .prepend_path ("GI_TYPELIB_PATH" , join_path (self .prefix .lib , "girepository-1.0" ))
159+ env .set ("GI_SCANNER_DISABLE_CACHE" , "1" )
148160
149- @property
150- def parallel (self ):
151- return not self .spec .satisfies ("%fj" )
161+ if self .spec .satisfies ("^glib-bootstrap" ):
162+ env .append_path ("PKG_CONFIG_PATH" , self .spec ["glib-bootstrap" ].prefix .lib .pkgconfig )
152163
153164
154- class AutotoolsBuilderPackage ( autotools .AutotoolsBuilder ):
165+ class AutotoolsBuilder ( BuildEnvironment , autotools .AutotoolsBuilder ):
155166 @run_before ("build" )
156167 def filter_file_to_avoid_overly_long_shebangs (self ):
157- # we need to filter this file to avoid an overly long hashbang line
158- filter_file ("#!/usr/bin/env @PYTHON@" , "#!@PYTHON@" , "tools/g-ir-tool-template.in" )
168+ filter_file (
169+ "#!/usr/bin/env @PYTHON@" , "#!@PYTHON@" , "tools/g-ir-tool-template.in" , string = True
170+ )
171+
172+
173+ class MesonBuilder (BuildEnvironment , meson .MesonBuilder ):
174+ @run_before ("build" )
175+ def filter_file_to_avoid_overly_long_shebangs (self ):
176+ filter_file (
177+ "#!@PYTHON_CMD@" ,
178+ f"{ sbang_shebang_line ()} \n #!@PYTHON_CMD@" ,
179+ "tools/g-ir-tool-template.in" ,
180+ string = True ,
181+ )
0 commit comments