Adding scripts to build PIL for kivy-ios
new file: pil_files/patch_pil.patch new file: ../tools/build-libjpeg.sh new file: ../tools/build-pil.sh
This commit is contained in:
parent
1f975c73cf
commit
5561d15db5
3 changed files with 192 additions and 0 deletions
107
src/pil_files/patch_pil.patch
Normal file
107
src/pil_files/patch_pil.patch
Normal file
|
@ -0,0 +1,107 @@
|
|||
diff -rupN Imaging-1.1.7/_imaging.c Imaging-1.1.7_patched/_imaging.c
|
||||
--- Imaging-1.1.7/_imaging.c 2009-11-02 12:18:48.000000000 +0100
|
||||
+++ Imaging-1.1.7_patched/_imaging.c 2013-07-12 10:58:39.000000000 +0200
|
||||
@@ -71,12 +71,28 @@
|
||||
* See the README file for information on usage and redistribution.
|
||||
*/
|
||||
|
||||
-
|
||||
#include "Python.h"
|
||||
|
||||
#include "Imaging.h"
|
||||
|
||||
|
||||
+#include <stdio.h>
|
||||
+
|
||||
+FILE *fopen$UNIX2003( const char *filename, const char *mode )
|
||||
+{
|
||||
+ return fopen(filename, mode);
|
||||
+}
|
||||
+
|
||||
+size_t fwrite$UNIX2003( const void *a, size_t b, size_t c, FILE *d )
|
||||
+{
|
||||
+ return fwrite(a, b, c, d);
|
||||
+}
|
||||
+
|
||||
+ssize_t write$UNIX2003(int a, const void *b, size_t c)
|
||||
+{
|
||||
+ return write(a,b,c);
|
||||
+}
|
||||
+
|
||||
/* Configuration stuff. Feel free to undef things you don't need. */
|
||||
#define WITH_IMAGECHOPS /* ImageChops support */
|
||||
#define WITH_IMAGEDRAW /* ImageDraw support */
|
||||
diff -rupN Imaging-1.1.7/libImaging/Quant.c Imaging-1.1.7_patched/libImaging/Quant.c
|
||||
--- Imaging-1.1.7/libImaging/Quant.c 2009-11-01 02:29:14.000000000 +0100
|
||||
+++ Imaging-1.1.7_patched/libImaging/Quant.c 2013-07-12 10:59:06.000000000 +0200
|
||||
@@ -20,10 +20,15 @@
|
||||
|
||||
#include "Imaging.h"
|
||||
|
||||
+#include <time.h>
|
||||
+clock_t clock$UNIX2003(void)
|
||||
+{
|
||||
+ return clock();
|
||||
+}
|
||||
+
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <memory.h>
|
||||
-#include <time.h>
|
||||
|
||||
#include "Quant.h"
|
||||
|
||||
@@ -33,6 +38,7 @@
|
||||
|
||||
#define NO_OUTPUT
|
||||
|
||||
+
|
||||
typedef struct {
|
||||
unsigned long scale;
|
||||
} PixelHashData;
|
||||
diff -rupN Imaging-1.1.7/setup.py Imaging-1.1.7_patched/setup.py
|
||||
--- Imaging-1.1.7/setup.py 2009-11-15 17:06:10.000000000 +0100
|
||||
+++ Imaging-1.1.7_patched/setup.py 2013-07-12 10:58:30.000000000 +0200
|
||||
@@ -88,6 +88,7 @@ from distutils.command.build_ext import
|
||||
|
||||
try:
|
||||
import _tkinter
|
||||
+ _tkinter = None
|
||||
except ImportError:
|
||||
_tkinter = None
|
||||
|
||||
@@ -283,6 +284,14 @@ class pil_build_ext(build_ext):
|
||||
#
|
||||
# core library
|
||||
|
||||
+
|
||||
+ class feature:
|
||||
+ tiff = tcl = tk = lcms = None
|
||||
+ jpeg="jpeg"
|
||||
+ zlib="zlib"
|
||||
+ freetype="freetype"
|
||||
+ feature = feature()
|
||||
+
|
||||
files = ["_imaging.c"]
|
||||
for file in IMAGING:
|
||||
files.append(file + ".c")
|
||||
@@ -348,7 +357,7 @@ class pil_build_ext(build_ext):
|
||||
dir = os.path.join(root, "Tk.framework", "Headers")
|
||||
add_directory(self.compiler.include_dirs, dir, 1)
|
||||
break
|
||||
- if frameworks:
|
||||
+ if False and frameworks:
|
||||
exts.append(Extension(
|
||||
"_imagingtk", ["_imagingtk.c", "Tk/tkImaging.c"],
|
||||
extra_compile_args=frameworks, extra_link_args=frameworks
|
||||
@@ -364,7 +373,9 @@ class pil_build_ext(build_ext):
|
||||
exts.append(Extension("_imagingmath", ["_imagingmath.c"]))
|
||||
|
||||
self.extensions[:] = exts
|
||||
-
|
||||
+ print "Extensions:"
|
||||
+ for e in exts:
|
||||
+ print e.name,str(e.sources)
|
||||
build_ext.build_extensions(self)
|
||||
|
||||
#
|
43
tools/build-libjpeg.sh
Executable file
43
tools/build-libjpeg.sh
Executable file
|
@ -0,0 +1,43 @@
|
|||
#!/bin/bash
|
||||
|
||||
. $(dirname $0)/environment.sh
|
||||
|
||||
echo "Building libjpeg...."
|
||||
|
||||
if [ ! -f $CACHEROOT/jpegsrc.v6b.tar.gz ]; then
|
||||
try curl -L http://downloads.sourceforge.net/project/libjpeg/libjpeg/6b/jpegsrc.v6b.tar.gz > $CACHEROOT/jpegsrc.v6b.tar.gz
|
||||
fi
|
||||
if [ ! -d $TMPROOT/jpeg-6b ]; then
|
||||
rm -rf $CACHEROOT/jpeg-6b
|
||||
try tar -xvf $CACHEROOT/jpegsrc.v6b.tar.gz
|
||||
try mv jpeg-6b $TMPROOT
|
||||
fi
|
||||
|
||||
# lib not found, compile it
|
||||
echo "Configuring...."
|
||||
pushd $TMPROOT/jpeg-6b
|
||||
echo try ./configure --prefix=$DESTROOT \
|
||||
--host=arm-apple-darwin \
|
||||
--enable-static=yes \
|
||||
--enable-shared=no \
|
||||
CC="$ARM_CC" AR="$ARM_AR" \
|
||||
LDFLAGS="$ARM_LDFLAGS" CFLAGS="$ARM_CFLAGS"
|
||||
try make clean
|
||||
make #With controlled errors
|
||||
|
||||
rm *.a
|
||||
rm cjpeg.o
|
||||
rm djpeg.o
|
||||
rm jpegtran.o
|
||||
rm rdjpgcom.o
|
||||
rm urjpgcom.o
|
||||
rm rdjtran.o
|
||||
rm wrjpgcom.o
|
||||
ar rcs libjpeg.a *.o
|
||||
|
||||
|
||||
# copy to buildroot
|
||||
cp libjpeg.a $BUILDROOT/lib/libjpeg.a
|
||||
cp *.h $BUILDROOT/include/
|
||||
|
||||
popd
|
42
tools/build-pil.sh
Executable file
42
tools/build-pil.sh
Executable file
|
@ -0,0 +1,42 @@
|
|||
#!/bin/bash
|
||||
|
||||
. $(dirname $0)/environment.sh
|
||||
|
||||
if [ ! -f $CACHEROOT/Imaging-1.1.7.tar.gz ] ; then
|
||||
try curl -L http://effbot.org/downloads/Imaging-1.1.7.tar.gz > $CACHEROOT/Imaging-1.1.7.tar.gz
|
||||
fi
|
||||
if [ ! -d $TMPROOT/Imaging-1.1.7 ]; then
|
||||
cd $TMPROOT
|
||||
try tar -xvf $CACHEROOT/Imaging-1.1.7.tar.gz
|
||||
fi
|
||||
|
||||
|
||||
|
||||
# build audiostream
|
||||
OLD_CC="$CC"
|
||||
OLD_CFLAGS="$CFLAGS"
|
||||
OLD_LDFLAGS="$LDFLAGS"
|
||||
OLD_LDSHARED="$LDSHARED"
|
||||
export CC="$ARM_CC -I$BUILDROOT/include"
|
||||
export CFLAGS="$ARM_CFLAGS"
|
||||
export LDFLAGS="$ARM_LDFLAGS"
|
||||
export LDSHARED="$KIVYIOSROOT/tools/liblink"
|
||||
|
||||
try pushd $TMPROOT/Imaging-1.1.7
|
||||
patch -p1 < $KIVYIOSROOT/src/pil_files/patch_pil.patch
|
||||
$HOSTPYTHON setup.py build_ext &>/dev/null
|
||||
try find . -iname '*.pyx' -exec $KIVYIOSROOT/tools/cythonize.py {} \;
|
||||
try $HOSTPYTHON setup.py build_ext
|
||||
try $HOSTPYTHON setup.py install -O2 --root iosbuild
|
||||
try find iosbuild | grep -E '.*\.(py|pyc|so\.o|so\.a|so\.libs)$$' | xargs rm
|
||||
try cp -a iosbuild/usr/local/lib/python2.7/site-packages/PIL "$BUILDROOT/python/lib/python2.7/site-packages"
|
||||
popd
|
||||
|
||||
export CC="$OLD_CC"
|
||||
export CFLAGS="$OLD_CFLAGS"
|
||||
export LDFLAGS="$OLD_LDFLAGS"
|
||||
export LDSHARED="$OLD_LDSHARED"
|
||||
|
||||
bd=$TMPROOT/Imaging-1.1.7/build/lib.macosx-*
|
||||
try $KIVYIOSROOT/tools/biglink $BUILDROOT/lib/libpil.a $bd
|
||||
deduplicate $BUILDROOT/lib/libpil.a
|
Loading…
Add table
Reference in a new issue