mirror of
https://github.com/python-pillow/Pillow.git
synced 2024-12-29 03:16:18 +03:00
224 lines
6.3 KiB
Bash
Executable File
224 lines
6.3 KiB
Bash
Executable File
# Travis install
|
|
# source this script to run the install on travis OSX workers
|
|
|
|
# Get needed utilities
|
|
source terryfy/travis_tools.sh
|
|
|
|
# Package versions / URLs for fresh source builds (MacPython only)
|
|
PKG_CONFIG_VERSION=0.28
|
|
FT_BASE_URL=http://sourceforge.net/projects/freetype/files/freetype2
|
|
FT_VERSION="2.5.3"
|
|
PNG_BASE_URL=http://downloads.sourceforge.net/project/libpng/libpng16
|
|
PNG_VERSION="1.6.12"
|
|
TCL_VERSION="8.5.14.0"
|
|
TCL_RELEASE_DMG="http://downloads.activestate.com/ActiveTcl/releases/$TCL_VERSION/ActiveTcl$TCL_VERSION.296777-macosx10.5-i386-x86_64-threaded.dmg"
|
|
XQ_BASE_URL=http://xquartz.macosforge.org/downloads/SL
|
|
XQUARTZ_VERSION="2.7.4"
|
|
JPEG_URL=http://www.ijg.org/files
|
|
JPEG_VERSION=9a
|
|
OPENJPEG_VERSION=2.0.0
|
|
TIFF_URL=ftp://ftp.remotesensing.org/pub/libtiff
|
|
TIFF_VERSION=4.0.3
|
|
LCMS_VERSION=2.6
|
|
WEBP_VERSION=0.4.0
|
|
|
|
# Compiler defaults
|
|
SYS_CC=clang
|
|
SYS_CXX=clang++
|
|
ARCH_FLAGS="-arch i386 -arch x86_64"
|
|
MACOSX_DEPLOYMENT_TARGET='10.6'
|
|
|
|
|
|
function check_version {
|
|
if [ -z "$version" ]; then
|
|
echo "Need version"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
|
|
function check_var {
|
|
if [ -z "$1" ]; then
|
|
echo "Undefined required variable"
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
|
|
function init_vars {
|
|
SRC_PREFIX=$PWD/working
|
|
BUILD_PREFIX=$PWD/build
|
|
export PATH=$BUILD_PREFIX/bin:$PATH
|
|
export CPATH=$BUILD_PREFIX/include
|
|
export LIBRARY_PATH=$BUILD_PREFIX/lib
|
|
}
|
|
|
|
|
|
function clean_builds {
|
|
check_var $SRC_PREFIX
|
|
check_var $BUILD_PREFIX
|
|
rm -rf $SRC_PREFIX
|
|
mkdir $SRC_PREFIX
|
|
rm -rf $BUILD_PREFIX
|
|
mkdir $BUILD_PREFIX
|
|
cd Pillow
|
|
git clean -fxd
|
|
git reset --hard
|
|
cd ..
|
|
}
|
|
|
|
|
|
function install_pkg_config {
|
|
check_var $PKG_CONFIG_VERSION
|
|
check_var $SRC_PREFIX
|
|
check_var $BUILD_PREFIX
|
|
local archive_path="archives/pkg-config-${PKG_CONFIG_VERSION}.tar.gz"
|
|
tar zxvf $archive_path -C $SRC_PREFIX
|
|
cd $SRC_PREFIX/pkg-config-$PKG_CONFIG_VERSION
|
|
require_success "Failed to cd to pkg-config directory"
|
|
./configure --prefix=$BUILD_PREFIX --with-internal-glib
|
|
make
|
|
make install
|
|
require_success "Failed to install pkg-config $version"
|
|
cd ../..
|
|
}
|
|
|
|
|
|
function install_tkl_85 {
|
|
curl $TCL_RELEASE_DMG > ActiveTCL.dmg
|
|
require_success "Failed to download TCL $TCL_VERSION"
|
|
hdiutil attach ActiveTCL.dmg -mountpoint /Volumes/ActiveTcl
|
|
sudo installer -pkg /Volumes/ActiveTcl/ActiveTcl-8.5.pkg -target /
|
|
require_success "Failed to install ActiveTcl $TCL_VERSION"
|
|
}
|
|
|
|
|
|
function install_jpeg {
|
|
check_var $JPEG_VERSION
|
|
check_var $SRC_PREFIX
|
|
check_var $BUILD_PREFIX
|
|
local archive_path="archives/jpegsrc.v${JPEG_VERSION}.tar.gz"
|
|
tar zxvf $archive_path -C $SRC_PREFIX
|
|
cd $SRC_PREFIX/jpeg-$JPEG_VERSION
|
|
require_success "Failed to cd to jpeg directory"
|
|
CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure --prefix=$BUILD_PREFIX
|
|
make
|
|
make install
|
|
require_success "Failed to install jpeg $version"
|
|
cd ../..
|
|
}
|
|
|
|
|
|
function install_openjpeg {
|
|
check_var $OPENJPEG_VERSION
|
|
check_var $SRC_PREFIX
|
|
check_var $BUILD_PREFIX
|
|
local archive_path="archives/openjpeg-${OPENJPEG_VERSION}.tar.gz"
|
|
tar zxvf $archive_path -C $SRC_PREFIX
|
|
cd $SRC_PREFIX/openjpeg-$OPENJPEG_VERSION
|
|
require_success "Failed to cd to openjpeg directory"
|
|
CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS \
|
|
CMAKE_INCLUDE_PATH=$CPATH \
|
|
CMAKE_LIBRARY_PATH=$LIBRARY_PATH \
|
|
cmake -DCMAKE_INSTALL_PREFIX:PATH=$BUILD_PREFIX .
|
|
make
|
|
make install
|
|
require_success "Failed to install openjpeg $version"
|
|
cd ../..
|
|
}
|
|
|
|
|
|
function install_tiff {
|
|
check_var $TIFF_VERSION
|
|
check_var $SRC_PREFIX
|
|
check_var $BUILD_PREFIX
|
|
local archive_path="archives/tiff-${TIFF_VERSION}.tar.gz"
|
|
tar zxvf $archive_path -C $SRC_PREFIX
|
|
cd $SRC_PREFIX/tiff-$TIFF_VERSION
|
|
require_success "Failed to cd to tiff directory"
|
|
CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure --prefix=$BUILD_PREFIX
|
|
make
|
|
make install
|
|
require_success "Failed to install tiff $version"
|
|
cd ../..
|
|
}
|
|
|
|
|
|
function install_libpng {
|
|
check_var $PNG_VERSION
|
|
check_var $SRC_PREFIX
|
|
check_var $BUILD_PREFIX
|
|
local archive_path="archives/libpng-${PNG_VERSION}.tar.gz"
|
|
tar zxvf $archive_path -C $SRC_PREFIX
|
|
cd $SRC_PREFIX/libpng-$PNG_VERSION
|
|
require_success "Failed to cd to png directory"
|
|
CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure --prefix=$BUILD_PREFIX
|
|
make
|
|
make install
|
|
require_success "Failed to install png $version"
|
|
cd ../..
|
|
}
|
|
|
|
|
|
function install_freetype {
|
|
check_var $FT_VERSION
|
|
check_var $SRC_PREFIX
|
|
check_var $BUILD_PREFIX
|
|
local archive_path="archives/freetype-${FT_VERSION}.tar.gz"
|
|
tar zxvf $archive_path -C $SRC_PREFIX
|
|
cd $SRC_PREFIX/freetype-$FT_VERSION
|
|
require_success "Failed to cd to freetype directory"
|
|
CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure --prefix=$BUILD_PREFIX
|
|
make
|
|
make install
|
|
require_success "Failed to install freetype $version"
|
|
cd ../..
|
|
}
|
|
|
|
|
|
function install_lcms2 {
|
|
check_var $LCMS_VERSION
|
|
check_var $SRC_PREFIX
|
|
check_var $BUILD_PREFIX
|
|
local archive_path="archives/lcms2-${LCMS_VERSION}.tar.gz"
|
|
tar zxvf $archive_path -C $SRC_PREFIX
|
|
cd $SRC_PREFIX/lcms2-$LCMS_VERSION
|
|
require_success "Failed to cd to lcms2 directory"
|
|
CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure --prefix=$BUILD_PREFIX
|
|
make
|
|
make install
|
|
require_success "Failed to install lcms $version"
|
|
cd ../..
|
|
}
|
|
|
|
|
|
function install_webp {
|
|
check_var $WEBP_VERSION
|
|
check_var $SRC_PREFIX
|
|
check_var $BUILD_PREFIX
|
|
local archive_path="archives/libwebp-${WEBP_VERSION}.tar.gz"
|
|
tar zxvf $archive_path -C $SRC_PREFIX
|
|
cd $SRC_PREFIX/libwebp-$WEBP_VERSION
|
|
require_success "Failed to cd to libwebp directory"
|
|
CC=${SYS_CC} CXX=${SYS_CXX} CFLAGS=$ARCH_FLAGS ./configure \
|
|
--enable-libwebpmux \
|
|
--enable-libwebpdemux \
|
|
--prefix=$BUILD_PREFIX
|
|
make
|
|
make install
|
|
require_success "Failed to install webp $version"
|
|
cd ../..
|
|
}
|
|
|
|
|
|
function install_xquartz {
|
|
local version=$1
|
|
check_version
|
|
curl $XQ_BASE_URL/XQuartz-$version.dmg > xquartz.dmg
|
|
require_success "failed to download XQuartz"
|
|
|
|
hdiutil attach xquartz.dmg -mountpoint /Volumes/XQuartz
|
|
sudo installer -pkg /Volumes/XQuartz/XQuartz.pkg -target /
|
|
require_success "Failed to install XQuartz $version"
|
|
}
|