mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-11-04 09:57:43 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
from __future__ import annotations
 | 
						|
 | 
						|
import sys
 | 
						|
 | 
						|
from setuptools.build_meta import *  # noqa: F403
 | 
						|
from setuptools.build_meta import build_wheel
 | 
						|
 | 
						|
backend_class = build_wheel.__self__.__class__
 | 
						|
 | 
						|
 | 
						|
class _CustomBuildMetaBackend(backend_class):
 | 
						|
    def run_setup(self, setup_script="setup.py"):
 | 
						|
        if self.config_settings:
 | 
						|
 | 
						|
            def config_has(key, value):
 | 
						|
                settings = self.config_settings.get(key)
 | 
						|
                if settings:
 | 
						|
                    if not isinstance(settings, list):
 | 
						|
                        settings = [settings]
 | 
						|
                    return value in settings
 | 
						|
 | 
						|
            flags = []
 | 
						|
            for dependency in (
 | 
						|
                "zlib",
 | 
						|
                "jpeg",
 | 
						|
                "tiff",
 | 
						|
                "freetype",
 | 
						|
                "raqm",
 | 
						|
                "lcms",
 | 
						|
                "webp",
 | 
						|
                "webpmux",
 | 
						|
                "jpeg2000",
 | 
						|
                "imagequant",
 | 
						|
                "xcb",
 | 
						|
            ):
 | 
						|
                if config_has(dependency, "enable"):
 | 
						|
                    flags.append("--enable-" + dependency)
 | 
						|
                elif config_has(dependency, "disable"):
 | 
						|
                    flags.append("--disable-" + dependency)
 | 
						|
            for dependency in ("raqm", "fribidi"):
 | 
						|
                if config_has(dependency, "vendor"):
 | 
						|
                    flags.append("--vendor-" + dependency)
 | 
						|
            if self.config_settings.get("platform-guessing") == "disable":
 | 
						|
                flags.append("--disable-platform-guessing")
 | 
						|
            if self.config_settings.get("debug") == "true":
 | 
						|
                flags.append("--debug")
 | 
						|
            if flags:
 | 
						|
                sys.argv = sys.argv[:1] + ["build_ext"] + flags + sys.argv[1:]
 | 
						|
        return super().run_setup(setup_script)
 | 
						|
 | 
						|
    def build_wheel(
 | 
						|
        self, wheel_directory, config_settings=None, metadata_directory=None
 | 
						|
    ):
 | 
						|
        self.config_settings = config_settings
 | 
						|
        return super().build_wheel(wheel_directory, config_settings, metadata_directory)
 | 
						|
 | 
						|
 | 
						|
build_wheel = _CustomBuildMetaBackend().build_wheel
 |