New Apple OS X application bundle based on work done for GtkRadiant 1.6.4. Produces a functioning application on Yosemite.
This commit is contained in:
Garux 2018-02-07 22:24:46 +03:00
parent 001cc8f306
commit 17ad4b41b9
11 changed files with 330 additions and 0 deletions

83
setup/data/osx/Makefile Normal file
View File

@ -0,0 +1,83 @@
# Makefile for NetRadiant.app, requires http://macdylibbundler.sourceforge.net/
INSTALL = ../../../install
TARGET = target
RESOURCES = $(TARGET)/NetRadiant.app/Contents/Resources
BINDIR = $(RESOURCES)/install
CONFDIR = $(RESOURCES)/etc
DATADIR = $(RESOURCES)/share
LIBDIR = $(RESOURCES)/lib
VERSION = 1.5.0
DMG = $(TARGET)/NetRadiant-$(VERSION).dmg
VOLUME_NAME = "NetRadiant $(VERSION)"
# We must rewrite some Gtk configuration files, which vary from environment to
# environment depending on where you've installed MacPorts. Fun!
MACPORTS_PREFIX := $(shell which port | sed 's:/bin/port::')
PREFIX_SED_EXPR = "s:$(MACPORTS_PREFIX):@executable_path/..:g"
all: install bundle
-pre-install:
install -d $(TARGET)
cp -r NetRadiant.app $(TARGET)
find $(TARGET) -name .turd -delete
-gtk-runtime-gdk-pixbuf-2.0:
cp -r $(MACPORTS_PREFIX)/lib/gdk-pixbuf-2.0 $(LIBDIR)
find $(LIBDIR)/gdk-pixbuf-2.0 -type f ! -name "*.so" -delete
gdk-pixbuf-query-loaders | sed $(PREFIX_SED_EXPR) > \
$(CONFDIR)/gtk-2.0/gdk-pixbuf.loaders
-gtk-runtime-pango:
cp -r $(MACPORTS_PREFIX)/lib/pango $(LIBDIR)
find $(LIBDIR)/pango -type f ! -name "*.so" -delete
pango-querymodules | sed $(PREFIX_SED_EXPR) > \
$(CONFDIR)/pango/pango.modules
-gtk-runtime: -gtk-runtime-gdk-pixbuf-2.0 -gtk-runtime-pango
cp -r $(MACPORTS_PREFIX)/lib/gtk-2.0 $(LIBDIR)
find $(LIBDIR)/gtk-2.0 -type f ! -name "*.so" -delete
rm -rf $(LIBDIR)/gtk-2.0/{includes,modules}
rm -rf $(LIBDIR)/gtk-2.0/*/printbackends
cp -r $(MACPORTS_PREFIX)/share/themes/Default $(RESOURCES)/share
gtk-query-immodules-2.0 | sed $(PREFIX_SED_EXPR) > \
$(CONFDIR)/gtk-2.0/gtk.immodules
install: -pre-install -gtk-runtime
cp -r $(INSTALL) $(RESOURCES)
#rm -rf `find $(INSTDIR)/installs -type d -name .svn`
bundle:
# The Radiant plugins (modules) are a little funky
# Some of them are actually linked against the build directory
test -L install || ln -s $(INSTALL)
dylibbundler -b \
-x $(BINDIR)/radiant \
-x $(BINDIR)/q2map \
-x $(BINDIR)/q3data \
-x $(BINDIR)/q3map2 \
-x $(BINDIR)/qdata3 \
`find $(BINDIR)/modules -name "*.dylib" | xargs -I {} echo -x {}` \
`find $(LIBDIR) -name "*.dylib" | xargs -I {} echo -x {}` \
-d $(LIBDIR) -of -p @executable_path/../lib
rm -f install
image:
find $(TARGET) -name .DS_Store -delete
ln -f -s /Applications $(TARGET)/Applications
hdiutil create -ov $(DMG) -srcfolder $(TARGET) -volname $(VOLUME_NAME)
rm $(TARGET)/Applications
clean:
rm -rf $(TARGET)/*

View File

@ -0,0 +1,28 @@
<?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>CFBundleDisplayName</key>
<string>NetRadiant</string>
<key>CFBundleExecutable</key>
<string>radiant</string>
<key>CFBundleIconFile</key>
<string>radiant.icns</string>
<key>CFBundleIdentifier</key>
<string>org.xonotic.netradiant</string>
<key>CFBundleName</key>
<string>NetRadiant</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.5.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>1.5.0</string>
<key>LSMinimumSystemVersion</key>
<string>10.7</string>
</dict>
</plist>

View File

@ -0,0 +1,35 @@
#!/bin/bash
RADIANT_HOME=$(dirname "$0")
RADIANT_HOME=${RADIANT_HOME/NetRadiant.app*/NetRadiant.app}
echo
echo "Starting NetRadiant in ${RADIANT_HOME}"
echo
set -x
resources="${RADIANT_HOME}/Contents/Resources"
export FONTCONFIG_PATH="${resources}/etc/fonts"
export FC_DEBUG=1024
export GDK_GL_LIBGL_PATH="${resources}/lib/libGL.1.dylib"
export GDK_GL_LIBGLU_PATH="${resources}/lib/libGLU.1.dylib"
export GDK_PATH="${resources}"
export GDK_PIXBUF_MODULE_FILE="${resources}/etc/gtk-2.0/gdk-pixbuf.loaders"
export GOBJECT_PATH="${resources}"
export GTK_DATA_PREFIX="${resources}"
export GTK_EXE_PREFIX="${resources}"
export GTK_PATH="${resources}"
export PANGO_SYSCONFDIR="${resources}/etc"
export PANGO_LIBDIR="${resources}/lib"
cd "${resources}/install"
./radiant &
set +x

View File

@ -0,0 +1,133 @@
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<!--
Adjusted FontConfig for GtkRadiant.app. Include only paths which Mac users
will more than likely have.
-->
<!--
Font directory list
-->
<dir>/usr/X11/lib/X11/fonts</dir>
<dir>/Library/Fonts</dir>
<dir>/System/Library/Fonts</dir>
<dir prefix="xdg">fonts</dir>
<!--
Accept deprecated 'mono' alias, replacing it with 'monospace'
-->
<match target="pattern">
<test qual="any" name="family">
<string>mono</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>monospace</string>
</edit>
</match>
<!--
Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'
-->
<match target="pattern">
<test qual="any" name="family">
<string>sans serif</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>sans-serif</string>
</edit>
</match>
<!--
Accept deprecated 'sans' alias, replacing it with 'sans-serif'
-->
<match target="pattern">
<test qual="any" name="family">
<string>sans</string>
</test>
<edit name="family" mode="assign" binding="same">
<string>sans-serif</string>
</edit>
</match>
<!-- Font cache directory list -->
<cachedir prefix="xdg">fontconfig</cachedir>
<config>
<!--
These are the default Unicode chars that are expected to be blank
in fonts. All other blank chars are assumed to be broken and
won't appear in the resulting charsets
-->
<blank>
<int>0x0020</int> <!-- SPACE -->
<int>0x00A0</int> <!-- NO-BREAK SPACE -->
<int>0x00AD</int> <!-- SOFT HYPHEN -->
<int>0x034F</int> <!-- COMBINING GRAPHEME JOINER -->
<int>0x0600</int> <!-- ARABIC NUMBER SIGN -->
<int>0x0601</int> <!-- ARABIC SIGN SANAH -->
<int>0x0602</int> <!-- ARABIC FOOTNOTE MARKER -->
<int>0x0603</int> <!-- ARABIC SIGN SAFHA -->
<int>0x06DD</int> <!-- ARABIC END OF AYAH -->
<int>0x070F</int> <!-- SYRIAC ABBREVIATION MARK -->
<int>0x115F</int> <!-- HANGUL CHOSEONG FILLER -->
<int>0x1160</int> <!-- HANGUL JUNGSEONG FILLER -->
<int>0x1680</int> <!-- OGHAM SPACE MARK -->
<int>0x17B4</int> <!-- KHMER VOWEL INHERENT AQ -->
<int>0x17B5</int> <!-- KHMER VOWEL INHERENT AA -->
<int>0x180E</int> <!-- MONGOLIAN VOWEL SEPARATOR -->
<int>0x2000</int> <!-- EN QUAD -->
<int>0x2001</int> <!-- EM QUAD -->
<int>0x2002</int> <!-- EN SPACE -->
<int>0x2003</int> <!-- EM SPACE -->
<int>0x2004</int> <!-- THREE-PER-EM SPACE -->
<int>0x2005</int> <!-- FOUR-PER-EM SPACE -->
<int>0x2006</int> <!-- SIX-PER-EM SPACE -->
<int>0x2007</int> <!-- FIGURE SPACE -->
<int>0x2008</int> <!-- PUNCTUATION SPACE -->
<int>0x2009</int> <!-- THIN SPACE -->
<int>0x200A</int> <!-- HAIR SPACE -->
<int>0x200B</int> <!-- ZERO WIDTH SPACE -->
<int>0x200C</int> <!-- ZERO WIDTH NON-JOINER -->
<int>0x200D</int> <!-- ZERO WIDTH JOINER -->
<int>0x200E</int> <!-- LEFT-TO-RIGHT MARK -->
<int>0x200F</int> <!-- RIGHT-TO-LEFT MARK -->
<int>0x2028</int> <!-- LINE SEPARATOR -->
<int>0x2029</int> <!-- PARAGRAPH SEPARATOR -->
<int>0x202A</int> <!-- LEFT-TO-RIGHT EMBEDDING -->
<int>0x202B</int> <!-- RIGHT-TO-LEFT EMBEDDING -->
<int>0x202C</int> <!-- POP DIRECTIONAL FORMATTING -->
<int>0x202D</int> <!-- LEFT-TO-RIGHT OVERRIDE -->
<int>0x202E</int> <!-- RIGHT-TO-LEFT OVERRIDE -->
<int>0x202F</int> <!-- NARROW NO-BREAK SPACE -->
<int>0x205F</int> <!-- MEDIUM MATHEMATICAL SPACE -->
<int>0x2060</int> <!-- WORD JOINER -->
<int>0x2061</int> <!-- FUNCTION APPLICATION -->
<int>0x2062</int> <!-- INVISIBLE TIMES -->
<int>0x2063</int> <!-- INVISIBLE SEPARATOR -->
<int>0x206A</int> <!-- INHIBIT SYMMETRIC SWAPPING -->
<int>0x206B</int> <!-- ACTIVATE SYMMETRIC SWAPPING -->
<int>0x206C</int> <!-- INHIBIT ARABIC FORM SHAPING -->
<int>0x206D</int> <!-- ACTIVATE ARABIC FORM SHAPING -->
<int>0x206E</int> <!-- NATIONAL DIGIT SHAPES -->
<int>0x206F</int> <!-- NOMINAL DIGIT SHAPES -->
<int>0x2800</int> <!-- BRAILLE PATTERN BLANK -->
<int>0x3000</int> <!-- IDEOGRAPHIC SPACE -->
<int>0x3164</int> <!-- HANGUL FILLER -->
<int>0xFEFF</int> <!-- ZERO WIDTH NO-BREAK SPACE -->
<int>0xFFA0</int> <!-- HALFWIDTH HANGUL FILLER -->
<int>0xFFF9</int> <!-- INTERLINEAR ANNOTATION ANCHOR -->
<int>0xFFFA</int> <!-- INTERLINEAR ANNOTATION SEPARATOR -->
<int>0xFFFB</int> <!-- INTERLINEAR ANNOTATION TERMINATOR -->
</blank>
<!--
Rescan configuration every 30 seconds when FcFontSetList is called
-->
<rescan>
<int>30</int>
</rescan>
</config>
</fontconfig>

View File

@ -0,0 +1 @@
[Pango]

50
setup/data/osx/README.md Normal file
View File

@ -0,0 +1,50 @@
GtkRadiant for Apple OSX
========================
This directory provides packaging steps for GtkRadiant for OSX. This document describes compiling the application on OSX as well as generating distributable bundles using the framework provided in this directory.
Dependencies & Compilation
--------------------------
Directions for OSX Mavericks 10.9 - your mileage may vary:
- Install [MacPorts](http://macports.org).
- Install [XQuartz](http://xquartz.macosforge.org/)
- Install dependencies with MacPorts:
```
sudo port install dylibbundler pkgconfig gtkglext scons
```
- Get the GtkRadiant code and compile:
```
git clone https://github.com/TTimo/GtkRadiant.git
cd GtkRadiant/
scons
```
- Run the build:
(from the GtkRadiant/ directory)
```
./install/radiant.bin
```
XQuartz note: on my configuration XQuartz doesn't automatically start for some reason. I have to open another terminal, and run the following command: `/Applications/Utilities/XQuartz.app/Contents/MacOS/X11.bin`, then start radiant.
Building GtkRadiant.app
-----------------------
The `Makefile` in the 'apple/' directory will produce a distributable .app bundle for GtkRadiant using `dylibbundler`:
```
make
make image
```
Getting help
------------
Get on irc: Quakenet #radiant, or ask on the mailing list, or post something on the issue tracker..