Commit 92bc5c93 authored by Jason Madden's avatar Jason Madden

Configure only the required files on pypy.

parent e02b0650
environment: environment:
global: global:
# SDK v7.0 MSVC Express 2008's SetEnv.cmd script will fail if the # 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 # /E:ON and /V:ON options are not enabled in the batch script intepreter
# See: http://stackoverflow.com/a/13751649/163740 # See: http://stackoverflow.com/a/13751649/163740
CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\appveyor\\run_with_env.cmd" CMD_IN_ENV: "cmd /E:ON /V:ON /C .\\appveyor\\run_with_env.cmd"
matrix: matrix:
# Pre-installed Python versions, which Appveyor may upgrade to # Pre-installed Python versions, which Appveyor may upgrade to
# a later point release. # a later point release.
- PYTHON: "C:\\pypy-4.0.1-win32" - PYTHON: "C:\\pypy-4.0.1-win32"
PYTHON_ID: "pypy" PYTHON_ID: "pypy"
PYTHON_EXE: pypy PYTHON_EXE: pypy
PYTHON_VERSION: "2.7.x" PYTHON_VERSION: "2.7.x"
PYTHON_ARCH: "32" PYTHON_ARCH: "32"
- PYTHON: "C:\\Python35" - PYTHON: "C:\\Python35"
PYTHON_VERSION: "3.5.x" # currently 3.5.0 PYTHON_VERSION: "3.5.x" # currently 3.5.0
PYTHON_ARCH: "32" PYTHON_ARCH: "32"
PYTHON_EXE: python PYTHON_EXE: python
# - PYTHON: "C:\\Python27-x64" # - PYTHON: "C:\\Python27-x64"
# PYTHON_VERSION: "2.7.x" # currently 2.7.9 # PYTHON_VERSION: "2.7.x" # currently 2.7.9
# PYTHON_ARCH: "64" # PYTHON_ARCH: "64"
# PYTHON_EXE: python # PYTHON_EXE: python
# - PYTHON: "C:\\Python35-x64" # - PYTHON: "C:\\Python35-x64"
# PYTHON_VERSION: "3.5.x" # currently 3.5.0 # PYTHON_VERSION: "3.5.x" # currently 3.5.0
# PYTHON_ARCH: "64" # PYTHON_ARCH: "64"
# PYTHON_EXE: python # PYTHON_EXE: python
# - PYTHON: "C:\\Python27" # - PYTHON: "C:\\Python27"
# PYTHON_VERSION: "2.7.x" # currently 2.7.9 # PYTHON_VERSION: "2.7.x" # currently 2.7.9
# PYTHON_ARCH: "32" # PYTHON_ARCH: "32"
# PYTHON_EXE: python # PYTHON_EXE: python
#- PYTHON: "C:\\Python33" #- PYTHON: "C:\\Python33"
# PYTHON_VERSION: "3.3.x" # currently 3.3.5 # PYTHON_VERSION: "3.3.x" # currently 3.3.5
# PYTHON_ARCH: "32" # PYTHON_ARCH: "32"
# PYTHON_EXE: python # PYTHON_EXE: python
#- PYTHON: "C:\\Python33-x64" #- PYTHON: "C:\\Python33-x64"
# PYTHON_VERSION: "3.3.x" # currently 3.3.5 # PYTHON_VERSION: "3.3.x" # currently 3.3.5
# PYTHON_ARCH: "64" # PYTHON_ARCH: "64"
# PYTHON_EXE: python # PYTHON_EXE: python
# - PYTHON: "C:\\Python34" # - PYTHON: "C:\\Python34"
# PYTHON_VERSION: "3.4.x" # currently 3.4.3 # PYTHON_VERSION: "3.4.x" # currently 3.4.3
# PYTHON_ARCH: "32" # PYTHON_ARCH: "32"
# PYTHON_EXE: python # PYTHON_EXE: python
# - PYTHON: "C:\\Python34-x64" # - PYTHON: "C:\\Python34-x64"
# PYTHON_VERSION: "3.4.x" # currently 3.4.3 # PYTHON_VERSION: "3.4.x" # currently 3.4.3
# PYTHON_ARCH: "64" # PYTHON_ARCH: "64"
# PYTHON_EXE: python # PYTHON_EXE: python
# Also test a Python version not pre-installed # Also test a Python version not pre-installed
# See: https://github.com/ogrisel/python-appveyor-demo/issues/10 # See: https://github.com/ogrisel/python-appveyor-demo/issues/10
# - PYTHON: "C:\\Python266" # - PYTHON: "C:\\Python266"
# PYTHON_VERSION: "2.6.6" # PYTHON_VERSION: "2.6.6"
# PYTHON_ARCH: "32" # PYTHON_ARCH: "32"
# PYTHON_EXE: python # PYTHON_EXE: python
install: install:
- ECHO "Filesystem root:" - ECHO "Filesystem root:"
- ps: "ls \"C:/\"" - ps: "ls \"C:/\""
- ECHO "Installed SDKs:" - ECHO "Installed SDKs:"
- ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\"" - ps: "ls \"C:/Program Files/Microsoft SDKs/Windows\""
# Install Python (from the official .msi of http://python.org) and pip when # Install Python (from the official .msi of http://python.org) and pip when
# not already installed. # not already installed.
# PyPy portion based on https://github.com/wbond/asn1crypto/blob/master/appveyor.yml # PyPy portion based on https://github.com/wbond/asn1crypto/blob/master/appveyor.yml
- ps: - ps:
$env:PYTMP = "${env:TMP}\py"; $env:PYTMP = "${env:TMP}\py";
if (!(Test-Path "$env:PYTMP")) { if (!(Test-Path "$env:PYTMP")) {
New-Item -ItemType directory -Path "$env:PYTMP" | Out-Null; New-Item -ItemType directory -Path "$env:PYTMP" | Out-Null;
} }
if ("${env:PYTHON_ID}" -eq "pypy") { if ("${env:PYTHON_ID}" -eq "pypy") {
if (!(Test-Path "${env:PYTMP}\pypy-4.0.1-win32.zip")) { if (!(Test-Path "${env:PYTMP}\pypy-4.0.1-win32.zip")) {
(New-Object Net.WebClient).DownloadFile('https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-win32.zip', "${env:PYTMP}\pypy-4.0.1-win32.zip"); (New-Object Net.WebClient).DownloadFile('https://bitbucket.org/pypy/pypy/downloads/pypy-4.0.1-win32.zip', "${env:PYTMP}\pypy-4.0.1-win32.zip");
} }
7z x -y "${env:PYTMP}\pypy-4.0.1-win32.zip" -oC:\ | Out-Null; 7z x -y "${env:PYTMP}\pypy-4.0.1-win32.zip" -oC:\ | Out-Null;
if (!(Test-Path "${env:PYTMP}\get-pip.py")) { if (!(Test-Path "${env:PYTMP}\get-pip.py")) {
(New-Object Net.WebClient).DownloadFile('https://bootstrap.pypa.io/get-pip.py', "${env:PYTMP}\get-pip.py"); (New-Object Net.WebClient).DownloadFile('https://bootstrap.pypa.io/get-pip.py', "${env:PYTMP}\get-pip.py");
} }
& "${env:PYTHON}\pypy.exe" "${env:PYTMP}\get-pip.py"; & "${env:PYTHON}\pypy.exe" "${env:PYTMP}\get-pip.py";
} }
elseif (-not(Test-Path($env:PYTHON))) { elseif (-not(Test-Path($env:PYTHON))) {
& appveyor\install.ps1; & appveyor\install.ps1;
} }
# Prepend newly installed Python to the PATH of this build (this cannot be # Prepend newly installed Python to the PATH of this build (this cannot be
# done from inside the powershell script as it would require to restart # done from inside the powershell script as it would require to restart
# the parent CMD process). # the parent CMD process).
- "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PYTHON%\\bin;%PATH%" - "SET PATH=%PYTHON%;%PYTHON%\\Scripts;%PYTHON%\\bin;%PATH%"
- "SET PYEXE=%PYTHON%\\%PYTHON_EXE%.exe" - "SET PYEXE=%PYTHON%\\%PYTHON_EXE%.exe"
# Check that we have the expected version and architecture for Python # Check that we have the expected version and architecture for Python
- "%PYEXE% --version" - "%PYEXE% --version"
- "%PYEXE% -c \"import struct; print(struct.calcsize('P') * 8)\"" - "%PYEXE% -c \"import struct; print(struct.calcsize('P') * 8)\""
# Install the build dependencies of the project. If some dependencies contain # Install the build dependencies of the project. If some dependencies contain
# compiled extensions and are not provided as pre-built wheel packages, # compiled extensions and are not provided as pre-built wheel packages,
# pip will build them from source using the MSVC compiler matching the # pip will build them from source using the MSVC compiler matching the
# target Python version and architecture # target Python version and architecture
- "%CMD_IN_ENV% pip install -U cython greenlet" - "%CMD_IN_ENV% pip install -U cython greenlet"
- ps: "if(Test-Path(\"${env:PYTHON}\\bin\")) {ls ${env:PYTHON}\\bin;}" - ps: "if(Test-Path(\"${env:PYTHON}\\bin\")) {ls ${env:PYTHON}\\bin;}"
- ps: "if(Test-Path(\"${env:PYTHON}\\Scripts\")) {ls ${env:PYTHON}\\Scripts;}" - ps: "if(Test-Path(\"${env:PYTHON}\\Scripts\")) {ls ${env:PYTHON}\\Scripts;}"
# XXX: Most of this is a copy of the Makefile. Remember to update. # XXX: Most of this is a copy of the Makefile. Remember to update.
- cmd: - cmd:
IF "%PYTHON_EXE%" == "python" ( IF "%PYTHON_EXE%" == "python" (
"%PYEXE% util/cythonpp.py -o gevent.corecext.c gevent/core.ppyx" %PYEXE% util/cythonpp.py -o gevent.corecext.c gevent/core.ppyx
"type gevent\\callbacks.c >> gevent.corecext.c" type gevent\\callbacks.c >> gevent.corecext.c
"move gevent.corecext.* gevent" move gevent.corecext.* gevent
"cython -o gevent.ares.c gevent/ares.pyx" )
"move gevent.ares.* gevent" cython -o gevent.ares.c gevent/ares.pyx
"move gevent\\_semaphore.pyx gevent\\_semaphore.py" move gevent.ares.* gevent
"cython -o gevent._semaphore.c gevent/_semaphore.py" move gevent\\_semaphore.pyx gevent\\_semaphore.py
"move gevent._semaphore.* gevent" cython -o gevent._semaphore.c gevent/_semaphore.py
"del gevent\\_semaphore.py" move gevent._semaphore.* gevent
"cython -o gevent._util.c gevent/_util.pyx" del gevent\\_semaphore.py
"move gevent._util.* gevent" cython -o gevent._util.c gevent/_util.pyx
) move gevent._util.* gevent
cache: cache:
- "%TMP%\\py\\" - "%TMP%\\py\\"
build: false # Not a C# project, build stuff at the test step instead. build: false # Not a C# project, build stuff at the test step instead.
test_script: test_script:
# Build the compiled extension and run the project tests # Build the compiled extension and run the project tests
- "%CMD_IN_ENV% %PYEXE% setup.py develop" - "%CMD_IN_ENV% %PYEXE% setup.py develop"
- "cd greentest && %PYEXE% testrunner.py --config ../known_failures.py && cd .." - "cd greentest && %PYEXE% testrunner.py --config ../known_failures.py && cd .."
after_test: after_test:
# If tests are successful, create a whl package for the project. # If tests are successful, create a whl package for the project.
- "%CMD_IN_ENV% pip install -U wheel" - "%CMD_IN_ENV% pip install -U wheel"
- "%CMD_IN_ENV% %PYEXE% setup.py bdist_wheel bdist_wininst" - "%CMD_IN_ENV% %PYEXE% setup.py bdist_wheel bdist_wininst"
- ps: "ls dist" - ps: "ls dist"
artifacts: artifacts:
# Archive the generated wheel package in the ci.appveyor.com build report. # Archive the generated wheel package in the ci.appveyor.com build report.
- path: dist\* - path: dist\*
#on_success: #on_success:
# - TODO: upload the content of dist/*.whl to a public wheelhouse # - TODO: upload the content of dist/*.whl to a public wheelhouse
# #
...@@ -227,8 +227,13 @@ _watcher_types = [ ...@@ -227,8 +227,13 @@ _watcher_types = [
'ev_timer', 'ev_timer',
] ]
_source = """ // passed to the real C compiler _source = """
// passed to the real C compiler
#define LIBEV_EMBED 1 #define LIBEV_EMBED 1
#ifdef _WIN32
#define EV_STANDALONE 1
#endif
#include "libev_vfd.h" #include "libev_vfd.h"
#include "libev.h" #include "libev.h"
......
...@@ -340,7 +340,8 @@ elif PYPY: ...@@ -340,7 +340,8 @@ elif PYPY:
# XXX ugly - need to find a better way # XXX ugly - need to find a better way
system('cp -r libev gevent/libev') system('cp -r libev gevent/libev')
system('touch gevent/libev/__init__.py') system('touch gevent/libev/__init__.py')
system('cd gevent/libev && ./configure > configure_output.txt') if sys.platform != 'win32':
system('cd gevent/libev && ./configure > configure_output.txt')
# XXX: Note that we're NOT adding the distutils extension module, but # XXX: Note that we're NOT adding the distutils extension module, but
# doing so compiles the module already: import gevent._corecffi_build # doing so compiles the module already: import gevent._corecffi_build
# imports gevent, which imports the hub, which imports the core, # imports gevent, which imports the hub, which imports the core,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment