Commit 91a600e4 authored by xoviat's avatar xoviat Committed by GitHub
Browse files

Merge branch 'devel' into build_simple

parents 2a3bc85b 180f4f76
###################################################### ################################################
Utilities for building on travis-ci with OSX and Linux Utilities for building on Travis-CI and AppVeyor
###################################################### ################################################
A set of scripts to automate builds of OSX and manylinux1 wheels on travis-ci A set of scripts to automate builds of OSX and manylinux1 wheels on the
infrastructure. `Travis-CI <http://travis-ci.org/>`_ infrastructure, and also Windows
wheels on the `AppVeyor <https://ci.appveyor.com/>`_ infrastructure.
These scripts are designed to build *and test*: The TravisCI scripts are designed to build *and test*:
* Dual architecture OSX wheels; * Dual architecture OSX wheels;
* 64-bit manylinux1_x86_64 wheels, both narrow and wide unicode builds; * 64-bit ``manylinux1_x86_64`` wheels, both narrow and wide unicode builds;
* 32-bit manylinux1_i686 wheels, both narrow and wide unicode builds. * 32-bit ``manylinux1_i686`` wheels, both narrow and wide unicode builds.
You can currently build and test against Pythons 2.6, 2.7, 3.3, 3.4, 3.5, 3.6. You can currently build and test against Pythons 2.6, 2.7, 3.3, 3.4, 3.5, 3.6.
...@@ -17,6 +18,13 @@ The small innovation here is that you can test against 32-bit builds, and both ...@@ -17,6 +18,13 @@ The small innovation here is that you can test against 32-bit builds, and both
wide and narrow unicode Python 2 builds, which was not easy on the default wide and narrow unicode Python 2 builds, which was not easy on the default
travis-ci configurations. travis-ci configurations.
The AppVeyor setup is designed to build *and test*:
* 64-bit Windows ``win_amd64`` wheels;
* 32-bit Windows ``win32`` wheels.
You can currently build and test against Pythons 2.7, 3.4, 3.5, 3.6.
***************** *****************
How does it work? How does it work?
***************** *****************
...@@ -318,6 +326,19 @@ To use these scripts ...@@ -318,6 +326,19 @@ To use these scripts
* Make sure your project is set up to build on travis-ci, and you should now * Make sure your project is set up to build on travis-ci, and you should now
be ready (to begin the long slow debugging process, probably). be ready (to begin the long slow debugging process, probably).
* For the Windows wheels, create an ``appveyor.yml`` file, something like:
- https://github.com/MacPython/numpy-wheels/blob/master/appveyor.yml
- https://github.com/MacPython/astropy-wheels/blob/master/appveyor.yml
- https://github.com/MacPython/nipy-wheels/blob/master/appveyor.yml
- https://github.com/MacPython/pytables-wheels/blob/master/appveyor.yml
Note the Windows test customisations etc are inside ``appveyor.yml``,
and that ``config.sh`` is only for the Linux/Mac builds on TravisCI.
* Make sure your project is set up to build on appveyor, and you should now
be ready (for what could be another round of slow debugging).
If your project depends on numpy, you will want to build against the earliest If your project depends on numpy, you will want to build against the earliest
numpy that your project supports - see `forward, backward numpy compatibility numpy that your project supports - see `forward, backward numpy compatibility
......
...@@ -52,13 +52,14 @@ function build_simple { ...@@ -52,13 +52,14 @@ function build_simple {
local name=$1 local name=$1
local version=$2 local version=$2
local url=$3 local url=$3
local configure_args=${@:4} local ext=${4:-tar.gz}
local configure_args=${@:5}
if [ -e "${name}-stamp" ]; then if [ -e "${name}-stamp" ]; then
return return
fi fi
local name_version="${name}-${version}" local name_version="${name}-${version}"
local targz=${name_version}.tar.gz local archive=${name_version}.${ext}
fetch_unpack $url/$targz fetch_unpack $url/$archive
(cd $name_version \ (cd $name_version \
&& ./configure --prefix=$BUILD_PREFIX $configure_args \ && ./configure --prefix=$BUILD_PREFIX $configure_args \
&& make \ && make \
...@@ -144,7 +145,11 @@ function build_openjpeg { ...@@ -144,7 +145,11 @@ function build_openjpeg {
build_tiff build_tiff
build_lcms2 build_lcms2
local cmake=$(get_cmake) local cmake=$(get_cmake)
fetch_unpack https://github.com/uclouvain/openjpeg/archive/version.${OPENJPEG_VERSION}.tar.gz local archive_prefix="v"
if [ $(lex_ver $OPENJPEG_VERSION) -lt $(lex_ver 2.1.1) ]; then
archive_prefix="version."
fi
fetch_unpack https://github.com/uclouvain/openjpeg/archive/${archive_prefix}${OPENJPEG_VERSION}.tar.gz
(cd openjpeg-version.${OPENJPEG_VERSION} \ (cd openjpeg-version.${OPENJPEG_VERSION} \
&& $cmake -DCMAKE_INSTALL_PREFIX=$BUILD_PREFIX . \ && $cmake -DCMAKE_INSTALL_PREFIX=$BUILD_PREFIX . \
&& make install) && make install)
......
...@@ -12,15 +12,16 @@ GET_PIP_URL=https://bootstrap.pypa.io/get-pip.py ...@@ -12,15 +12,16 @@ GET_PIP_URL=https://bootstrap.pypa.io/get-pip.py
DOWNLOADS_SDIR=downloads DOWNLOADS_SDIR=downloads
WORKING_SDIR=working WORKING_SDIR=working
# As of 1 August 2017 - latest Python of each version with binary download # As of 15 October 2017 - latest Python of each version with binary download
# available. # available.
LATEST_2p7=2.7.13 # See: https://www.python.org/downloads/mac-osx/
LATEST_2p7=2.7.14
LATEST_2p6=2.6.6 LATEST_2p6=2.6.6
LATEST_3p2=3.2.5 LATEST_3p2=3.2.5
LATEST_3p3=3.3.5 LATEST_3p3=3.3.5
LATEST_3p4=3.4.4 LATEST_3p4=3.4.4
LATEST_3p5=3.5.3 LATEST_3p5=3.5.4
LATEST_3p6=3.6.2 LATEST_3p6=3.6.3
function check_python { function check_python {
......
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