diff options
| author | Alexey Borzenkov <snaury@gmail.com> | 2016-06-11 11:51:06 +0300 |
|---|---|---|
| committer | Alexey Borzenkov <snaury@gmail.com> | 2016-06-11 13:53:14 +0300 |
| commit | 3418621fb5a03ec5fa6e3be25d6a75af09d59e02 (patch) | |
| tree | 23b6cbe5b6b6b837c19f42627705dcd65f62d004 | |
| parent | c0c3734eabf6d2063ebd66cf2e1ebf7b3a5e1a4a (diff) | |
| download | greenlet-support-appveyor.tar.gz | |
Start building greenlet with appveyorsupport-appveyor
| -rw-r--r-- | appveyor.yml | 76 | ||||
| -rw-r--r-- | appveyor/run_with_env.cmd | 88 | ||||
| -rw-r--r-- | dev-requirements.txt | 2 |
3 files changed, 166 insertions, 0 deletions
diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..e5ed111 --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,76 @@ +version: 0.4.10.{build} +environment: + global: + # SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the + # /E:ON and /V:ON options are not enabled in the batch script intepreter + # See: http://stackoverflow.com/a/13751649/163740 + CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\appveyor\\run_with_env.cmd" + + matrix: + # http://www.appveyor.com/docs/installed-software#python + - PYTHON_ROOT: "C:\\Python26" + PYTHON_ARCH: "32" + PYTHON_VERSION: "2.6.x" + + - PYTHON_ROOT: "C:\\Python26-x64" + PYTHON_ARCH: "64" + PYTHON_VERSION: "2.6.x" + + - PYTHON_ROOT: "C:\\Python27" + PYTHON_ARCH: "32" + PYTHON_VERSION: "2.7.x" + + - PYTHON_ROOT: "C:\\Python27-x64" + PYTHON_ARCH: "64" + PYTHON_VERSION: "2.7.x" + + - PYTHON_ROOT: "C:\\Python33" + PYTHON_ARCH: "32" + PYTHON_VERSION: "3.3.x" + + - PYTHON_ROOT: "C:\\Python33-x64" + PYTHON_ARCH: "64" + PYTHON_VERSION: "3.3.x" + + - PYTHON_ROOT: "C:\\Python34" + PYTHON_ARCH: "32" + PYTHON_VERSION: "3.4.x" + + - PYTHON_ROOT: "C:\\Python34-x64" + PYTHON_ARCH: "64" + PYTHON_VERSION: "3.4.x" + + - PYTHON_ROOT: "C:\\Python35" + PYTHON_ARCH: "32" + PYTHON_VERSION: "3.5.x" + + - PYTHON_ROOT: "C:\\Python35-x64" + PYTHON_ARCH: "64" + PYTHON_VERSION: "3.5.x" + +install: + - "SET PATH=%PYTHON_ROOT%;%PYTHON_ROOT%\\Scripts;%PATH%" + - "python --version" + - "python -c \"import struct; print(struct.calcsize('P') * 8)\"" + + # Copy current pip.exe away, so the file is not locked on upgrade + - "copy %PYTHON_ROOT%\\Scripts\\pip.exe %PYTHON_ROOT%\\Scripts\\pip-old.exe" + + # Upgrade pip to the latest version + - "pip-old install --disable-pip-version-check --upgrade pip" + + # Install requirements for running tests and building artifacts + - "%CMD_IN_ENV% pip install --upgrade -r dev-requirements.txt" + +build_script: + - "%CMD_IN_ENV% python setup.py build" + +test_script: + - "%CMD_IN_ENV% python setup.py test" + +after_test: + - "%CMD_IN_ENV% python setup.py bdist_wheel" + - "%CMD_IN_ENV% python setup.py bdist_egg" + +artifacts: + - path: dist\* diff --git a/appveyor/run_with_env.cmd b/appveyor/run_with_env.cmd new file mode 100644 index 0000000..5da547c --- /dev/null +++ b/appveyor/run_with_env.cmd @@ -0,0 +1,88 @@ +:: To build extensions for 64 bit Python 3, we need to configure environment +:: variables to use the MSVC 2010 C++ compilers from GRMSDKX_EN_DVD.iso of: +:: MS Windows SDK for Windows 7 and .NET Framework 4 (SDK v7.1) +:: +:: To build extensions for 64 bit Python 2, we need to configure environment +:: variables to use the MSVC 2008 C++ compilers from GRMSDKX_EN_DVD.iso of: +:: MS Windows SDK for Windows 7 and .NET Framework 3.5 (SDK v7.0) +:: +:: 32 bit builds, and 64-bit builds for 3.5 and beyond, do not require specific +:: environment configurations. +:: +:: Note: this script needs to be run with the /E:ON and /V:ON flags for the +:: cmd interpreter, at least for (SDK v7.0) +:: +:: More details at: +:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows +:: http://stackoverflow.com/a/13751649/163740 +:: +:: Author: Olivier Grisel +:: License: CC0 1.0 Universal: http://creativecommons.org/publicdomain/zero/1.0/ +:: +:: Notes about batch files for Python people: +:: +:: Quotes in values are literally part of the values: +:: SET FOO="bar" +:: FOO is now five characters long: " b a r " +:: If you don't want quotes, don't include them on the right-hand side. +:: +:: The CALL lines at the end of this file look redundant, but if you move them +:: outside of the IF clauses, they do not run properly in the SET_SDK_64==Y +:: case, I don't know why. +@ECHO OFF + +SET COMMAND_TO_RUN=%* +SET WIN_SDK_ROOT=C:\Program Files\Microsoft SDKs\Windows +SET WIN_WDK=c:\Program Files (x86)\Windows Kits\10\Include\wdf + +:: Extract the major and minor versions, and allow for the minor version to be +:: more than 9. This requires the version number to have two dots in it. +SET MAJOR_PYTHON_VERSION=%PYTHON_VERSION:~0,1% +IF "%PYTHON_VERSION:~3,1%" == "." ( + SET MINOR_PYTHON_VERSION=%PYTHON_VERSION:~2,1% +) ELSE ( + SET MINOR_PYTHON_VERSION=%PYTHON_VERSION:~2,2% +) + +:: Based on the Python version, determine what SDK version to use, and whether +:: to set the SDK for 64-bit. +IF %MAJOR_PYTHON_VERSION% == 2 ( + SET WINDOWS_SDK_VERSION="v7.0" + SET SET_SDK_64=Y +) ELSE ( + IF %MAJOR_PYTHON_VERSION% == 3 ( + SET WINDOWS_SDK_VERSION="v7.1" + IF %MINOR_PYTHON_VERSION% LEQ 4 ( + SET SET_SDK_64=Y + ) ELSE ( + SET SET_SDK_64=N + IF EXIST "%WIN_WDK%" ( + :: See: https://connect.microsoft.com/VisualStudio/feedback/details/1610302/ + REN "%WIN_WDK%" 0wdf + ) + ) + ) ELSE ( + ECHO Unsupported Python version: "%MAJOR_PYTHON_VERSION%" + EXIT 1 + ) +) + +IF %PYTHON_ARCH% == 64 ( + IF %SET_SDK_64% == Y ( + ECHO Configuring Windows SDK %WINDOWS_SDK_VERSION% for Python %MAJOR_PYTHON_VERSION% on a 64 bit architecture + SET DISTUTILS_USE_SDK=1 + SET MSSdk=1 + "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Setup\WindowsSdkVer.exe" -q -version:%WINDOWS_SDK_VERSION% + "%WIN_SDK_ROOT%\%WINDOWS_SDK_VERSION%\Bin\SetEnv.cmd" /x64 /release + ECHO Executing: %COMMAND_TO_RUN% + call %COMMAND_TO_RUN% || EXIT 1 + ) ELSE ( + ECHO Using default MSVC build environment for 64 bit architecture + ECHO Executing: %COMMAND_TO_RUN% + call %COMMAND_TO_RUN% || EXIT 1 + ) +) ELSE ( + ECHO Using default MSVC build environment for 32 bit architecture + ECHO Executing: %COMMAND_TO_RUN% + call %COMMAND_TO_RUN% || EXIT 1 +) diff --git a/dev-requirements.txt b/dev-requirements.txt new file mode 100644 index 0000000..0a8547b --- /dev/null +++ b/dev-requirements.txt @@ -0,0 +1,2 @@ +setuptools +wheel |
