mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Finally a fully working Mac dmg
The Makefile change simply gets us the same setup with make install-macosx that we are getting from the gtk-mac-bundler - with the launcher script and subsurface installed as subsurface-bin. The changes in the README are what make the difference for getting a working dmg - there are a bunch of .so files that are part of gtk that didn't have their dependency load paths updated - and those made the application either crash or at least not display its own icon correctly. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
3afa7c4651
commit
e6454f1773
2 changed files with 16 additions and 1 deletions
3
Makefile
3
Makefile
|
@ -159,7 +159,8 @@ install: $(NAME)
|
|||
install-macosx: $(NAME)
|
||||
$(INSTALL) -d -m 755 $(MACOSXINSTALL)/Contents/Resources
|
||||
$(INSTALL) -d -m 755 $(MACOSXINSTALL)/Contents/MacOS
|
||||
$(INSTALL) $(NAME) $(MACOSXINSTALL)/Contents/MacOS/
|
||||
$(INSTALL) $(NAME) $(MACOSXINSTALL)/Contents/MacOS/$(NAME)-bin
|
||||
$(INSTALL) $(MACOSXFILES)/$(NAME).sh $(MACOSXINSTALL)/Contents/MacOS/$(NAME)
|
||||
$(INSTALL) $(MACOSXFILES)/PkgInfo $(MACOSXINSTALL)/Contents/
|
||||
$(INSTALL) $(MACOSXFILES)/Info.plist $(MACOSXINSTALL)/Contents/
|
||||
$(INSTALL) $(ICONFILE) $(MACOSXINSTALL)/Contents/Resources/
|
||||
|
|
|
@ -15,6 +15,20 @@ And then things work correctly IFF the app gets installed with that path.
|
|||
|
||||
What a pain.
|
||||
|
||||
Worse, gtk-mac-bundler misses fails to catch the .so files that
|
||||
are part of the gdk-pixbuf loader infrastructure. So we need to
|
||||
manually adjust the load paths in them:
|
||||
|
||||
for i in Resources/lib/gdk-pixbuf-2.0/2.10.0/loaders/* ; do \
|
||||
~/gtk-mac-bundler/bundler/run-install-name-tool-change.sh $i \
|
||||
/Applications/Subsurface.app/Contents/Resources Resources change ; \
|
||||
done
|
||||
|
||||
Finally, you need to change the IDs of the libraries:
|
||||
|
||||
cd packagin/macosx/staging/Subsurface.app/Contents
|
||||
for i in Resources/lib/*.dylib; do install_name_tool -id "@executable_path/../$i" $i; done
|
||||
|
||||
You still need to manually build a DMG if you want to easily distribute this.
|
||||
|
||||
hdiutil create -volname Subsurface -srcfolder staging Subsurface-<version>.dmg
|
||||
|
|
Loading…
Add table
Reference in a new issue