kopia lustrzana https://github.com/inkstitch/inkstitch
comment Makefile
rodzic
0d89d803f8
commit
5fd1c3091a
37
Makefile
37
Makefile
|
@ -3,22 +3,49 @@ VERSION:=$(shell git tag -l | grep ^v | tail -n 1)
|
|||
TARBALL:=inkstitch-$(VERSION)-$(shell uname)-$(shell uname -m).tar.gz
|
||||
WX_PATH:=$(shell python -c 'import wx; print wx.__path__[0]')
|
||||
|
||||
dist: distclean
|
||||
dist: distcleanhttps://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
mkdir -p dist/inkstitch/bin
|
||||
for extension in $(EXTENSIONS); do \
|
||||
\
|
||||
`# without this, it seems that pyinstaller can't find all of wxpython's shared libraries` \
|
||||
LD_LIBRARY_PATH="$WX_PATH" \
|
||||
pyinstaller \
|
||||
--add-binary /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so:. \
|
||||
\
|
||||
`# pyinstaller misses these two` \
|
||||
--add-binary /usr/lib/x86_64-linux-gnu/gio/modules/libgiolibproxy.so:. \https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
--add-binary /usr/lib/x86_64-linux-gnu/libproxy.so.1:. \
|
||||
\
|
||||
\https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
`# This one's tricky. ink/stitch doesn't actually _use_ gi.repository.Gtk, ` \https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
`# but it does use GTK (through wxPython). pyinstaller has some special ` \
|
||||
`# logic to handle GTK apps that is engaged when you import ` \https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
`# gi.repository.Gtk that pulls in things like themes, icons, etc. Without ` \https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
`# 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! ` \https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
--hidden-import gi.repository.Gtk \
|
||||
-p /usr/share/inkscape/extensions \
|
||||
$${extension}.py; \
|
||||
cp -a dist/$${extension}/* dist/inkstitch/bin; \
|
||||
\
|
||||
`# This lets pyinstaller see inkex.py, etc. ` \https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8dhttps://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
-p /usr/share/inkscape/extensions \https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
$${extension}.py; \https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
\
|
||||
`# By default, pyinstaller will treat each of ink/stitch's extensions ` \
|
||||
`# separately. This means it packages a lot of the same shared libraries (like ` \
|
||||
`# wxPython) multiple times. Turns out that we can just copy the contents of ` \
|
||||
https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34 `# the directories pyinstaller creates into one and it works fine, eliminating ` \
|
||||
`# the duplication. This significantly decreases the size of the inkstitch ` \
|
||||
`# tarball/zip. ` \
|
||||
cp -a dist/$${extension}/* dist/inkstitch/bin; \https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
rm -rf dist/$${extension}; \
|
||||
\https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
`# Inkscape doesn't let us run native binaries as extensions(?!). Instead we ` \
|
||||
`# add this stub script which executes the binaries that pyinstaller creates. ` \https://github.com/pyinstaller/pyinstaller/blob/61b1c75c2b0469b32d114298a63bf60b8d597e37/PyInstaller/hooks/hook-shapely.py#L34
|
||||
cp stub.py dist/$${extension}.py; \
|
||||
done;
|
||||
cp *.inx dist
|
||||
cd dist; tar zcf ../$(TARBALL) *
|
||||
|
||||
# This is only here for debugging the build.
|
||||
tar zcf build.tar.gz build
|
||||
|
||||
distclean:
|
||||
|
|
Ładowanie…
Reference in New Issue