summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorNick Mainsbridge <beatroute@iprimus.com.au>2008-02-25 17:37:55 +0000
committerNick Mainsbridge <beatroute@iprimus.com.au>2008-02-25 17:37:55 +0000
commit17b09708f64ecc5381988fe2e93606e8230340e9 (patch)
tree25a9d2890a6582d7e986f2eac3af6df3338128ba /gtk2_ardour
parent2f18e339cdffadbc5a37db39207dc1f7be7cb8ac (diff)
New FREEDESKTOP scons option installs desktop MIME entry and .desktop file. Also uses fd.o standard names and locations for icons.
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3121 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/SConscript43
-rw-r--r--gtk2_ardour/ardour2.desktop.in9
-rw-r--r--gtk2_ardour/ardour2.xml8
3 files changed, 56 insertions, 4 deletions
diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript
index 56a9633683..0b3da94e06 100644
--- a/gtk2_ardour/SConscript
+++ b/gtk2_ardour/SConscript
@@ -471,10 +471,43 @@ env.Alias('install', env.Install(os.path.join(config_prefix, 'ardour2'), 'SAE-de
# data files
env.Alias('install', env.Install(os.path.join(install_prefix, 'share', 'ardour2'), 'splash.png'))
env.Alias('install', env.Install(os.path.join(install_prefix, 'share', 'ardour2', 'pixmaps'), pixmap_files))
-env.Alias('install', env.Install(os.path.join(install_prefix, 'share', 'ardour2', 'icons'), icon_files))
-
+if not env['FREEDESKTOP']:
+ env.Alias('install', env.Install(os.path.join(install_prefix, 'share', 'ardour2', 'icons'), icon_files))
env.Alias ('version', gtkardour.VersionBuild(['version.cc','version.h'], []))
-
+
+# This will install icons and MIME type as per freedesktop.org specs. #
+if env['FREEDESKTOP']:
+ desktop_icon_install_prefix = install_prefix + '/share/icons/hicolor'
+ # Install the desktop icons to the default locations #
+ env.Alias('install', env.InstallAs(os.path.join(desktop_icon_install_prefix, '16x16', 'apps', 'ardour2.png'), 'icons/ardour_icon_16px.png'))
+ env.Alias('install', env.InstallAs(os.path.join(desktop_icon_install_prefix, '22x22', 'apps', 'ardour2.png'), 'icons/ardour_icon_22px.png'))
+ env.Alias('install', env.InstallAs(os.path.join(desktop_icon_install_prefix, '32x32', 'apps', 'ardour2.png'), 'icons/ardour_icon_32px.png'))
+ env.Alias('install', env.InstallAs(os.path.join(desktop_icon_install_prefix, '48x48', 'apps', 'ardour2.png'), 'icons/ardour_icon_48px.png'))
+ # Install the mime type xml file and its icon #
+ env.Alias('install', env.Install(os.path.join(install_prefix, 'share', 'mime', 'packages'), 'ardour2.xml'))
+ env.Alias('install', env.InstallAs(os.path.join(desktop_icon_install_prefix, '48x48', 'mimetypes','application-x-ardour2.png'), 'icons/ardour_icon_48px.png'))
+ env.Alias('install', env.Command (os.path.join(install_prefix, 'share', 'mime'), [], 'update-mime-database $TARGET'))
+ # Update the icon cache #
+ env.Alias('install', env.Command (desktop_icon_install_prefix, [], 'touch --no-create $TARGET'))
+ env.Alias('install', env.Command (desktop_icon_install_prefix, [], 'gtk-update-icon-cache $TARGET'))
+ # Make the ardour2.desktop file and install it #
+ env.Alias('install', env.Command ('ardour2.desktop', 'ardour2.desktop.in', 'cat $SOURCES > $TARGET'))
+ env.Alias('install', env.Install(os.path.join(install_prefix, 'share', 'applications'), 'ardour2.desktop'))
+ env.Alias('install', env.Command (os.path.join(install_prefix, 'share', 'applications'), [], 'update-desktop-database $TARGET'))
+ # uninstall target.. needed to run update-mime-database and update-desktop-database after removal. #`
+ remove_desktop_files = env.Command ('another_frobnicatory_decoy', [],
+ [ Delete (install_prefix + '/share/mime/packages/ardour2.xml'),
+ Delete (install_prefix + '/share/applications/ardour2.desktop'),
+ Delete (desktop_icon_install_prefix + '/16x16/apps/ardour2.png'),
+ Delete (desktop_icon_install_prefix + '/22x22/apps/ardour2.png'),
+ Delete (desktop_icon_install_prefix + '/32x32/apps/ardour2.png'),
+ Delete (desktop_icon_install_prefix + '/48x48/apps/ardour2.png'),
+ Delete (desktop_icon_install_prefix + '/48x48/mimetypes/application-x-ardour2.png'),
+ Action ('update-mime-database ' + install_prefix + '/share/mime'),
+ Action ('gtk-update-icon-cache ' + desktop_icon_install_prefix),
+ Action ('update-desktop-database ' + install_prefix + '/share/applications')])
+ env.Alias('uninstall', remove_desktop_files)
+
#dist
env.Alias ('tarball', env.Distribute (env['DISTTREE'],
[ 'SConscript',
@@ -488,7 +521,9 @@ env.Alias ('tarball', env.Distribute (env['DISTTREE'],
'ardour-sae-ansi.bindings.in',
'ardour-sae-de.bindings.in',
'ardour2_ui_default.conf',
- 'editor_xpms'
+ 'editor_xpms',
+ 'ardour2.xml',
+ 'ardour2.desktop.in'
] +
gtkardour_files +
vst_files +
diff --git a/gtk2_ardour/ardour2.desktop.in b/gtk2_ardour/ardour2.desktop.in
new file mode 100644
index 0000000000..b5911e89b4
--- /dev/null
+++ b/gtk2_ardour/ardour2.desktop.in
@@ -0,0 +1,9 @@
+[Desktop Entry]
+Name=Ardour
+Comment=Ardour Digital Audio Workstation
+Exec=ardour2
+Icon=ardour2
+Terminal=false
+MimeType=application/x-ardour2;
+Type=Application
+Categories=AudioVideo;Audio;X-Recorders;X-Multitrack;X-Jack;
diff --git a/gtk2_ardour/ardour2.xml b/gtk2_ardour/ardour2.xml
new file mode 100644
index 0000000000..dd1c46ecf2
--- /dev/null
+++ b/gtk2_ardour/ardour2.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
+ <mime-type type="application/x-ardour2">
+ <sub-class-of type="application/xml"/>
+ <comment>Ardour session file</comment>
+ <glob pattern="*.ardour"/>
+ </mime-type>
+</mime-info>