mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-01-12 02:06:18 +03:00
Use --config-settings instead of deprecated --global-option
This commit is contained in:
parent
599979caae
commit
4f734d295f
2
.github/workflows/test-mingw.yml
vendored
2
.github/workflows/test-mingw.yml
vendored
|
@ -80,7 +80,7 @@ jobs:
|
||||||
pushd depends && ./install_extra_test_images.sh && popd
|
pushd depends && ./install_extra_test_images.sh && popd
|
||||||
|
|
||||||
- name: Build Pillow
|
- name: Build Pillow
|
||||||
run: SETUPTOOLS_USE_DISTUTILS="stdlib" CFLAGS="-coverage" python3 -m pip install --global-option="build_ext" .
|
run: SETUPTOOLS_USE_DISTUTILS="stdlib" CFLAGS="-coverage" python3 -m pip install .
|
||||||
|
|
||||||
- name: Test Pillow
|
- name: Test Pillow
|
||||||
run: |
|
run: |
|
||||||
|
|
|
@ -15,6 +15,7 @@ graft src
|
||||||
graft depends
|
graft depends
|
||||||
graft winbuild
|
graft winbuild
|
||||||
graft docs
|
graft docs
|
||||||
|
graft _custom_build
|
||||||
|
|
||||||
# build/src control detritus
|
# build/src control detritus
|
||||||
exclude .appveyor.yml
|
exclude .appveyor.yml
|
||||||
|
|
4
Makefile
4
Makefile
|
@ -65,7 +65,7 @@ install:
|
||||||
|
|
||||||
.PHONY: install-coverage
|
.PHONY: install-coverage
|
||||||
install-coverage:
|
install-coverage:
|
||||||
CFLAGS="-coverage -Werror=implicit-function-declaration" python3 -m pip -v install --global-option="build_ext" .
|
CFLAGS="-coverage -Werror=implicit-function-declaration" python3 -m pip -v install .
|
||||||
python3 selftest.py
|
python3 selftest.py
|
||||||
|
|
||||||
.PHONY: debug
|
.PHONY: debug
|
||||||
|
@ -74,7 +74,7 @@ debug:
|
||||||
# for our stuff, kills optimization, and redirects to dev null so we
|
# for our stuff, kills optimization, and redirects to dev null so we
|
||||||
# see any build failures.
|
# see any build failures.
|
||||||
make clean > /dev/null
|
make clean > /dev/null
|
||||||
CFLAGS='-g -O0' python3 -m pip -v install --global-option="build_ext" . > /dev/null
|
CFLAGS='-g -O0' python3 -m pip -v install . > /dev/null
|
||||||
|
|
||||||
.PHONY: release-test
|
.PHONY: release-test
|
||||||
release-test:
|
release-test:
|
||||||
|
|
31
_custom_build/backend.py
Executable file
31
_custom_build/backend.py
Executable file
|
@ -0,0 +1,31 @@
|
||||||
|
import sys
|
||||||
|
|
||||||
|
from setuptools.build_meta import * # noqa: F401, F403
|
||||||
|
from setuptools.build_meta import _BuildMetaBackend
|
||||||
|
|
||||||
|
|
||||||
|
class _CustomBuildMetaBackend(_BuildMetaBackend):
|
||||||
|
def run_setup(self, setup_script="setup.py"):
|
||||||
|
if self.config_settings:
|
||||||
|
flags = []
|
||||||
|
for key in ("enable", "disable", "vendor"):
|
||||||
|
settings = self.config_settings.get(key)
|
||||||
|
if settings:
|
||||||
|
if not isinstance(settings, list):
|
||||||
|
settings = [settings]
|
||||||
|
for value in settings:
|
||||||
|
flags.append("--" + key + "-" + value)
|
||||||
|
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
|
|
@ -380,40 +380,40 @@ Build Options
|
||||||
using a setting of 1. By default, it uses 4 CPUs, or if 4 are not
|
using a setting of 1. By default, it uses 4 CPUs, or if 4 are not
|
||||||
available, as many as are present.
|
available, as many as are present.
|
||||||
|
|
||||||
* Build flags: ``--disable-zlib``, ``--disable-jpeg``,
|
* Config settings: ``-C disable=zlib``, ``-C disable=jpeg``,
|
||||||
``--disable-tiff``, ``--disable-freetype``, ``--disable-raqm``,
|
``-C disable=tiff``, ``-C disable=freetype``, ``-C disable=raqm``,
|
||||||
``--disable-lcms``, ``--disable-webp``, ``--disable-webpmux``,
|
``-C disable=lcms``, ``-C disable=webp``, ``-C disable=webpmux``,
|
||||||
``--disable-jpeg2000``, ``--disable-imagequant``, ``--disable-xcb``.
|
``-C disable=jpeg2000``, ``-C disable=imagequant``, ``-C disable=xcb``.
|
||||||
Disable building the corresponding feature even if the development
|
Disable building the corresponding feature even if the development
|
||||||
libraries are present on the building machine.
|
libraries are present on the building machine.
|
||||||
|
|
||||||
* Build flags: ``--enable-zlib``, ``--enable-jpeg``,
|
* Config settings: ``-C enable=zlib``, ``-C enable=jpeg``,
|
||||||
``--enable-tiff``, ``--enable-freetype``, ``--enable-raqm``,
|
``-C enable=tiff``, ``-C enable=freetype``, ``-C enable=raqm``,
|
||||||
``--enable-lcms``, ``--enable-webp``, ``--enable-webpmux``,
|
``-C enable=lcms``, ``-C enable=webp``, ``-C enable=webpmux``,
|
||||||
``--enable-jpeg2000``, ``--enable-imagequant``, ``--enable-xcb``.
|
``-C enable=jpeg2000``, ``-C enable=imagequant``, ``-C enable=xcb``.
|
||||||
Require that the corresponding feature is built. The build will raise
|
Require that the corresponding feature is built. The build will raise
|
||||||
an exception if the libraries are not found. Webpmux (WebP metadata)
|
an exception if the libraries are not found. Webpmux (WebP metadata)
|
||||||
relies on WebP support. Tcl and Tk also must be used together.
|
relies on WebP support. Tcl and Tk also must be used together.
|
||||||
|
|
||||||
* Build flags: ``--vendor-raqm``, ``--vendor-fribidi``.
|
* Config settings: ``-C vendor=raqm``, ``-C vendor=fribidi``.
|
||||||
These flags are used to compile a modified version of libraqm and
|
These flags are used to compile a modified version of libraqm and
|
||||||
a shim that dynamically loads libfribidi at runtime. These are
|
a shim that dynamically loads libfribidi at runtime. These are
|
||||||
used to compile the standard Pillow wheels. Compiling libraqm requires
|
used to compile the standard Pillow wheels. Compiling libraqm requires
|
||||||
a C99-compliant compiler.
|
a C99-compliant compiler.
|
||||||
|
|
||||||
* Build flag: ``--disable-platform-guessing``. Skips all of the
|
* Build flag: ``-C disable=platform-guessing``. Skips all of the
|
||||||
platform dependent guessing of include and library directories for
|
platform dependent guessing of include and library directories for
|
||||||
automated build systems that configure the proper paths in the
|
automated build systems that configure the proper paths in the
|
||||||
environment variables (e.g. Buildroot).
|
environment variables (e.g. Buildroot).
|
||||||
|
|
||||||
* Build flag: ``--debug``. Adds a debugging flag to the include and
|
* Build flag: ``-C debug=true``. Adds a debugging flag to the include and
|
||||||
library search process to dump all paths searched for and found to
|
library search process to dump all paths searched for and found to
|
||||||
stdout.
|
stdout.
|
||||||
|
|
||||||
|
|
||||||
Sample usage::
|
Sample usage::
|
||||||
|
|
||||||
python3 -m pip install --upgrade Pillow --global-option="build_ext" --global-option="--enable-[feature]"
|
python3 -m pip install --upgrade Pillow -C enable=[feature]
|
||||||
|
|
||||||
Platform Support
|
Platform Support
|
||||||
----------------
|
----------------
|
||||||
|
|
4
pyproject.toml
Normal file
4
pyproject.toml
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
[build-system]
|
||||||
|
requires = ["setuptools >= 40.8.0", "wheel"]
|
||||||
|
build-backend = "backend"
|
||||||
|
backend-path = ["_custom_build"]
|
Loading…
Reference in New Issue
Block a user