mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Add packaging files for MacOS
I couldn't figure out how the current packaging infrastructure was supposed to work, but with not too much work I could get the more standard gtk-mac-bundler to do what I wanted, so I added the support files needed for that and a little README on how to use them. The subsurface.sh and subsurface.bundle files are based on the launcher.sh and gtk-demo.bundle files from the gtk-mac-bundler release which is under GPLv2. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
0559a6a783
commit
73f290be8f
4 changed files with 327 additions and 2 deletions
135
packaging/macosx/subsurface.bundle
Normal file
135
packaging/macosx/subsurface.bundle
Normal file
|
@ -0,0 +1,135 @@
|
|||
<?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">/opt/local</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">/Applications</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. -->
|
||||
<binary>
|
||||
${prefix}/lib/gdk-pixbuf-2.0/${pkg:${gtk}:gtk_binary_version}/*.so
|
||||
</binary>
|
||||
|
||||
<!-- 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="gtk20">
|
||||
${prefix}/share/locale
|
||||
</translations>
|
||||
|
||||
|
||||
<!-- 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">
|
||||
${project}/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>
|
Loading…
Add table
Add a link
Reference in a new issue