diff options
Diffstat (limited to 'var/spack/repos/builtin/packages/harfbuzz/package.py')
-rw-r--r-- | var/spack/repos/builtin/packages/harfbuzz/package.py | 53 |
1 files changed, 38 insertions, 15 deletions
diff --git a/var/spack/repos/builtin/packages/harfbuzz/package.py b/var/spack/repos/builtin/packages/harfbuzz/package.py index e5edb2ed3b..09a43358cb 100644 --- a/var/spack/repos/builtin/packages/harfbuzz/package.py +++ b/var/spack/repos/builtin/packages/harfbuzz/package.py @@ -2,16 +2,20 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) +import sys + import spack.build_systems.autotools import spack.build_systems.meson from spack.package import * +IS_WINDOWS = sys.platform == "win32" + class Harfbuzz(MesonPackage, AutotoolsPackage): """The Harfbuzz package contains an OpenType text shaping engine.""" homepage = "https://github.com/harfbuzz/harfbuzz" - url = "https://github.com/harfbuzz/harfbuzz/releases/download/2.9.1/harfbuzz-2.9.1.tar.xz" + url = "https://github.com/harfbuzz/harfbuzz/releases/download/9.0.0/harfbuzz-9.0.0.tar.xz" git = "https://github.com/harfbuzz/harfbuzz.git" build_system( @@ -20,6 +24,14 @@ class Harfbuzz(MesonPackage, AutotoolsPackage): license("MIT") + version("10.1.0", sha256="6ce3520f2d089a33cef0fc48321334b8e0b72141f6a763719aaaecd2779ecb82") + version("10.0.1", sha256="b2cb13bd351904cb9038f907dc0dee0ae07127061242fe3556b2795c4e9748fc") + version("10.0.0", sha256="c2dfe016ad833a5043ecc6579043f04e8e6d50064e02ad449bb466e6431e3e04") + version("9.0.0", sha256="a41b272ceeb920c57263ec851604542d9ec85ee3030506d94662067c7b6ab89e") + version("8.5.0", sha256="77e4f7f98f3d86bf8788b53e6832fb96279956e1c3961988ea3d4b7ca41ddc27") + version("8.4.0", sha256="af4ea73e25ab748c8c063b78c2f88e48833db9b2ac369e29bd115702e789755e") + version("8.3.1", sha256="f73e1eacd7e2ffae687bc3f056bb0c705b7a05aee86337686e09da8fc1c2030c") + version("8.3.0", sha256="109501eaeb8bde3eadb25fab4164e993fbace29c3d775bcaa1c1e58e2f15f847") version("7.3.0", sha256="20770789749ac9ba846df33983dbda22db836c70d9f5d050cb9aa5347094a8fb") version("7.2.0", sha256="fc5560c807eae0efd5f95b5aa4c65800c7a8eed6642008a6b1e7e3ffff7873cc") version("6.0.0", sha256="1d1010a1751d076d5291e433c138502a794d679a7498d1268ee21e2d4a140eb4") @@ -68,6 +80,9 @@ class Harfbuzz(MesonPackage, AutotoolsPackage): deprecated=True, ) + depends_on("c", type="build") # generated + depends_on("cxx", type="build") # generated + variant("graphite2", default=False, description="enable support for graphite2 font engine") variant( "coretext", @@ -76,12 +91,15 @@ class Harfbuzz(MesonPackage, AutotoolsPackage): description="Enable CoreText shaper backend on macOS", ) - depends_on("pkgconfig", type="build") - depends_on("glib") - depends_on("gobject-introspection") + for plat in ["linux", "darwin", "freebsd"]: + with when(f"platform={plat}"): + depends_on("pkgconfig", type="build") + depends_on("glib") + depends_on("gobject-introspection") + depends_on("cairo+pdf+ft") + depends_on("icu4c") depends_on("freetype") - depends_on("cairo+pdf+ft") depends_on("zlib-api") depends_on("graphite2", when="+graphite2") @@ -90,7 +108,7 @@ class Harfbuzz(MesonPackage, AutotoolsPackage): ) def url_for_version(self, version): - if version > Version("2.3.1"): + if self.spec.satisfies("@2.3.2:"): url = "https://github.com/harfbuzz/harfbuzz/releases/download/{0}/harfbuzz-{0}.tar.xz" else: url = "http://www.freedesktop.org/software/harfbuzz/release/harfbuzz-{0}.tar.bz2" @@ -103,9 +121,9 @@ class Harfbuzz(MesonPackage, AutotoolsPackage): if name == "cxxflags": flags.append(self.compiler.cxx11_flag) if name == "cflags": - if "%pgi" not in self.spec and self.spec.satisfies("%gcc@:5.1"): + if self.spec.satisfies("%gcc@:5.1"): flags.append("-std=gnu99") - return (None, None, flags) + return None, None, flags def setup_run_environment(self, env): env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0")) @@ -114,6 +132,7 @@ class Harfbuzz(MesonPackage, AutotoolsPackage): env.prepend_path("XDG_DATA_DIRS", self.prefix.share) env.prepend_path("GI_TYPELIB_PATH", join_path(self.prefix.lib, "girepository-1.0")) + @when("@:8") def patch(self): change_sed_delimiter("@", ";", "src/Makefile.in") @@ -128,12 +147,16 @@ class MesonBuilder(spack.build_systems.meson.MesonBuilder, SetupEnvironment): def meson_args(self): graphite2 = "enabled" if self.pkg.spec.satisfies("+graphite2") else "disabled" coretext = "enabled" if self.pkg.spec.satisfies("+coretext") else "disabled" - return [ + config_args = [ # disable building of gtk-doc files following #9885 and #9771 "-Ddocs=disabled", - "-Dgraphite2={0}".format(graphite2), - "-Dcoretext={0}".format(coretext), + "-Dfreetype=enabled", + f"-Dgraphite2={graphite2}", + f"-Dcoretext={coretext}", ] + if IS_WINDOWS: + config_args.extend(["-Dcairo=disabled", "-Dglib=disabled"]) + return config_args class AutotoolsBuilder(spack.build_systems.autotools.AutotoolsBuilder, SetupEnvironment): @@ -143,10 +166,10 @@ class AutotoolsBuilder(spack.build_systems.autotools.AutotoolsBuilder, SetupEnvi # disable building of gtk-doc files following #9771 args.append("--disable-gtk-doc-html") true = which("true") - args.append("GTKDOC_CHECK={0}".format(true)) - args.append("GTKDOC_CHECK_PATH={0}".format(true)) - args.append("GTKDOC_MKPDF={0}".format(true)) - args.append("GTKDOC_REBASE={0}".format(true)) + args.append(f"GTKDOC_CHECK={true}") + args.append(f"GTKDOC_CHECK_PATH={true}") + args.append(f"GTKDOC_MKPDF={true}") + args.append(f"GTKDOC_REBASE={true}") args.extend(self.with_or_without("graphite2")) args.extend(self.with_or_without("coretext")) |