1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
# Copyright 2013-2023 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
from spack.build_systems.autotools import AutotoolsBuilder
from spack.build_systems.cmake import CMakeBuilder
from spack.package import *
class Freetype(AutotoolsPackage, CMakePackage):
"""FreeType is a freely available software library to render fonts.
It is written in C, designed to be small, efficient, highly customizable,
and portable while capable of producing high-quality output (glyph images)
of most vector and bitmap font formats."""
homepage = "https://www.freetype.org/index.html"
url = "https://download.savannah.gnu.org/releases/freetype/freetype-2.10.1.tar.gz"
maintainers("michaelkuhn")
license("FTL OR GPL-2.0-or-later")
version("2.11.1", sha256="f8db94d307e9c54961b39a1cc799a67d46681480696ed72ecf78d4473770f09b")
version("2.11.0", sha256="a45c6b403413abd5706f3582f04c8339d26397c4304b78fa552f2215df64101f")
version("2.10.4", sha256="5eab795ebb23ac77001cfb68b7d4d50b5d6c7469247b0b01b2c953269f658dac")
version("2.10.2", sha256="e09aa914e4f7a5d723ac381420949c55c0b90b15744adce5d1406046022186ab")
version("2.10.1", sha256="3a60d391fd579440561bf0e7f31af2222bc610ad6ce4d9d7bd2165bca8669110")
version("2.10.0", sha256="955e17244e9b38adb0c98df66abb50467312e6bb70eac07e49ce6bd1a20e809a")
version("2.9.1", sha256="ec391504e55498adceb30baceebd147a6e963f636eb617424bcfc47a169898ce")
version("2.7.1", sha256="162ef25aa64480b1189cdb261228e6c5c44f212aac4b4621e28cf2157efb59f5")
version("2.7", sha256="7b657d5f872b0ab56461f3bd310bd1c5ec64619bd15f0d8e08282d494d9cfea4")
version("2.5.3", sha256="41217f800d3f40d78ef4eb99d6a35fd85235b64f81bc56e4812d7672fca7b806")
build_system("cmake", "autotools", default="autotools")
depends_on("bzip2")
depends_on("libpng")
for plat in ["linux", "darwin", "cray"]:
depends_on("pkgconfig", type="build", when="platform=%s" % plat)
conflicts(
"%intel",
when="@2.8:2.10.2",
msg="freetype-2.8 to 2.10.2 cannot be built with icc (does not "
"support __builtin_shuffle)",
)
variant("shared", default=True, description="Build shared libraries")
variant("pic", default=True, description="Enable position-independent code (PIC)")
requires("+pic", when="+shared build_system=autotools")
patch("windows.patch", when="@2.9.1")
@property
def headers(self):
headers = find_headers("*", self.prefix.include, recursive=True)
headers.directories = [self.prefix.include.freetype2]
return headers
class AutotoolsBuilder(AutotoolsBuilder):
def configure_args(self):
args = [
"--with-brotli=no",
"--with-bzip2=yes",
"--with-harfbuzz=no",
"--with-png=yes",
"--with-zlib=no",
]
if self.spec.satisfies("@2.9.1:"):
args.append("--enable-freetype-config")
args.extend(self.enable_or_disable("shared"))
args.extend(self.with_or_without("pic"))
return args
class CMakeBuilder(CMakeBuilder):
def cmake_args(self):
return [
self.define("FT_DISABLE_ZLIB", True),
self.define("FT_DISABLE_BROTLI", True),
self.define("FT_DISABLE_HARFBUZZ", True),
self.define("FT_REQUIRE_PNG", True),
self.define("FT_REQUIRE_BZIP2", True),
self.define_from_variant("BUILD_SHARED_LIBS", "shared"),
self.define_from_variant("CMAKE_POSITION_INDEPENDENT_CODE", "pic"),
]
|