diff --git a/winbuild/README.md b/winbuild/README.md index dd70e5b0c..213e9bda4 100644 --- a/winbuild/README.md +++ b/winbuild/README.md @@ -5,9 +5,14 @@ For more extensive info, see the windows build instructions `docs/build.rst`. * See https://github.com/python-imaging/Pillow/issues/553#issuecomment-37877416 and https://github.com/matplotlib/matplotlib/issues/1717#issuecomment-13343859 -* Works best with Python 3.4, due to virtualenv and pip batteries included. -* Check config.py for virtual env paths. -* `python get_pythons.py` downloads all the python releases, and their signatures. Install in `c:\PythonXX[x64]\`. -* `python build_dep.py` downloads and builds all the dependencies, in 32 and 64 bit versions, and with both compiler versions. +* Works best with Python 3.4, due to virtualenv and pip batteries included. Python3+ required for fetch command. +* Check config.py for virtual env paths, suffix for 64 bit releases. Defaults to `x64`, set `X64_EXT` to change. +* When running in CI with one python per invocation, set the `PYTHON` env variable to the python folder. (e.g. `PYTHON`=`c:\Python27\`) This overrides the matrix in config.py and will just build and test for the speciic python. +* `python get_pythons.py` downloads all the python releases, and their signatures. (Manually) Install in `c:\PythonXX[x64]\`. +* `python build_dep.py` downloads and creates a build script for all the dependencies, in 32 and 64 bit versions, and with both compiler versions. +* (in powershell) `build_deps.cmd` invokes the dependency build. * `python build.py --clean` makes pillow for the matrix of pythons. -* `python test.py` runs the tests on pillow in all the virtual envs. \ No newline at end of file +* `python test.py` runs the tests on pillow in all the virtual envs. +* Currently working with zlib, libjpeg, freetype, and libtiff on Python 2.7, 3.3, and 3.4, both 32 and 64 bit, on a local win7 pro machine and appveyor.com (3.3 untested there) +* Webp is built, not detected. +* LCMS and OpenJpeg are not building. \ No newline at end of file diff --git a/winbuild/build.py b/winbuild/build.py index 38bcb8310..59db83416 100644 --- a/winbuild/build.py +++ b/winbuild/build.py @@ -62,6 +62,10 @@ def build_one(py_ver, compiler): # UNDONE virtual envs if we're not running on appveyor args = {} args.update(compiler) + if 'PYTHON' in os.environ: + args['python_path'] = "%PYTHON%" + else: + args['python_path'] = "%s%s\\Scripts" % (VIRT_BASE, py_ver) args['py_ver'] = py_ver return r""" setlocal EnableDelayedExpansion @@ -72,7 +76,7 @@ set INCLUDE=%%INCLUDE%%;%%INCLIB%%\%(inc_dir)s;%%INCLIB%%\tcl85\include setlocal set LIB=%%LIB%%;C:\Python%(py_ver)s\tcl -call %%PYTHON%%\python.exe setup.py %%BLDOPT%% +call %(python_path)s\python.exe setup.py %%BLDOPT%% endlocal endlocal diff --git a/winbuild/test.py b/winbuild/test.py index fc693d8d8..69ab7e427 100644 --- a/winbuild/test.py +++ b/winbuild/test.py @@ -1,6 +1,9 @@ #!/usr/bin/env python3 -import subprocess, os, multiprocessing, glob +import subprocess +import os +import glob +import sys from config import * @@ -29,17 +32,13 @@ def test_one(params): if __name__=='__main__': os.chdir('..') - pool = multiprocessing.Pool() matrix = [(python, architecture) for python in pythons for architecture in ('', X64_EXT)] - results = pool.map(test_one, matrix) + results = map(test_one, matrix) for (python, architecture, status, trace) in results: - print ("%s%s: %s" % (python, architecture, status)) + print ("%s%s: %s" % (python, architecture, status and 'ERR' or 'PASS')) - - - - - + res = all(status for (python, architecture, status, trace) in results) + sys.exit(res)