kopia lustrzana https://github.com/inkstitch/inkstitch
62 wiersze
2.3 KiB
Bash
Executable File
62 wiersze
2.3 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
set -e
|
|
|
|
site_packages="$(python -c "import os; print(os.path.dirname(os.__file__) + '/site-packages')")"
|
|
|
|
if [ "$TRAVIS_OS_NAME" = "linux" -a "$BUILD" != "windows" ]; then
|
|
# pyinstaller misses these two
|
|
pyinstaller_args+="--add-binary /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so:. "
|
|
pyinstaller_args+="--add-binary /usr/lib/x86_64-linux-gnu/libproxy.so.1:. "
|
|
fi
|
|
|
|
# This one's tricky. ink/stitch doesn't actually _use_ gi.repository.Gtk,
|
|
# but it does use GTK (through wxPython). pyinstaller has some special
|
|
# logic to handle GTK apps that is engaged when you import
|
|
# gi.repository.Gtk that pulls in things like themes, icons, etc. Without
|
|
# that, the Params dialog is unthemed and barely usable. This hidden
|
|
# import option is actually the only reason we had to install python-gi
|
|
# above!
|
|
pyinstaller_args+="--hidden-import gi.repository.Gtk "
|
|
|
|
# mac and windows build seem to miss wx import
|
|
pyinstaller_args+="--hidden-import wx "
|
|
|
|
# We need to use the precompiled bootloader linked with graphical Mac OS X
|
|
# libraries if we develop a GUI application for Mac:
|
|
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
pyinstaller_args+="--windowed "
|
|
fi
|
|
|
|
# This lets pyinstaller see inkex.py, etc.
|
|
pyinstaller_args+="-p inkscape/share/extensions "
|
|
|
|
# output useful debugging info that helps us trace library dependency issues
|
|
pyinstaller_args+="--log-level DEBUG "
|
|
|
|
if [ "$BUILD" = "windows" ]; then
|
|
wine c:\\Python\\scripts\\pyinstaller.exe $pyinstaller_args inkstitch.py
|
|
else
|
|
# without the LD_LIBRARY_PATH, it seems that pyinstaller can't find all of
|
|
# wxpython's shared libraries
|
|
LD_LIBRARY_PATH="${site_packages}/wx" pyinstaller $pyinstaller_args --strip inkstitch.py;
|
|
fi
|
|
|
|
# pyinstaller put a whole mess of libraries under dist/inkstitch. We'd like
|
|
# to put some more user-accessible stuff like examples and palettes in
|
|
# folders under inkstitch/ (see ../Makefile) so let's move the pyinstaller
|
|
# stuff into its own dir.
|
|
shopt -s dotglob
|
|
mkdir dist/bin
|
|
mv dist/inkstitch/* dist/bin
|
|
mv dist/bin dist/inkstitch
|
|
|
|
# on Mac, pyinstaller creates a .app version as well, but we don't need that
|
|
if [ "$TRAVIS_OS_NAME" = "osx" ]; then
|
|
rm -rf dist/inkstitch.app/
|
|
fi
|
|
|
|
# Inkscape doesn't let us run native binaries as extensions(?!). Instead we
|
|
# add this stub script which executes the binary that pyinstaller creates.
|
|
cp stub.py dist/inkstitch.py
|