summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorINADA Naoki <methane@users.noreply.github.com>2016-05-03 11:58:28 +0900
committerINADA Naoki <songofacandy@gmail.com>2016-07-21 19:18:48 +0900
commitd6254abc8a3ebec6a135b923951767bd97557de4 (patch)
tree121cfd7aca79e93d094baaf07f86101de0acd471
parent1f8240eaf65b28e93621a8e35f1078d4292047f1 (diff)
downloadmsgpack-python-d6254abc8a3ebec6a135b923951767bd97557de4.tar.gz
Use AppVeyor to build windows wheel (#188)
* Add AppVeyor support to build windows wheel * Fix test_limits on 32bit environments * Ignore Python35-x64 test fail for now Should be fixed in next version.
-rw-r--r--appveyor.yml57
-rw-r--r--build.cmd21
-rw-r--r--msgpack/_packer.pyx4
3 files changed, 80 insertions, 2 deletions
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000..02b4461
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,57 @@
+environment:
+
+ matrix:
+
+ # For Python versions available on Appveyor, see
+ # http://www.appveyor.com/docs/installed-software#python
+ # The list here is complete (excluding Python 2.6, which
+ # isn't covered by this document) at the time of writing.
+
+ - PYTHON: "C:\\Python27"
+ - PYTHON: "C:\\Python34"
+ - PYTHON: "C:\\Python35"
+ - PYTHON: "C:\\Python27-x64"
+ - PYTHON: "C:\\Python34-x64"
+ DISTUTILS_USE_SDK: "1"
+
+ # Python35-x64 test fails with MemoryError
+ # TODO: investigate it
+ #- PYTHON: "C:\\Python35-x64"
+
+install:
+ # We need wheel installed to build wheels
+ - "%PYTHON%\\python.exe -m pip install -U pip wheel pytest cython"
+
+build: off
+
+test_script:
+ # Put your test command here.
+ # If you don't need to build C extensions on 64-bit Python 3.3 or 3.4,
+ # you can remove "build.cmd" from the front of the command, as it's
+ # only needed to support those cases.
+ # Note that you must use the environment variable %PYTHON% to refer to
+ # the interpreter you're using - Appveyor does not do anything special
+ # to put the Python evrsion you want to use on PATH.
+ - "build.cmd %PYTHON%\\python.exe setup.py build_ext -i"
+ - "build.cmd %PYTHON%\\python.exe setup.py install"
+ - "%PYTHON%\\python.exe -c \"import sys; print(hex(sys.maxsize))\""
+ - "%PYTHON%\\python.exe -c \"from msgpack import _packer, _unpacker\""
+ - "%PYTHON%\\Scripts\\py.test test"
+ - "build.cmd %PYTHON%\\python.exe setup.py bdist_wheel"
+
+after_test:
+ # This step builds your wheels.
+ # Again, you only need build.cmd if you're building C extensions for
+ # 64-bit Python 3.3/3.4. And you need to use %PYTHON% to get the correct
+ # interpreter
+
+artifacts:
+ # bdist_wheel puts your built wheel in the dist directory
+ - path: dist\*
+
+#on_success:
+# You can use this step to upload your artifacts to a public website.
+# See Appveyor's documentation for more details. Or you can simply
+# access your wheels from the Appveyor "artifacts" tab for your build.
+
+# vim: set shiftwidth=2
diff --git a/build.cmd b/build.cmd
new file mode 100644
index 0000000..243dc9a
--- /dev/null
+++ b/build.cmd
@@ -0,0 +1,21 @@
+@echo off
+:: 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
+::
+:: More details at:
+:: https://github.com/cython/cython/wiki/64BitCythonExtensionsOnWindows
+
+IF "%DISTUTILS_USE_SDK%"=="1" (
+ ECHO Configuring environment to build with MSVC on a 64bit architecture
+ ECHO Using Windows SDK 7.1
+ "C:\Program Files\Microsoft SDKs\Windows\v7.1\Setup\WindowsSdkVer.exe" -q -version:v7.1
+ CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64 /release
+ SET MSSdk=1
+ REM Need the following to allow tox to see the SDK compiler
+ SET TOX_TESTENV_PASSENV=DISTUTILS_USE_SDK MSSdk INCLUDE LIB
+) ELSE (
+ ECHO Using default MSVC build environment
+)
+
+CALL %*
diff --git a/msgpack/_packer.pyx b/msgpack/_packer.pyx
index 6392655..872465b 100644
--- a/msgpack/_packer.pyx
+++ b/msgpack/_packer.pyx
@@ -244,7 +244,7 @@ cdef class Packer(object):
msgpack_pack_ext(&self.pk, typecode, len(data))
msgpack_pack_raw_body(&self.pk, data, len(data))
- def pack_array_header(self, size_t size):
+ def pack_array_header(self, long long size):
if size > (2**32-1):
raise ValueError
cdef int ret = msgpack_pack_array(&self.pk, size)
@@ -257,7 +257,7 @@ cdef class Packer(object):
self.pk.length = 0
return buf
- def pack_map_header(self, size_t size):
+ def pack_map_header(self, long long size):
if size > (2**32-1):
raise ValueError
cdef int ret = msgpack_pack_map(&self.pk, size)