mirror of
https://github.com/libretro/libretro-tyrquake.git
synced 2024-11-22 23:50:00 +00:00
mac: hack together a basic app bundle target
Import Kristian's Launcher.nib file, a basic info.plist and a png version of the icon to pull together the absolute basics needed for an OSX bundle. A better icon set would be nice... Signed-off-by: Kevin Shanahan <kmshanah@disenchant.net>
This commit is contained in:
parent
94121600ea
commit
ff16e95b38
66
Makefile
66
Makefile
@ -729,6 +729,12 @@ COMMON_CPPFLAGS += -DELF
|
||||
COMMON_OBJS += net_udp.o sys_unix.o
|
||||
COMMON_LIBS += m
|
||||
NQCL_OBJS += net_bsd.o
|
||||
|
||||
# FIXME - stupid hack
|
||||
ifeq ($(APP_BUNDLE),Y)
|
||||
COMMON_CPPFLAGS += -Dmain=SDL_main
|
||||
endif
|
||||
|
||||
# If we are on OSX (Darwin) and this is not the GLX target, we will link with
|
||||
# "-framework OpenGL" instead. Otherwise, link with libGL as normal
|
||||
# => if ($TARGET_UNIX != darwin || $VID_TARGET == x11)...
|
||||
@ -932,14 +938,15 @@ clean:
|
||||
|
||||
# ----------------------------------------------------------------------------
|
||||
# OSX Launcher (not yet working...)
|
||||
# - hacking about to see if I can get at least the glquake target running...
|
||||
# ----------------------------------------------------------------------------
|
||||
|
||||
LAUNCHER_DIR = $(BUILD_DIR)/launcher
|
||||
|
||||
LAUNCHER_CPPFLAGS := $(COMMON_CPPFLAGS)
|
||||
LAUNCHER_CPPFLAGS += $(shell sdl2-config --cflags)
|
||||
LAUNCHER_LFLAGS := -lobjc
|
||||
LAUNCHER_LFLAGS += $(shell sdl2-config --libs)
|
||||
LAUNCHER_LFLAGS := $(ALL_NQGL_LFLAGS) -lobjc -framework Cocoa
|
||||
LAUNCHER_DIR = $(BUILD_DIR)/launcher
|
||||
|
||||
BUNDLE_CONTENTS = $(BIN_DIR)/tyr-glquake.app/Contents
|
||||
|
||||
$(LAUNCHER_DIR)/%.o: CPPFLAGS = $(LAUNCHER_CPPFLAGS)
|
||||
$(LAUNCHER_DIR)/%.o: launcher/osx/%.m ; $(do_cc_o_m)
|
||||
@ -952,6 +959,55 @@ LAUNCHER_OBJS = \
|
||||
SDLMain.o \
|
||||
ScreenInfo.o
|
||||
|
||||
$(BIN_DIR)/launcher: $(patsubst %,$(LAUNCHER_DIR)/%,$(LAUNCHER_OBJS))
|
||||
ALL_LAUNCHER_OBJS = \
|
||||
$(patsubst %,$(LAUNCHER_DIR)/%,$(LAUNCHER_OBJS)) \
|
||||
$(patsubst %,$(NQGLDIR)/%,$(ALL_NQGL_OBJS))
|
||||
|
||||
PLIST=/usr/libexec/PlistBuddy
|
||||
|
||||
$(BUNDLE_CONTENTS)/Info.plist: launcher/osx/Info.plist Makefile
|
||||
@$(do_mkdir)
|
||||
cp launcher/osx/Info.plist $(LAUNCHER_DIR)/.Info.plist.tmp
|
||||
$(PLIST) -c "Set :CFBundleName TyrQuake" $(LAUNCHER_DIR)/.Info.plist.tmp
|
||||
$(PLIST) -c "Set :CFBundleExecutable Launcher" $(LAUNCHER_DIR)/.Info.plist.tmp
|
||||
$(PLIST) -c "Set :CFBundleShortVersionString $(TYR_VERSION)" $(LAUNCHER_DIR)/.Info.plist.tmp
|
||||
$(PLIST) -c "Set :CFBundleIconFile TyrQuake" $(LAUNCHER_DIR)/.Info.plist.tmp
|
||||
$(PLIST) -c "Set :NSMainNibFile Launcher" $(LAUNCHER_DIR)/.Info.plist.tmp
|
||||
mv $(LAUNCHER_DIR)/.Info.plist.tmp $@
|
||||
|
||||
$(BUNDLE_CONTENTS)/Resources/English.lproj/Launcher.nib: launcher/osx/English.lproj/Launcher.nib/designable.nib
|
||||
@$(do_mkdir)
|
||||
ibtool --compile $@ $(<D)
|
||||
|
||||
$(BUNDLE_CONTENTS)/MacOS/Launcher: $(ALL_LAUNCHER_OBJS)
|
||||
@$(do_mkdir)
|
||||
$(call do_cc_link,$(LAUNCHER_LFLAGS))
|
||||
$(call do_strip,$@)
|
||||
|
||||
$(BUNDLE_CONTENTS)/PkgInfo:
|
||||
@$(do_mkdir)
|
||||
echo "APPL????" > $@
|
||||
|
||||
$(LAUNCHER_DIR)/TyrQuake.iconset/icon_%.png: icons/quake_%.png
|
||||
@$(do_mkdir)
|
||||
cp $< $@
|
||||
|
||||
ICNS_FILES = $(LAUNCHER_DIR)/TyrQuake.iconset/icon_32x32.png
|
||||
|
||||
$(BUNDLE_CONTENTS)/Resources/TyrQuake.icns: $(ICNS_FILES)
|
||||
@$(do_mkdir)
|
||||
iconutil -c icns -o $@ $(<D)
|
||||
|
||||
BUNDLE_FILES = \
|
||||
$(BUNDLE_CONTENTS)/Info.plist \
|
||||
$(BUNDLE_CONTENTS)/Resources/English.lproj/Launcher.nib \
|
||||
$(BUNDLE_CONTENTS)/Resources/TyrQuake.icns \
|
||||
$(BUNDLE_CONTENTS)/MacOS/Launcher \
|
||||
$(BUNDLE_CONTENTS)/PkgInfo
|
||||
|
||||
.PHONY: bundle
|
||||
|
||||
#
|
||||
# To test, do 'make APP_BUNDLE=Y bundle'
|
||||
#
|
||||
bundle: $(BUNDLE_FILES)
|
||||
|
BIN
icons/quake_32x32.png
Normal file
BIN
icons/quake_32x32.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 597 B |
2705
launcher/osx/English.lproj/Launcher.nib/designable.nib
generated
Normal file
2705
launcher/osx/English.lproj/Launcher.nib/designable.nib
generated
Normal file
File diff suppressed because it is too large
Load Diff
37
launcher/osx/Info.plist
Normal file
37
launcher/osx/Info.plist
Normal file
@ -0,0 +1,37 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>${EXECUTABLE_NAME}</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>TyrQuake</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>net.disenchant.TyrQuake</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>${PRODUCT_NAME}</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>${TYR_VERSION}</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>LSApplicationCategoryType</key>
|
||||
<string>public.app-category.action-games</string>
|
||||
<key>LSMinimumSystemVersionByArchitecture</key>
|
||||
<dict>
|
||||
<key>i386</key>
|
||||
<string>10.4.0</string>
|
||||
<key>x86_64</key>
|
||||
<string>10.6.0</string>
|
||||
</dict>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>Launcher</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>SDLApplication</string>
|
||||
</dict>
|
||||
</plist>
|
Loading…
Reference in New Issue
Block a user