summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Richert <82525672+AlexanderRichert-NOAA@users.noreply.github.com>2023-10-13 13:21:43 -0700
committerGitHub <noreply@github.com>2023-10-13 14:21:43 -0600
commita6cfeabc1016e6f58decb9789d52a80e6e2a5284 (patch)
tree758bb4c6f207686888b9237d98a69c5eff6da478
parenta3a29006aab0123efbe5c1d2229539e6f4dfc1f8 (diff)
downloadspack-a6cfeabc1016e6f58decb9789d52a80e6e2a5284.tar.gz
spack-a6cfeabc1016e6f58decb9789d52a80e6e2a5284.tar.bz2
spack-a6cfeabc1016e6f58decb9789d52a80e6e2a5284.tar.xz
spack-a6cfeabc1016e6f58decb9789d52a80e6e2a5284.zip
cairo: add shared and pic variants (#40302)
-rw-r--r--var/spack/repos/builtin/packages/cairo/package.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/var/spack/repos/builtin/packages/cairo/package.py b/var/spack/repos/builtin/packages/cairo/package.py
index 4035728e2e..530b4d4904 100644
--- a/var/spack/repos/builtin/packages/cairo/package.py
+++ b/var/spack/repos/builtin/packages/cairo/package.py
@@ -39,6 +39,8 @@ class Cairo(AutotoolsPackage):
variant("fc", default=False, description="Enable cairo's Fontconfig font backend feature")
variant("png", default=False, description="Enable cairo's PNG functions feature")
variant("svg", default=False, description="Enable cairo's SVN functions feature")
+ variant("shared", default=True, description="Build shared libraries")
+ variant("pic", default=True, description="Enable position-independent code (PIC)")
depends_on("libx11", when="+X")
depends_on("libxext", when="+X")
@@ -61,6 +63,7 @@ class Cairo(AutotoolsPackage):
conflicts("+png", when="platform=darwin")
conflicts("+svg", when="platform=darwin")
+ conflicts("+shared~pic")
# patch from https://gitlab.freedesktop.org/cairo/cairo/issues/346
patch("fontconfig.patch", when="@1.16.0:1.17.2")
@@ -84,6 +87,15 @@ class Cairo(AutotoolsPackage):
args.extend(self.enable_or_disable("gobject"))
args.extend(self.enable_or_disable("ft"))
args.extend(self.enable_or_disable("fc"))
+ args.extend(self.enable_or_disable("shared"))
+ args.extend(self.with_or_without("pic"))
+
+ if self.spec.satisfies("+ft ^freetype~shared"):
+ pkgconf = which("pkg-config")
+ ldflags = pkgconf("--libs-only-L", "--static", "freetype2", output=str)
+ libs = pkgconf("--libs-only-l", "--static", "freetype2", output=str)
+ args.append(f"LDFLAGS={ldflags}")
+ args.append(f"LIBS={libs}")
return args