diff options
-rw-r--r-- | Makefile | 13 | ||||
-rw-r--r-- | packaging/macosx/Info.plist.in (renamed from packaging/macosx/Info.plist) | 8 | ||||
-rwxr-xr-x | packaging/macosx/make-package.sh | 14 |
3 files changed, 22 insertions, 13 deletions
@@ -27,7 +27,10 @@ XSLTFILES = xslt/*.xslt UNAME := $(shell $(CC) -dumpmachine 2>&1 | grep -E -o "linux|darwin|win") VERSION_STRING := $(shell git describe --tags --abbrev=12 || echo "v$(VERSION)") +# Windows .nsi style with four numbers 1.2.3.4 PRODVERSION_STRING := $(shell git describe --tags --abbrev=12 | sed 's/v\([0-9]*\)\.\([0-9]*\)-\([0-9]*\)-.*/\1.\2.\3.0/ ; s/v\([0-9]\)\.\([0-9]*\)/\1.\2.0.0/' || echo "$(VERSION).0.0") +# Mac Info.plist style with three numbers 1.2.3 +CFBUNDLEVERSION_STRING := $(shell git describe --tags --abbrev=12 | sed 's/v\([0-9]*\)\.\([0-9]*\)-\([0-9]*\)-.*/\1.\2.\3/ ; s/v\([0-9]\)\.\([0-9]*\)/\1.\2.0/' || echo "$(VERSION).0") # find libdivecomputer # First deal with the cross compile environment and with Mac. @@ -119,9 +122,11 @@ else ifeq ($(UNAME), darwin) MACOSXINSTALL = /Applications/Subsurface.app MACOSXFILES = packaging/macosx MACOSXSTAGING = $(MACOSXFILES)/Subsurface.app + INFOPLIST = $(MACOSXFILES)/Info.plist + INFOPLISTINPUT = $(INFOPLIST).in EXTRALIBS = $(shell $(PKGCONFIG) --libs gtk-mac-integration) -framework CoreFoundation CFLAGS += $(shell $(PKGCONFIG) --cflags gtk-mac-integration) - LDFLAGS += -headerpad_max_install_names -sectcreate __TEXT __info_plist ./packaging/macosx/Info.plist + LDFLAGS += -headerpad_max_install_names -sectcreate __TEXT __info_plist $(INFOPLIST) GTK_MAC_BUNDLER = ~/.local/bin/gtk-mac-bundler XSLT_CAPABLE = 1 else @@ -154,7 +159,7 @@ OBJS = main.o dive.o time.o profile.o info.o equipment.o divelist.o deco.o plann DEPS = $(wildcard .dep/*.dep) -$(NAME): $(OBJS) $(MSGOBJS) +$(NAME): $(OBJS) $(MSGOBJS) $(INFOPLIST) $(CC) $(LDFLAGS) -o $(NAME) $(OBJS) $(LIBS) install: $(NAME) @@ -234,9 +239,11 @@ install-cross-windows: $(NAME) create-windows-installer: $(NAME) $(NSIFILE) install-cross-windows $(MAKENSIS) $(NSIFILE) -$(NSIFILE): $(NSIINPUTFILE) Makefile +$(NSIFILE): $(NSIINPUTFILE) $(shell cat $(NSIINPUTFILE) | sed -e 's/VERSIONTOKEN/$(VERSION_STRING)/;s/PRODVTOKEN/$(PRODVERSION_STRING)/' > $(NSIFILE)) +$(INFOPLIST): $(INFOPLISTINPUT) + $(shell cat $(INFOPLISTINPUT) | sed -e 's/CFBUNDLEVERSION_TOKEN/$(CFBUNDLEVERSION_STRING)/' > $(INFOPLIST)) update-po-files: xgettext -o po/subsurface-new.pot -s -k_ -kN_ --keyword=C_:1c,2 --add-comments="++GETTEXT" *.c diff --git a/packaging/macosx/Info.plist b/packaging/macosx/Info.plist.in index aecd9ab76..a623303a1 100644 --- a/packaging/macosx/Info.plist +++ b/packaging/macosx/Info.plist.in @@ -8,19 +8,15 @@ <string>Subsurface</string> <key>CFBundlePackageType</key> <string>APPL</string> - <key>CFBundleGetInfoString</key> - <string>Multi Platform Divelog in C and Gtk</string> <key>CFBundleSignature</key> - <string>????</string> + <string>SBSF</string> <key>CFBundleExecutable</key> <string>subsurface</string> <key>CFBundleIdentifier</key> <string>org.hohndel.subsurface</string> <key>CFBundleInfoDictionaryVersion</key> <string>1.0</string> - <key>CFBundleVersionString</key> - <string>2.9</string> <key>CFBundleVersion</key> - <string>2.9</string> + <string>CFBUNDLEVERSION_TOKEN</string> </dict> </plist> diff --git a/packaging/macosx/make-package.sh b/packaging/macosx/make-package.sh index 81e0f80f8..c8d21b283 100755 --- a/packaging/macosx/make-package.sh +++ b/packaging/macosx/make-package.sh @@ -21,16 +21,22 @@ DMGCREATE="../yoursway-create-dmg/create-dmg" # other components have been installed PREFIX="/Applications/Subsurface.app/Contents/Resources" -# maybe we want to update this to use the git tag magic instead. That -# would be more consistent -VERSION=`grep -1 CFBundleVersionString packaging/macosx/Info.plist | tail -1 | cut -d\> -f 2 | cut -d\< -f 1` +INFOPLIST=./packaging/macosx/Info.plist + +# same git version magic as in the Makefile +VERSION=`git describe --tags --abbrev=12 | sed 's/v\([0-9]*\)\.\([0-9]*\)-\([0-9]*\)-.*/\1.\2.\3/ ; s/v\([0-9]\)\.\([0-9]*\)/\1.\2.0/' || echo "git.missing.please.hardcode.version"` # gtk-mac-bundler allegedly supports signing by setting this environment # variable, but this fails as we change the shared objects below and all # the signatures become invalid. # export APPLICATION_CERT="Dirk" -# first clean up the staging area +# force rebuilding of Info.plist +rm ${INFOPLIST} + +# first build and install Subsurface and then clean up the staging area +make +make install-macosx rm -rf ./staging # now populate it with the bundle |