subsurface/packaging/macosx/subsurface.bundle
Dirk Hohndel f481622156 Yet more changes to create localized builds for Mac
It turns out that we need aliases for all the languages. And more fiddling
when creating the dmg. And a specialized MacPorts build with the install
path as prefix. What this basically means is that our app will be
correctly localized iff run as /Applications/Subsurface.app
Otherwise the gtk default texts (on buttons for example) may or may not be
translated.

One remaining issue is that apparently Gtk's Mac integration triggers on
the untranslated name Help the Menu tree in order to work. Yet we can't
easily tell the app not to translate that word as the translations are
done internally in gtk - we'd basicall have to build special subsurface.mo
files for Mac that don't contain a translation of the word "Help" for this
to work.

Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
2012-10-19 12:58:59 -07:00

142 lines
5.3 KiB
XML

<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
<app-bundle>
<meta>
<!-- Where to pick up the GTK+ installation, icon themes,
etc. Note that "${env:JHBUILD_PREFIX}" is evaluated to the
value of the environment variable JHBUILD_PREFIX. You can
define additional prefixes and refer to them in paths
throughout this file on the form "${prefix:name}". This is
useful for installing certain libraries or even the
application itself separately. Note that JHBUILD_PREFIX is
defined by jhbuild, so it you are not using jhbuild you can
either define your own or just hardcode the path here.
-->
<prefix name="default">/Applications/Subsurface.app/Contents/Resources</prefix>
<!-- The project directory is the default location of the created
app. If you leave out the path, the current directory is
used. Note the usage of an environment variable here again.
-->
<destination overwrite="yes">./staging</destination>
<image>
<!-- Not implemented yet (DMG image). -->
</image>
<!-- Comment this out to keep the install names in binaries -->
<run-install-name-tool/>
<!-- Optionally specify a launcher script to use. If the
application sets up everything needed itself, like
environment variable, linker paths, etc, a launcher script is
not needed. If the source path is left out, the default
script will be used.
-->
<launcher-script>${project}/subsurface.sh</launcher-script >
<!-- Not implemented: Optional runtime, could be python or mono
for example.
-->
<!-- runtime copy="yes">/usr/bin/python</runtime -->
<!-- Indicate the active gtk version to use. This is needed only
for gtk+-3.0 projects. -->
<gtk>gtk+-2.0</gtk>
</meta>
<!-- The special macro "${project}" refers to the directory where
this bundle file is located. The application name and bundle
identifier are taken from the plist file.
-->
<plist>${project}/Info.plist</plist>
<main-binary dest="${bundle}/Contents/MacOS">${project}/../../subsurface</main-binary>
<!-- Copy in GTK+ modules. Note the ${gtkdir} macro, which expands
to the correct library subdirectory for the specified gtk
version.
-->
<binary>
${prefix}/lib/${gtkdir}/modules/*.so
</binary>
<!-- Copy in GTK+ theme engines and print backends. Note the use of the
"${pkg:module:variable}" macro, which evaluates to a pkg-config
variable in the specified module. Note that any libraries that
binaries link to are also copied in automatically. Note also
the included ${gtk} macro, which gets the correct package name
to get. -->
<binary>
${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/engines/*.so
</binary>
<binary>
${prefix}/lib/${gtkdir}/${pkg:${gtk}:gtk_binary_version}/printbackends/*.so
</binary>
<!-- Starting with 2.24, gdk-pixbuf installs into its own directory. -->
<data>
${prefix}/lib/gdk-pixbuf-2.0/2.10.0/loaders/*.so
</data>
<!-- Translation filenames, one for each program or library that you
want to copy in to the bundle. The "dest" attribute is
optional, as usual. Bundler will find all translations of that
library/program under the indicated directory and copy them.-->
<translations name="subsurface">
${prefix}/share/locale
</translations>
<translations name="gtk20">
${prefix}/share/locale
</translations>
<!--
<data dest="${bundle}/Contents/Resources/share/locale">
${project}/Subsurface.app/Contents/Resources/share/locale
</data>
-->
<!-- Data to copy in, usually Glade/UI files, images, sounds files
etc. The destination inside the bundle can be specified if the
files should end up at a different location, by using the
"dest" property. The destination must then start with the macro
"${bundle}", which refers to the bundle root directory.
-->
<!-- data
${prefix}/share/gtk-demo
</data -->
<!-- Copy in the themes data. You may want to trim this to save space
in your bundle. -->
<data>
${prefix}/share/themes
</data>
<!-- Copy icons. Note that the .icns file is an Apple format which
contains up to 4 sizes of icon. You can use
/Developer/Applications/Utilities/Icon Composer.app to import
artwork and create the file. -->
<data dest="${bundle}/Contents/Resources">
${project}/Subsurface.icns
</data>
<!-- This is where theme commands go. You can copy them in from your
theme of choice if they provide and example, or you can just
change the source path. -->
<data dest="${bundle}/Contents/Resources/etc/${gtkdir}/gtkrc">
${prefix}/share/themes/Mac/gtk-2.0-key/gtkrc
</data>
<!-- Icon themes to copy. The "icons" property can be either of
"auto", "all", or "none". All or none should be
self-explanatory, while auto means that the script will try to
figure out which icons are needed. This is done by getting all
the strings from all copied binaries, and matching them against
icon names. To be safe, you should use "all". "none" is useful
if you want just the index.theme file but no icons, mostly
needed for the "hicolor" base theme.
>
<icon-theme icons="auto">
Tango
</icon-theme -->
</app-bundle>