2019-09-23 14:12:01 +03:00
|
|
|
name: Test Windows
|
|
|
|
|
|
|
|
on: [push, pull_request]
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build:
|
2019-10-14 23:22:21 +03:00
|
|
|
|
2019-11-03 00:01:26 +03:00
|
|
|
runs-on: windows-2019
|
2019-09-23 14:12:01 +03:00
|
|
|
strategy:
|
2019-09-24 19:15:31 +03:00
|
|
|
fail-fast: false
|
2019-09-23 14:12:01 +03:00
|
|
|
matrix:
|
2019-11-21 00:11:51 +03:00
|
|
|
python-version: ["3.5", "3.6", "3.7", "3.8", "pypy3.6"]
|
2019-09-24 19:15:31 +03:00
|
|
|
architecture: ["x86", "x64"]
|
|
|
|
include:
|
|
|
|
- architecture: "x86"
|
|
|
|
platform-vcvars: "x86"
|
|
|
|
platform-msbuild: "Win32"
|
|
|
|
- architecture: "x64"
|
|
|
|
platform-vcvars: "x86_amd64"
|
|
|
|
platform-msbuild: "x64"
|
|
|
|
- python-version: "pypy3.6"
|
2019-10-14 23:22:21 +03:00
|
|
|
pypy-version: "pypy3.6-v7.2.0-win32"
|
|
|
|
pypy-url: "https://bitbucket.org/pypy/pypy/downloads/pypy3.6-v7.2.0-win32.zip"
|
2019-09-24 19:15:31 +03:00
|
|
|
exclude:
|
|
|
|
- python-version: "pypy3.6"
|
|
|
|
architecture: "x64"
|
|
|
|
timeout-minutes: 30
|
2019-10-14 23:22:21 +03:00
|
|
|
|
2019-09-24 19:15:31 +03:00
|
|
|
name: Python ${{ matrix.python-version }} ${{ matrix.architecture }}
|
2019-10-14 23:22:21 +03:00
|
|
|
|
2019-09-23 14:12:01 +03:00
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v1
|
2019-09-24 19:15:31 +03:00
|
|
|
|
2019-11-20 21:20:01 +03:00
|
|
|
- uses: actions/checkout@v1
|
|
|
|
with:
|
|
|
|
repository: python-pillow/pillow-depends
|
|
|
|
ref: master
|
|
|
|
|
2019-11-17 14:51:42 +03:00
|
|
|
- name: Cache
|
|
|
|
uses: actions/cache@v1
|
|
|
|
with:
|
|
|
|
path: ~\AppData\Local\pip\Cache
|
|
|
|
key:
|
2019-11-19 12:55:49 +03:00
|
|
|
${{ runner.os }}-${{ matrix.python-version }}-${{ matrix.architecture }}-${{ hashFiles('**/.github/workflows/test-windows.yml') }}
|
2019-11-17 14:51:42 +03:00
|
|
|
restore-keys: |
|
2019-11-19 12:55:49 +03:00
|
|
|
${{ runner.os }}-${{ matrix.python-version }}-${{ matrix.architecture }}-
|
2019-11-17 14:51:42 +03:00
|
|
|
${{ runner.os }}-${{ matrix.python-version }}-
|
|
|
|
|
2019-09-24 19:15:31 +03:00
|
|
|
- name: Install PyPy
|
|
|
|
if: "contains(matrix.python-version, 'pypy')"
|
|
|
|
run: |
|
|
|
|
curl -fsSL -o pypy3.zip "${{ matrix.pypy-url }}"
|
|
|
|
7z x pypy3.zip "-o$env:RUNNER_WORKSPACE\"
|
|
|
|
mv "$env:RUNNER_WORKSPACE\${{ matrix.pypy-version }}" "$env:RUNNER_WORKSPACE\${{ matrix.python-version }}"
|
|
|
|
$env:PYTHON="$env:RUNNER_WORKSPACE\${{ matrix.python-version }}"
|
|
|
|
# set env: pythonLocation
|
|
|
|
Write-Host "`#`#[set-env name=pythonLocation;]$env:PYTHON" # old syntax https://github.com/actions/toolkit/issues/61
|
|
|
|
Write-Host "::set-env name=pythonLocation::$env:PYTHON" # new syntax https://github.com/actions/toolkit/blob/5bb77ec03fea98332e41f9347c8fbb1ce1e48f4a/docs/commands.md
|
|
|
|
New-Item -ItemType SymbolicLink -Path "$env:PYTHON\python.exe" -Target "$env:PYTHON\pypy3.exe"
|
|
|
|
curl -fsSL -o get-pip.py https://bootstrap.pypa.io/get-pip.py
|
2019-11-08 01:02:04 +03:00
|
|
|
$env:PATH = "$env:PYTHON\bin;$env:PATH"
|
2019-09-24 19:15:31 +03:00
|
|
|
& $env:PYTHON\python.exe get-pip.py
|
|
|
|
shell: pwsh
|
|
|
|
|
|
|
|
# sets env: pythonLocation
|
|
|
|
- name: Set up Python
|
|
|
|
if: "!contains(matrix.python-version, 'pypy')"
|
|
|
|
uses: actions/setup-python@v1
|
|
|
|
with:
|
|
|
|
python-version: ${{ matrix.python-version }}
|
|
|
|
architecture: ${{ matrix.architecture }}
|
2019-09-25 10:58:29 +03:00
|
|
|
|
2019-11-20 15:00:59 +03:00
|
|
|
- name: pip install wheel pytest pytest-cov
|
2019-09-25 10:58:29 +03:00
|
|
|
run: |
|
|
|
|
"%pythonLocation%\python.exe" -m pip install wheel pytest pytest-cov
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-10-14 23:22:21 +03:00
|
|
|
|
2019-09-23 14:47:45 +03:00
|
|
|
- name: Fetch dependencies
|
|
|
|
run: |
|
2019-11-20 22:45:30 +03:00
|
|
|
7z x ..\pillow-depends\nasm-2.14.02-win64.zip "-o$env:RUNNER_WORKSPACE\"
|
2019-09-27 11:18:32 +03:00
|
|
|
Write-Host "`#`#[add-path]$env:RUNNER_WORKSPACE\nasm-2.14.02"
|
|
|
|
Write-Host "::add-path::$env:RUNNER_WORKSPACE\nasm-2.14.02"
|
|
|
|
|
2019-11-20 22:45:30 +03:00
|
|
|
..\pillow-depends\gs950w32.exe /S
|
2019-11-08 01:23:59 +03:00
|
|
|
Write-Host "`#`#[add-path]C:\Program Files (x86)\gs\gs9.50\bin"
|
|
|
|
Write-Host "::add-path::C:\Program Files (x86)\gs\gs9.50\bin"
|
|
|
|
|
2019-09-24 19:15:31 +03:00
|
|
|
$env:PYTHON=$env:pythonLocation
|
2019-11-20 21:20:01 +03:00
|
|
|
xcopy ..\pillow-depends\*.zip $env:GITHUB_WORKSPACE\winbuild\
|
|
|
|
xcopy ..\pillow-depends\*.tar.gz $env:GITHUB_WORKSPACE\winbuild\
|
|
|
|
xcopy /s ..\pillow-depends\test_images\* $env:GITHUB_WORKSPACE\tests\images\
|
2019-09-23 14:47:45 +03:00
|
|
|
cd $env:GITHUB_WORKSPACE/winbuild/
|
|
|
|
python.exe $env:GITHUB_WORKSPACE\winbuild\build_dep.py
|
|
|
|
env:
|
|
|
|
EXECUTABLE: bin\python.exe
|
|
|
|
shell: pwsh
|
|
|
|
|
|
|
|
- name: Build dependencies / libjpeg
|
2019-10-01 21:32:38 +03:00
|
|
|
if: false
|
2019-09-23 14:47:45 +03:00
|
|
|
run: |
|
2019-10-01 21:32:38 +03:00
|
|
|
REM FIXME uses /MT not /MD, see makefile.vc and win32.mak for more info
|
|
|
|
|
2019-09-23 23:01:19 +03:00
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
2019-09-23 14:47:45 +03:00
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
|
|
|
cd /D %BUILD%\jpeg-9c
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-23 23:01:19 +03:00
|
|
|
echo on
|
2019-09-23 14:47:45 +03:00
|
|
|
nmake -nologo -f makefile.vc setup-vc6
|
|
|
|
nmake -nologo -f makefile.vc clean
|
2019-10-01 21:32:38 +03:00
|
|
|
nmake -nologo -f makefile.vc nodebug=1 libjpeg.lib cjpeg.exe djpeg.exe
|
2019-09-23 14:47:45 +03:00
|
|
|
copy /Y /B j*.h %INCLIB%
|
|
|
|
copy /Y /B *.lib %INCLIB%
|
2019-10-01 21:32:38 +03:00
|
|
|
copy /Y /B *.exe %INCLIB%
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-23 14:47:45 +03:00
|
|
|
|
2019-09-27 11:18:32 +03:00
|
|
|
- name: Build dependencies / libjpeg-turbo
|
|
|
|
run: |
|
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
|
|
|
cd /D %BUILD%\libjpeg-turbo-2.0.3
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-27 11:18:32 +03:00
|
|
|
echo on
|
|
|
|
set CMAKE=cmake.exe -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_RULE_MESSAGES:BOOL=OFF
|
2019-10-01 21:32:38 +03:00
|
|
|
set CMAKE=%CMAKE% -DENABLE_SHARED:BOOL=OFF -DWITH_JPEG8:BOOL=TRUE -DWITH_CRT_DLL:BOOL=TRUE -DCMAKE_BUILD_TYPE=Release
|
2019-09-27 11:18:32 +03:00
|
|
|
%CMAKE% -G "NMake Makefiles" .
|
|
|
|
nmake -nologo -f Makefile clean
|
2019-10-01 21:32:38 +03:00
|
|
|
nmake -nologo -f Makefile jpeg-static cjpeg-static djpeg-static
|
2019-09-27 11:18:32 +03:00
|
|
|
copy /Y /B j*.h %INCLIB%
|
|
|
|
copy /Y /B jpeg-static.lib %INCLIB%\libjpeg.lib
|
2019-10-01 21:32:38 +03:00
|
|
|
copy /Y /B cjpeg-static.exe %INCLIB%\cjpeg.exe
|
|
|
|
copy /Y /B djpeg-static.exe %INCLIB%\djpeg.exe
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-27 11:18:32 +03:00
|
|
|
|
2019-09-23 14:47:45 +03:00
|
|
|
- name: Build dependencies / zlib
|
|
|
|
run: |
|
2019-09-23 23:01:19 +03:00
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
2019-09-23 14:47:45 +03:00
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
|
|
|
cd /D %BUILD%\zlib-1.2.11
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-23 23:01:19 +03:00
|
|
|
echo on
|
2019-09-23 14:47:45 +03:00
|
|
|
nmake -nologo -f win32\Makefile.msc clean
|
2019-10-01 21:32:38 +03:00
|
|
|
nmake -nologo -f win32\Makefile.msc zlib.lib
|
2019-09-23 14:47:45 +03:00
|
|
|
copy /Y /B z*.h %INCLIB%
|
|
|
|
copy /Y /B *.lib %INCLIB%
|
|
|
|
copy /Y /B zlib.lib %INCLIB%\z.lib
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-23 14:47:45 +03:00
|
|
|
|
2019-09-25 12:28:52 +03:00
|
|
|
- name: Build dependencies / LibTIFF
|
2019-09-23 14:47:45 +03:00
|
|
|
run: |
|
2019-09-23 23:01:19 +03:00
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
2019-09-23 14:47:45 +03:00
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
2019-11-04 11:07:47 +03:00
|
|
|
cd /D %BUILD%\tiff-4.1.0
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-23 23:01:19 +03:00
|
|
|
echo on
|
2019-10-01 21:32:38 +03:00
|
|
|
copy %GITHUB_WORKSPACE%\winbuild\tiff.opt nmake.opt
|
2019-09-23 14:47:45 +03:00
|
|
|
nmake -nologo -f makefile.vc clean
|
|
|
|
nmake -nologo -f makefile.vc lib
|
|
|
|
copy /Y /B libtiff\tiff*.h %INCLIB%
|
|
|
|
copy /Y /B libtiff\*.dll %INCLIB%
|
|
|
|
copy /Y /B libtiff\*.lib %INCLIB%
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-23 14:47:45 +03:00
|
|
|
|
2019-09-25 12:28:52 +03:00
|
|
|
- name: Build dependencies / WebP
|
2019-09-23 14:47:45 +03:00
|
|
|
run: |
|
2019-09-23 23:01:19 +03:00
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
2019-09-23 14:47:45 +03:00
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
|
|
|
cd /D %BUILD%\libwebp-1.0.3
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-23 23:01:19 +03:00
|
|
|
echo on
|
2019-09-23 14:47:45 +03:00
|
|
|
rmdir /S /Q output\release-static
|
2019-10-01 21:32:38 +03:00
|
|
|
nmake -nologo -f Makefile.vc CFG=release-static OBJDIR=output ARCH=${{ matrix.architecture }} all
|
2019-09-23 14:47:45 +03:00
|
|
|
mkdir %INCLIB%\webp
|
|
|
|
copy /Y /B src\webp\*.h %INCLIB%\webp
|
2019-09-24 19:15:31 +03:00
|
|
|
copy /Y /B output\release-static\${{ matrix.architecture }}\lib\* %INCLIB%
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-24 09:41:30 +03:00
|
|
|
|
2019-09-25 12:28:52 +03:00
|
|
|
- name: Build dependencies / FreeType
|
2019-09-24 09:41:30 +03:00
|
|
|
run: |
|
|
|
|
REM Toolkit v100 not available; missing VCTargetsPath; Clean fails
|
|
|
|
|
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
|
|
|
cd /D %BUILD%\freetype-2.10.1
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-24 09:41:30 +03:00
|
|
|
echo on
|
|
|
|
rmdir /S /Q objs
|
2019-11-03 00:01:26 +03:00
|
|
|
set DefaultPlatformToolset=v142
|
|
|
|
set VCTargetsPath=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\
|
|
|
|
set MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe"
|
2019-10-01 21:32:38 +03:00
|
|
|
powershell -Command "(gc builds\windows\vc2010\freetype.vcxproj) -replace 'MultiThreaded<', 'MultiThreadedDLL<' | Out-File -encoding ASCII builds\windows\vc2010\freetype.vcxproj"
|
2019-09-26 11:10:37 +03:00
|
|
|
%MSBUILD% builds\windows\vc2010\freetype.sln /t:Build /p:Configuration="Release Static" /p:Platform=${{ matrix.platform-msbuild }} /m
|
2019-09-24 09:41:30 +03:00
|
|
|
xcopy /Y /E /Q include %INCLIB%
|
2019-09-26 11:10:37 +03:00
|
|
|
copy /Y /B "objs\${{ matrix.platform-msbuild }}\Release Static\freetype.lib" %INCLIB%
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-24 09:41:30 +03:00
|
|
|
|
2019-09-25 12:28:52 +03:00
|
|
|
- name: Build dependencies / LCMS2
|
2019-09-24 09:41:30 +03:00
|
|
|
run: |
|
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
2019-09-26 11:10:37 +03:00
|
|
|
cd /D %BUILD%\lcms2-2.8
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-24 09:41:30 +03:00
|
|
|
echo on
|
|
|
|
rmdir /S /Q Lib
|
|
|
|
rmdir /S /Q Projects\VC2015\Release
|
2019-11-03 00:01:26 +03:00
|
|
|
set VCTargetsPath=C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\VC\v160\
|
|
|
|
set MSBUILD="C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\MSBuild.exe"
|
2019-11-07 23:58:12 +03:00
|
|
|
powershell %GITHUB_WORKSPACE%\winbuild\lcms2_patch.ps1
|
2019-09-24 19:15:31 +03:00
|
|
|
%MSBUILD% Projects\VC2015\lcms2.sln /t:Clean;lcms2_static /p:Configuration="Release" /p:Platform=${{ matrix.platform-msbuild }} /m
|
2019-09-24 09:41:30 +03:00
|
|
|
xcopy /Y /E /Q include %INCLIB%
|
|
|
|
copy /Y /B Lib\MS\*.lib %INCLIB%
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-24 09:41:30 +03:00
|
|
|
|
2019-09-25 12:28:52 +03:00
|
|
|
- name: Build dependencies / OpenJPEG
|
2019-09-24 09:41:30 +03:00
|
|
|
run: |
|
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
|
|
|
cd /D %BUILD%\openjpeg-2.3.1msvcr10-x32
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-24 09:41:30 +03:00
|
|
|
echo on
|
2019-09-27 11:18:32 +03:00
|
|
|
set CMAKE=cmake.exe -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_RULE_MESSAGES:BOOL=OFF
|
2019-09-26 21:30:03 +03:00
|
|
|
set CMAKE=%CMAKE% -DBUILD_THIRDPARTY:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=OFF
|
2019-10-01 21:32:38 +03:00
|
|
|
set CMAKE=%CMAKE% -DCMAKE_BUILD_TYPE=Release
|
2019-09-27 11:18:32 +03:00
|
|
|
%CMAKE% -G "NMake Makefiles" .
|
2019-09-24 09:41:30 +03:00
|
|
|
nmake -nologo -f Makefile clean
|
|
|
|
nmake -nologo -f Makefile
|
|
|
|
mkdir %INCLIB%\openjpeg-2.3.1
|
|
|
|
copy /Y /B src\lib\openjp2\*.h %INCLIB%\openjpeg-2.3.1
|
|
|
|
copy /Y /B bin\*.lib %INCLIB%
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-24 09:41:30 +03:00
|
|
|
|
2019-09-27 13:37:54 +03:00
|
|
|
# GPL licensed; skip if building wheels
|
|
|
|
- name: Build dependencies / libimagequant
|
|
|
|
if: "github.event_name != 'push' || contains(matrix.python-version, 'pypy')"
|
|
|
|
run: |
|
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
|
|
|
rem ba653c8: Merge tag '2.12.5' into msvc
|
|
|
|
cd /D %BUILD%\libimagequant-ba653c8ccb34dde4e21c6076d85a72d21ed9d971
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-27 13:37:54 +03:00
|
|
|
echo on
|
2019-10-01 21:32:38 +03:00
|
|
|
echo (gc CMakeLists.txt) -replace 'add_library', "add_compile_options(-openmp-)`r`nadd_library" ^| Out-File -encoding ASCII CMakeLists.txt > patch.ps1
|
2019-09-27 13:37:54 +03:00
|
|
|
echo (gc CMakeLists.txt) -replace ' SHARED', ' STATIC' ^| Out-File -encoding ASCII CMakeLists.txt >> patch.ps1
|
|
|
|
powershell .\patch.ps1
|
|
|
|
set CMAKE=cmake.exe -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_RULE_MESSAGES:BOOL=OFF
|
|
|
|
set CMAKE=%CMAKE% -DCMAKE_BUILD_TYPE=Release
|
|
|
|
%CMAKE% -G "NMake Makefiles" .
|
|
|
|
nmake -nologo -f Makefile clean
|
|
|
|
nmake -nologo -f Makefile
|
|
|
|
copy /Y /B *.h %INCLIB%
|
|
|
|
copy /Y /B *.lib %INCLIB%
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-27 13:37:54 +03:00
|
|
|
|
2019-10-01 21:32:38 +03:00
|
|
|
# for Raqm
|
2019-09-30 02:04:26 +03:00
|
|
|
- name: Build dependencies / HarfBuzz
|
2019-09-29 23:39:18 +03:00
|
|
|
run: |
|
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
2019-09-30 11:37:46 +03:00
|
|
|
set INCLUDE=%INCLUDE%;%INCLIB%
|
|
|
|
set LIB=%LIB%;%INCLIB%
|
2019-09-29 23:39:18 +03:00
|
|
|
cd /D %BUILD%\harfbuzz-2.6.1
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-29 23:39:18 +03:00
|
|
|
echo on
|
|
|
|
set CMAKE=cmake.exe -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_RULE_MESSAGES:BOOL=OFF
|
2019-09-30 11:37:46 +03:00
|
|
|
set CMAKE=%CMAKE% -DHB_HAVE_FREETYPE:BOOL=ON -DCMAKE_BUILD_TYPE=Release
|
2019-09-29 23:39:18 +03:00
|
|
|
%CMAKE% -G "NMake Makefiles" .
|
|
|
|
nmake -nologo -f Makefile clean
|
|
|
|
nmake -nologo -f Makefile harfbuzz
|
|
|
|
copy /Y /B src\*.h %INCLIB%
|
|
|
|
copy /Y /B *.lib %INCLIB%
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-29 23:39:18 +03:00
|
|
|
|
2019-10-01 21:32:38 +03:00
|
|
|
# for Raqm
|
2019-09-30 02:04:26 +03:00
|
|
|
- name: Build dependencies / FriBidi
|
|
|
|
run: |
|
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
|
|
|
cd /D %BUILD%\fribidi-1.0.7
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-30 02:04:26 +03:00
|
|
|
echo on
|
|
|
|
copy /Y /B %GITHUB_WORKSPACE%\winbuild\fribidi.cmake CMakeLists.txt
|
|
|
|
set CMAKE=cmake.exe -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_RULE_MESSAGES:BOOL=OFF
|
|
|
|
set CMAKE=%CMAKE% -DCMAKE_BUILD_TYPE=Release
|
|
|
|
%CMAKE% -G "NMake Makefiles" .
|
|
|
|
nmake -nologo -f Makefile clean
|
|
|
|
nmake -nologo -f Makefile fribidi
|
|
|
|
copy /Y /B lib\*.h %INCLIB%
|
|
|
|
copy /Y /B *.lib %INCLIB%
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-29 23:39:18 +03:00
|
|
|
|
2019-09-30 11:37:46 +03:00
|
|
|
- name: Build dependencies / Raqm
|
|
|
|
run: |
|
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
set BUILD=%GITHUB_WORKSPACE%\winbuild\build
|
|
|
|
set INCLUDE=%INCLUDE%;%INCLIB%
|
|
|
|
set LIB=%LIB%;%INCLIB%
|
|
|
|
cd /D %BUILD%\libraqm-0.7.0
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-30 11:37:46 +03:00
|
|
|
echo on
|
|
|
|
copy /Y /B %GITHUB_WORKSPACE%\winbuild\raqm.cmake CMakeLists.txt
|
|
|
|
set CMAKE=cmake.exe -DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_RULE_MESSAGES:BOOL=OFF
|
|
|
|
set CMAKE=%CMAKE% -DCMAKE_BUILD_TYPE=Release
|
|
|
|
%CMAKE% -G "NMake Makefiles" .
|
|
|
|
nmake -nologo -f Makefile clean
|
|
|
|
nmake -nologo -f Makefile libraqm
|
|
|
|
copy /Y /B src\*.h %INCLIB%
|
|
|
|
copy /Y /B libraqm.dll %INCLIB%
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-30 11:37:46 +03:00
|
|
|
|
2019-09-23 23:01:19 +03:00
|
|
|
- name: Build Pillow
|
|
|
|
run: |
|
2019-09-24 19:15:31 +03:00
|
|
|
set PYTHON=%pythonLocation%
|
2019-09-23 23:01:19 +03:00
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
|
|
|
set MPLSRC=%GITHUB_WORKSPACE%
|
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
cd /D %GITHUB_WORKSPACE%
|
|
|
|
set LIB=%INCLIB%;%PYTHON%\tcl
|
|
|
|
set INCLUDE=%INCLIB%;%GITHUB_WORKSPACE%\depends\tcl86\include;%INCLUDE%
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-11-21 00:11:51 +03:00
|
|
|
set MSSdk=1
|
2019-11-07 20:26:04 +03:00
|
|
|
set DISTUTILS_USE_SDK=1
|
|
|
|
set py_vcruntime_redist=true
|
2019-09-26 21:30:03 +03:00
|
|
|
%PYTHON%\python.exe setup.py build_ext install
|
2019-11-08 01:23:59 +03:00
|
|
|
rem Add libraqm.dll (copied to INCLIB) to PATH.
|
2019-09-30 11:37:46 +03:00
|
|
|
path %INCLIB%;%PATH%
|
2019-09-25 10:58:29 +03:00
|
|
|
%PYTHON%\python.exe selftest.py --installed
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-10-14 23:22:21 +03:00
|
|
|
|
2019-11-02 10:57:40 +03:00
|
|
|
# failing with PyPy3
|
|
|
|
- name: Enable heap verification
|
|
|
|
if: "!contains(matrix.python-version, 'pypy')"
|
|
|
|
run: |
|
|
|
|
c:\"Program Files (x86)"\"Windows Kits"\10\Debuggers\x86\gflags.exe /p /enable %PYTHON%\python.exe
|
|
|
|
shell: cmd
|
|
|
|
|
2019-09-23 23:01:19 +03:00
|
|
|
- name: Test Pillow
|
2019-09-23 23:45:21 +03:00
|
|
|
run: |
|
2019-09-24 19:15:31 +03:00
|
|
|
set PYTHON=%pythonLocation%
|
2019-09-24 12:48:14 +03:00
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
2019-11-08 01:23:59 +03:00
|
|
|
rem Add libraqm.dll (copied to INCLIB) to PATH.
|
2019-09-24 12:48:14 +03:00
|
|
|
path %INCLIB%;%PATH%
|
2019-09-23 23:45:21 +03:00
|
|
|
cd /D %GITHUB_WORKSPACE%
|
2019-10-22 16:37:04 +03:00
|
|
|
%PYTHON%\python.exe -m pytest -vx --cov PIL --cov Tests --cov-report term --cov-report xml Tests
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-10-14 23:22:21 +03:00
|
|
|
|
2019-10-12 13:59:03 +03:00
|
|
|
- name: Upload errors
|
|
|
|
uses: actions/upload-artifact@v1
|
|
|
|
if: failure()
|
|
|
|
with:
|
|
|
|
name: errors
|
|
|
|
path: Tests/errors
|
|
|
|
|
2019-09-23 23:45:21 +03:00
|
|
|
- name: Upload coverage
|
2019-11-20 15:00:59 +03:00
|
|
|
if: success()
|
|
|
|
uses: codecov/codecov-action@v1
|
|
|
|
with:
|
|
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
|
|
name: ${{ runner.os }} Python ${{ matrix.python-version }}
|
2019-09-25 10:58:29 +03:00
|
|
|
|
|
|
|
- name: Build wheel
|
|
|
|
id: wheel
|
|
|
|
if: "github.event_name == 'push' && !contains(matrix.python-version, 'pypy')"
|
|
|
|
run: |
|
|
|
|
for /f "tokens=3 delims=/" %%a in ("${{ github.ref }}") do echo ##[set-output name=dist;]dist-%%a
|
|
|
|
for /f "tokens=3 delims=/" %%a in ("${{ github.ref }}") do echo ::set-output name=dist::dist-%%a
|
|
|
|
set PYTHON=%pythonLocation%
|
|
|
|
set INCLUDE=C:\Program Files (x86)\Microsoft SDKs\Windows\V7.1A\Include
|
|
|
|
set MPLSRC=%GITHUB_WORKSPACE%
|
|
|
|
set INCLIB=%GITHUB_WORKSPACE%\winbuild\depends\msvcr10-x32
|
|
|
|
cd /D %GITHUB_WORKSPACE%
|
|
|
|
set LIB=%INCLIB%;%PYTHON%\tcl
|
|
|
|
set INCLUDE=%INCLIB%;%GITHUB_WORKSPACE%\depends\tcl86\include;%INCLUDE%
|
2019-11-03 00:01:26 +03:00
|
|
|
call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" ${{ matrix.platform-vcvars }}
|
2019-09-26 21:30:03 +03:00
|
|
|
%PYTHON%\python.exe setup.py bdist_wheel
|
2019-10-25 14:16:51 +03:00
|
|
|
shell: cmd
|
2019-09-25 10:58:29 +03:00
|
|
|
|
|
|
|
- uses: actions/upload-artifact@v1
|
|
|
|
if: "github.event_name == 'push' && !contains(matrix.python-version, 'pypy')"
|
|
|
|
with:
|
|
|
|
name: ${{ steps.wheel.outputs.dist }}
|
|
|
|
path: dist
|