mirror of
https://github.com/subsurface/subsurface.git
synced 2024-11-30 22:20:21 +00:00
Further automization of the Mac build process
This improves the Plist.info and automates the version data that it uses utilizing the same git magic that the Makefile uses. It also makes the complete DMG creation a matter of simply running packaging/macosx/make-package.sh Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
abbea98344
commit
41256531b8
3 changed files with 22 additions and 13 deletions
13
Makefile
13
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
|
||||
|
|
|
@ -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>
|
|
@ -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
|
||||
|
|
Loading…
Reference in a new issue