mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-11-10 19:56:47 +03:00
add Raqm build configuration info to build summary
This commit is contained in:
parent
70fb148fc4
commit
e4cc42265d
34
setup.py
34
setup.py
|
@ -304,8 +304,8 @@ class pil_build_ext(build_ext):
|
|||
def want(self, feat):
|
||||
return getattr(self, feat) is None
|
||||
|
||||
def want_system(self, feat):
|
||||
return feat not in self.vendor
|
||||
def want_vendor(self, feat):
|
||||
return feat in self.vendor
|
||||
|
||||
def __iter__(self):
|
||||
yield from self.features
|
||||
|
@ -710,14 +710,14 @@ class pil_build_ext(build_ext):
|
|||
_add_directory(self.compiler.include_dirs, subdir, 0)
|
||||
|
||||
if feature.freetype and feature.want("raqm"):
|
||||
if feature.want_system("raqm"): # want system Raqm
|
||||
if not feature.want_vendor("raqm"): # want system Raqm
|
||||
_dbg("Looking for Raqm")
|
||||
if _find_include_file(self, "raqm.h"):
|
||||
if _find_library_file(self, "raqm"):
|
||||
feature.raqm = "raqm"
|
||||
elif _find_library_file(self, "libraqm"):
|
||||
feature.raqm = "libraqm"
|
||||
else: # want to build Raqm
|
||||
else: # want to build Raqm from src/thirdparty
|
||||
_dbg("Looking for HarfBuzz")
|
||||
feature.harfbuzz = None
|
||||
hb_dir = _find_include_dir(self, "harfbuzz", "hb.h")
|
||||
|
@ -727,7 +727,7 @@ class pil_build_ext(build_ext):
|
|||
if _find_library_file(self, "harfbuzz"):
|
||||
feature.harfbuzz = "harfbuzz"
|
||||
if feature.harfbuzz:
|
||||
if feature.want_system("fribidi"): # want system FriBiDi
|
||||
if not feature.want_vendor("fribidi"): # want system FriBiDi
|
||||
_dbg("Looking for FriBiDi")
|
||||
feature.fribidi = None
|
||||
fribidi_dir = _find_include_dir(self, "fribidi", "fribidi.h")
|
||||
|
@ -739,7 +739,7 @@ class pil_build_ext(build_ext):
|
|||
if _find_library_file(self, "fribidi"):
|
||||
feature.fribidi = "fribidi"
|
||||
feature.raqm = True
|
||||
else: # want to build FriBiDi shim
|
||||
else: # want to build FriBiDi shim from src/thirdparty
|
||||
feature.raqm = True
|
||||
|
||||
if feature.want("lcms"):
|
||||
|
@ -841,18 +841,18 @@ class pil_build_ext(build_ext):
|
|||
libs = ["freetype"]
|
||||
defs = []
|
||||
if feature.raqm:
|
||||
if feature.want_system("raqm"): # using system Raqm
|
||||
if not feature.want_vendor("raqm"): # using system Raqm
|
||||
defs.append(("HAVE_RAQM", None))
|
||||
defs.append(("HAVE_RAQM_SYSTEM", None))
|
||||
libs.append(feature.raqm)
|
||||
else: # building Raqm
|
||||
else: # building Raqm from src/thirdparty
|
||||
defs.append(("HAVE_RAQM", None))
|
||||
srcs.append("src/thirdparty/raqm/raqm.c")
|
||||
libs.append(feature.harfbuzz)
|
||||
if feature.want_system("fribidi"): # using system FriBiDi
|
||||
if not feature.want_vendor("fribidi"): # using system FriBiDi
|
||||
defs.append(("HAVE_FRIBIDI_SYSTEM", None))
|
||||
libs.append(feature.fribidi)
|
||||
else: # building our FriBiDi shim
|
||||
else: # building FriBiDi shim from src/thirdparty
|
||||
srcs.append("src/thirdparty/fribidi-shim/fribidi.c")
|
||||
self._update_extension("PIL._imagingft", libs, defs, srcs)
|
||||
|
||||
|
@ -902,6 +902,12 @@ class pil_build_ext(build_ext):
|
|||
print(f" [{v.strip()}")
|
||||
print("-" * 68)
|
||||
|
||||
raqm_extra_info = ""
|
||||
if feature.want_vendor("raqm"):
|
||||
raqm_extra_info += "bundled"
|
||||
if feature.want_vendor("fribidi"):
|
||||
raqm_extra_info += ", FriBiDi shim"
|
||||
|
||||
options = [
|
||||
(feature.jpeg, "JPEG"),
|
||||
(feature.jpeg2000, "OPENJPEG (JPEG2000)", feature.openjpeg_version),
|
||||
|
@ -909,7 +915,7 @@ class pil_build_ext(build_ext):
|
|||
(feature.imagequant, "LIBIMAGEQUANT"),
|
||||
(feature.tiff, "LIBTIFF"),
|
||||
(feature.freetype, "FREETYPE2"),
|
||||
(feature.raqm, "RAQM (Text shaping)"), # TODO!!!
|
||||
(feature.raqm, "RAQM (Text shaping)", raqm_extra_info),
|
||||
(feature.lcms, "LITTLECMS2"),
|
||||
(feature.webp, "WEBP"),
|
||||
(feature.webpmux, "WEBPMUX"),
|
||||
|
@ -919,10 +925,10 @@ class pil_build_ext(build_ext):
|
|||
all = 1
|
||||
for option in options:
|
||||
if option[0]:
|
||||
version = ""
|
||||
extra_info = ""
|
||||
if len(option) >= 3 and option[2]:
|
||||
version = f" ({option[2]})"
|
||||
print(f"--- {option[1]} support available{version}")
|
||||
extra_info = f" ({option[2]})"
|
||||
print(f"--- {option[1]} support available{extra_info}")
|
||||
else:
|
||||
print(f"*** {option[1]} support not available")
|
||||
all = 0
|
||||
|
|
Loading…
Reference in New Issue
Block a user