~thopiekar/kivy/kivy-sdk-packager-thopiekar

« back to all changes in this revision

Viewing changes to osx/create-osx-bundle.sh

  • Committer: Thomas-Karl Pietrowski
  • Date: 2016-01-01 14:16:41 UTC
  • mfrom: (69.1.31)
  • Revision ID: git-v1:e7315e7369a5ade5338938948de620d4dba4114b
Merge remote-tracking branch 'upstream/master'

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
#!/bin/bash
2
2
 
3
3
VERSION=stable
 
4
if [ "x$2" != "x" ]; then
 
5
    VERSION=$2
 
6
fi
4
7
 
5
8
set -x  # verbose
6
9
set -e  # exit on error
7
10
 
8
11
PLATYPUS=/usr/local/bin/platypus
9
12
SCRIPT_PATH="${BASH_SOURCE[0]}";
 
13
 
 
14
PYTHON=python
 
15
 
10
16
if([ -h "${SCRIPT_PATH}" ]) then
11
17
  while([ -h "${SCRIPT_PATH}" ]) do SCRIPT_PATH=`readlink "${SCRIPT_PATH}"`; done
12
18
fi
13
 
SCRIPT_PATH=$(python -c "import os; print os.path.realpath(os.path.dirname('${SCRIPT_PATH}'))")
 
19
 
 
20
SCRIPT_PATH=$(python -c "import os; print(os.path.realpath(os.path.dirname('${SCRIPT_PATH}')))")
14
21
OSXRELOCATOR="osxrelocator"
15
22
 
16
23
echo "-- Create initial Kivy.app package"
17
24
$PLATYPUS -DBR -x -y \
18
 
        -i "$SCRIPT_PATH/data/icon.icns" \
19
 
        -a "Kivy" \
20
 
        -o "None" \
21
 
        -p "/bin/bash" \
22
 
        -V "$VERSION" \
23
 
        -I "org.kivy.osxlauncher" \
24
 
        -X "*" \
25
 
        "$SCRIPT_PATH/data/script" \
26
 
        "$SCRIPT_PATH/Kivy.app"
 
25
    -i "$SCRIPT_PATH/data/icon.icns" \
 
26
    -a "Kivy" \
 
27
    -o "None" \
 
28
    -p "/bin/bash" \
 
29
    -V "$VERSION" \
 
30
    -I "org.kivy.osxlauncher" \
 
31
    -X "*" \
 
32
    "$SCRIPT_PATH/data/script" \
 
33
    "$SCRIPT_PATH/Kivy.app"
 
34
 
 
35
 
27
36
 
28
37
# --- Frameworks
29
38
 
30
39
echo "-- Create Frameworks directory"
31
40
mkdir -p Kivy.app/Contents/Frameworks
 
41
if [ "$1" == "python3" ]  ;then
 
42
  if [ ! -f ~/.pyenv/bin/pyenv ]; then
 
43
      curl -L https://raw.githubusercontent.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
 
44
      ~/.pyenv/bin/pyenv install 3.5.0
 
45
  fi
 
46
  PYPATH="$SCRIPT_PATH/Kivy.app/Contents/Frameworks/python"
 
47
  mkdir "$PYPATH"
 
48
  cp -a ~/.pyenv/versions/3.5.0 "$PYPATH"
 
49
  #find -E "$PYPATH/3.5.0" -regex '.*.pyc' | grep -v "opt-2.pyc" | xargs rm
 
50
  PYTHON="$PYPATH/3.5.0/bin/python3"
 
51
  rm -rf python/3.5.0/{openssl,share}
 
52
  rm -rf python/3.5.0/lib/python3.5/{test,unittest/test,turtledemo,tkinter}
 
53
fi
32
54
pushd Kivy.app/Contents/Frameworks
33
55
 
34
56
echo "-- Copy frameworks"
61
83
rm -rf GStreamer.framework/Versions/1.0/share/gstreamer
62
84
find -E . -regex '.*\.a$' -exec rm {} \;
63
85
find -E . -regex '.*\.la$' -exec rm {} \;
 
86
find -E . -regex '.*\.exe$' -exec rm {} \;
64
87
 
65
88
echo "-- Remove duplicate gstreamer libraries"
66
 
python $SCRIPT_PATH/data/link_duplicate.py GStreamer.framework/Libraries
 
89
$PYTHON $SCRIPT_PATH/data/link_duplicate.py GStreamer.framework/Libraries
67
90
 
68
91
echo "-- Remove broken symlink"
69
92
find . -type l -exec sh -c "file -b {} | grep -q ^broken" \; -print
79
102
pushd Kivy.app/Contents/Resources/
80
103
 
81
104
echo "-- Create a virtualenv"
82
 
virtualenv -p /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python venv
 
105
 
 
106
if [ "$1" == "python3" ]; then
 
107
    $PYTHON -m venv venv
 
108
else
 
109
    virtualenv -p /System/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python venv
 
110
fi
83
111
 
84
112
echo "-- Install dependencies"
85
113
source venv/bin/activate
86
 
pip install cython==0.21.2
 
114
pip install cython==0.23
87
115
pip install pygments docutils
88
 
pip install osxrelocator
 
116
pip install git+http://github.com/tito/osxrelocator
89
117
 
90
118
echo "-- Link python to the right location for relocation"
91
 
ln -s venv/bin/python .
 
119
ln -s ./venv/bin/python ./python
92
120
 
93
121
popd
94
122
 
103
131
 
104
132
cd kivy
105
133
USE_SDL2=1 make
106
 
 
107
134
popd
108
135
 
109
136
# --- Relocation
111
138
echo "-- Relocate frameworks"
112
139
pushd Kivy.app
113
140
osxrelocator -r . /Library/Frameworks/GStreamer.framework/ \
114
 
        @executable_path/../Frameworks/GStreamer.framework/
 
141
    @executable_path/../Frameworks/GStreamer.framework/
115
142
osxrelocator -r . /Library/Frameworks/SDL2/ \
116
 
        @executable_path/../Frameworks/SDL2/
 
143
    @executable_path/../Frameworks/SDL2/
117
144
osxrelocator -r . /Library/Frameworks/SDL2_ttf/ \
118
 
        @executable_path/../Frameworks/SDL2_ttf/
 
145
    @executable_path/../Frameworks/SDL2_ttf/
119
146
osxrelocator -r . /Library/Frameworks/SDL2_image/ \
120
 
        @executable_path/../Frameworks/SDL2_image/
 
147
    @executable_path/../Frameworks/SDL2_image/
121
148
osxrelocator -r . @rpath/SDL2.framework/Versions/A/SDL2 \
122
 
        @executable_path/../Frameworks/SDL2.framework/Versions/A/SDL2
 
149
    @executable_path/../Frameworks/SDL2.framework/Versions/A/SDL2
123
150
osxrelocator -r . @rpath/SDL2_ttf.framework/Versions/A/SDL2_ttf \
124
 
        @executable_path/../Frameworks/SDL2_ttf.framework/Versions/A/SDL2_ttf
 
151
    @executable_path/../Frameworks/SDL2_ttf.framework/Versions/A/SDL2_ttf
125
152
osxrelocator -r . @rpath/SDL2_image.framework/Versions/A/SDL2_image \
126
 
        @executable_path/../Frameworks/SDL2_image.framework/Versions/A/SDL2_image
 
153
    @executable_path/../Frameworks/SDL2_image.framework/Versions/A/SDL2_image
127
154
osxrelocator -r . @rpath/SDL2_mixer.framework/Versions/A/SDL2_mixer \
128
 
        @executable_path/../Frameworks/SDL2_mixer.framework/Versions/A/SDL2_mixer
 
155
    @executable_path/../Frameworks/SDL2_mixer.framework/Versions/A/SDL2_mixer
129
156
popd
130
157
 
131
158
# relocate the activate script
132
159
echo "-- Relocate virtualenv"
133
160
pushd Kivy.app/Contents/Resources/venv
134
161
virtualenv --relocatable .
135
 
gsed -i -r 's#^VIRTUAL_ENV=.*#VIRTUAL_ENV=$(cd $(dirname "$BASH_SOURCE"); dirname `pwd`)#' bin/activate
 
162
sed -i -r 's#^VIRTUAL_ENV=.*#VIRTUAL_ENV=$(cd $(dirname "$BASH_SOURCE"); dirname `pwd`)#' bin/activate
136
163
rm bin/activate.csh
137
164
rm bin/activate.fish
 
165
popd
138
166
 
 
167
if [ "$1" == "python3" ]; then
 
168
    pushd Kivy.app/Contents/Resources/venv/bin/
 
169
    rm ./python
 
170
    ln -s ../../../Frameworks/python/3.5.0/bin/python .
 
171
fi
139
172
echo "-- Done !"