summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile13
-rw-r--r--packaging/macosx/Info.plist.in (renamed from packaging/macosx/Info.plist)8
-rwxr-xr-xpackaging/macosx/make-package.sh14
3 files changed, 22 insertions, 13 deletions
diff --git a/Makefile b/Makefile
index 17b69e0aa..43ab19a29 100644
--- a/Makefile
+++ b/Makefile
@@ -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