[gnome-session: 1/2] data: use absolute paths in desktop files



commit ebe5a2ef3e67a15a45a54dbe4c23c8990a93f898
Author: Jan Tojnar <jtojnar gmail com>
Date:   Mon Jul 23 20:42:30 2018 +0200

    data: use absolute paths in desktop files

 data/gnome-custom-session.desktop.in               |  5 --
 data/gnome-custom-session.desktop.in.in            |  5 ++
 ...me-xorg.desktop.in => gnome-xorg.desktop.in.in} |  4 +-
 data/{gnome.desktop.in => gnome.desktop.in.in}     |  4 +-
 data/meson.build                                   | 82 +++++++++++-----------
 5 files changed, 51 insertions(+), 49 deletions(-)
---
diff --git a/data/gnome-custom-session.desktop.in.in b/data/gnome-custom-session.desktop.in.in
new file mode 100644
index 00000000..5fadaa09
--- /dev/null
+++ b/data/gnome-custom-session.desktop.in.in
@@ -0,0 +1,5 @@
+[Desktop Entry]
+Name=Custom
+Comment=This entry lets you select a saved session
+Exec=@bindir@/gnome-session-custom-session
+TryExec=@bindir@/gnome-session-custom-session
diff --git a/data/gnome-xorg.desktop.in b/data/gnome-xorg.desktop.in.in
similarity index 65%
rename from data/gnome-xorg.desktop.in
rename to data/gnome-xorg.desktop.in.in
index 8ddeb851..ff4d35c9 100644
--- a/data/gnome-xorg.desktop.in
+++ b/data/gnome-xorg.desktop.in.in
@@ -1,7 +1,7 @@
 [Desktop Entry]
 Name=GNOME on Xorg
 Comment=This session logs you into GNOME
-Exec=gnome-session
-TryExec=gnome-session
+Exec=@bindir@/gnome-session
+TryExec=@bindir@/gnome-session
 Type=Application
 DesktopNames=GNOME
diff --git a/data/gnome.desktop.in b/data/gnome.desktop.in.in
similarity index 63%
rename from data/gnome.desktop.in
rename to data/gnome.desktop.in.in
index 7b78e940..516c211e 100644
--- a/data/gnome.desktop.in
+++ b/data/gnome.desktop.in.in
@@ -1,7 +1,7 @@
 [Desktop Entry]
 Name=GNOME
 Comment=This session logs you into GNOME
-Exec=gnome-session
-TryExec=gnome-session
+Exec=@bindir@/gnome-session
+TryExec=@bindir@/gnome-session
 Type=Application
 DesktopNames=GNOME
diff --git a/data/meson.build b/data/meson.build
index 89af98f8..b976e739 100644
--- a/data/meson.build
+++ b/data/meson.build
@@ -1,33 +1,47 @@
-desktop = 'gnome.desktop'
-
-# FIXME: The same target can not be copied into two directories.
-#        There is a workaround in meson_post_install.py until proper solution arises:
-#        https://groups.google.com/forum/#!topic/mesonbuild/3iIoYPrN4P0
-i18n.merge_file(
-  desktop,
-  type: 'desktop',
-  input: desktop + '.in',
-  output: desktop,
-  po_dir: po_dir,
-  install: true,
-  #install_dir: [
-  #  join_paths(session_datadir, 'xsessions'),
-  #  join_paths(session_datadir, 'wayland-sessions')
-  #]
-  install_dir: join_paths(session_datadir, 'xsessions')
-)
+desktop_plain = 'gnome'
 
-desktop = 'gnome-xorg.desktop'
+desktops = [
+  desktop_plain,
+  'gnome-xorg'
+]
 
-i18n.merge_file(
-  desktop,
-  type: 'desktop',
-  input: desktop + '.in',
-  output: desktop,
-  po_dir: po_dir,
-  install: true,
-  install_dir: join_paths(session_datadir, 'xsessions')
-)
+if enable_session_selector
+  desktops += 'gnome-custom-session'
+endif
+
+foreach name: desktops
+  desktop_conf = configuration_data()
+  desktop_conf.set('bindir', session_bindir)
+
+  desktop = name + '.desktop'
+
+  desktop_in = configure_file(
+    input: desktop + '.in.in',
+    output: desktop + '.in',
+    configuration: desktop_conf
+  )
+
+  install_dir = join_paths(session_datadir, 'xsessions')
+  # FIXME: The same target can not be copied into two directories.
+  #        There is a workaround in meson_post_install.py until proper solution arises:
+  #        https://groups.google.com/forum/#!topic/mesonbuild/3iIoYPrN4P0
+  if name == desktop_plain
+    #install_dir: [
+    #  join_paths(session_datadir, 'xsessions'),
+    #  join_paths(session_datadir, 'wayland-sessions')
+    #]
+  endif
+
+  desktop_target = i18n.merge_file(
+    desktop,
+    type: 'desktop',
+    input: desktop_in,
+    output: desktop,
+    po_dir: po_dir,
+    install: true,
+    install_dir: install_dir
+  )
+endforeach
 
 sessions = [
   'gnome.session',
@@ -78,18 +92,6 @@ data = files('hardware-compatibility')
 
 if enable_session_selector
   data += files('session-selector.ui')
-
-  desktop = 'gnome-custom-session.desktop'
-
-  i18n.merge_file(
-    desktop,
-    type: 'desktop',
-    input: desktop + '.in',
-    output: desktop,
-    po_dir: po_dir,
-    install: true,
-    install_dir: join_paths(session_datadir, 'xsessions')
-  )
 endif
 
 install_data(


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]