mirror of
				https://github.com/python-pillow/Pillow.git
				synced 2025-10-31 16:07:30 +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
 |