Skip to content

Commit fad08aa

Browse files
committed
meson: Allow custom prefixes for third-party packages
labwc, magpie, gsd does not always share the same prefix as budgie-desktop and sometimes they are just installed in some unusual paths. For example, in NixOS labwc is installed in /nix/store/xxx-labwc-0.8.2/bin, and in Arch Linux gsd-media-keys is installed in /usr/lib/. Simply don't hardcode these paths.
1 parent b015e58 commit fad08aa

18 files changed

+59
-22
lines changed

meson.build

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ add_global_arguments('-DGETTEXT_PACKAGE="budgie-desktop"', language: 'c')
9797

9898
# Globals that we need
9999
prefix = get_option('prefix')
100+
bindir = join_paths(prefix, get_option('bindir'))
100101
libdir = join_paths(prefix, get_option('libdir'))
101102
libexecdir = join_paths(prefix, get_option('libexecdir'), meson.project_name())
102103
confdir = join_paths(prefix, get_option('sysconfdir'))

meson_options.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
option('ci', type: 'boolean', value: false, description: 'Continuous Integration flag (internal use only)')
2+
option('gsd-libexecdir', type: 'string', description: 'Directory containing the gsd-* executables')
3+
option('labwc-bindir', type: 'string', description: 'Directory containing the labwc executable')
4+
#option('magpie-bindir', type: 'string', description: 'Directory containing the magpie-wm executable')
25
option('use-old-zenity', type: 'boolean', value: false, description: 'Use old zenity CLI API for out-of-process dialog handling')
36
option('with-bluetooth', type: 'boolean', value: true, description: 'Enable Bluetooth (Vala option)')
47
option('with-gtk-doc', type: 'boolean', value: true, description: 'Build gtk-doc documentation')
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[Desktop Entry]
22
_Name=Budgie Desktop (magpie)
33
_Comment=This session logs you into the Budgie Desktop using magpie as the window manager
4-
Exec=@prefix@/bin/magpie-wm -s /usr/bin/budgie-desktop
5-
TryExec=@prefix@/bin/magpie-wm
4+
Exec=@magpie_bindir@/magpie-wm -s @bindir@/budgie-desktop
5+
TryExec=@magpie_bindir@/magpie-wm
66
Icon=
77
Type=Application
88
DesktopNames=Budgie
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
[Desktop Entry]
22
_Name=Budgie Desktop
33
_Comment=This session logs you into the Budgie Desktop using labwc as the window manager
4-
Exec=@prefix@/bin/labwc -S /usr/bin/budgie-desktop
5-
TryExec=@prefix@/bin/labwc
4+
Exec=@labwc_bindir@/labwc -S @bindir@/budgie-desktop
5+
TryExec=@labwc_bindir@/labwc
66
Icon=
77
Type=Application
88
DesktopNames=Budgie

src/session/meson.build

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,30 @@ session_components = budgie_components + budgie_session_324_components
3737
session_data.set('SESSION_COMPONENTS', ';'.join(session_components))
3838
# Set the prefix
3939
session_data.set('prefix', join_paths(get_option('prefix')))
40+
# Set bindir to budgie-desktop
41+
session_data.set('bindir', bindir)
42+
43+
# Set bindir to labwc
44+
labwc_bindir = get_option('labwc-bindir')
45+
if labwc_bindir == ''
46+
labwc_bindir = bindir
47+
endif
48+
session_data.set('labwc_bindir', labwc_bindir)
49+
50+
# Set bindir to magpie-wm
51+
#magpie_bindir = get_option('magpie-bindir')
52+
#if magpie_bindir == ''
53+
# magpie_bindir = bindir
54+
#endif
55+
#session_data.set('magpie_bindir', magpie_bindir)
56+
57+
# Set libexecdir to gnome-settings-daemon
58+
# Unfortunately this info is not provided by its pkgconfig file
59+
gsd_libexecdir = get_option('gsd-libexecdir')
60+
if gsd_libexecdir == ''
61+
gsd_libexecdir = join_paths(get_option('prefix'), get_option('libexecdir'))
62+
endif
63+
session_data.set('gsd_libexecdir', gsd_libexecdir)
4064

4165
# Write the budgie-desktop.session.in file from the .in.in
4266
session_conf = configure_file(
@@ -120,8 +144,17 @@ custom_target('desktop-file-powerdialog',
120144

121145
# install gnome-settings-daemon desktop files to ensure they autostart
122146

123-
install_subdir(
124-
'settingsdaemon',
125-
install_dir: xdg_appdir,
126-
strip_directory: true
127-
)
147+
settings_daemon_components = budgie_session_324_components + [
148+
'org.buddiesofbudgie.SettingsDaemon.DiskUtilityNotify',
149+
'org.buddiesofbudgie.SettingsDaemon.UsbProtection',
150+
'org.buddiesofbudgie.SettingsDaemon.Wwan',
151+
]
152+
153+
foreach component: settings_daemon_components
154+
configure_file(
155+
input: join_paths('settingsdaemon', component + '.desktop.in'),
156+
output: '@BASENAME@',
157+
configuration: session_data,
158+
install_dir: xdg_appdir,
159+
)
160+
endforeach

src/session/settingsdaemon/org.buddiesofbudgie.SettingsDaemon.A11ySettings.desktop renamed to src/session/settingsdaemon/org.buddiesofbudgie.SettingsDaemon.A11ySettings.desktop.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[Desktop Entry]
22
Type=Application
33
Name=Budgie Desktop accessibility
4-
Exec=/usr/libexec/gsd-a11y-settings
4+
Exec=@gsd_libexecdir@/gsd-a11y-settings
55
OnlyShowIn=Budgie;
66
NoDisplay=true
77
X-GNOME-Autostart-Phase=Initialization

src/session/settingsdaemon/org.buddiesofbudgie.SettingsDaemon.Datetime.desktop renamed to src/session/settingsdaemon/org.buddiesofbudgie.SettingsDaemon.Datetime.desktop.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[Desktop Entry]
22
Type=Application
33
Name=Budgie date & time
4-
Exec=/usr/libexec/gsd-datetime
4+
Exec=@gsd_libexecdir@/gsd-datetime
55
OnlyShowIn=Budgie;
66
NoDisplay=true
77
X-GNOME-Autostart-Phase=Initialization
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[Desktop Entry]
22
Type=Application
33
Name=gnome-disk-utility notification plugin for GNOME Settings Daemon (Budgie)
4-
Exec=/usr/libexec/gsd-disk-utility-notify
4+
Exec=@gsd_libexecdir@/gsd-disk-utility-notify
55
OnlyShowIn=Budgie;
66
NoDisplay=true
77
X-GNOME-AutoRestart=true

src/session/settingsdaemon/org.buddiesofbudgie.SettingsDaemon.Housekeeping.desktop renamed to src/session/settingsdaemon/org.buddiesofbudgie.SettingsDaemon.Housekeeping.desktop.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[Desktop Entry]
22
Type=Application
33
Name=Budgie Desktop maintenance of expirable data
4-
Exec=/usr/libexec/gsd-housekeeping
4+
Exec=@gsd_libexecdir@/gsd-housekeeping
55
OnlyShowIn=Budgie;
66
NoDisplay=true
77
X-GNOME-Autostart-Phase=Initialization

src/session/settingsdaemon/org.buddiesofbudgie.SettingsDaemon.Power.desktop renamed to src/session/settingsdaemon/org.buddiesofbudgie.SettingsDaemon.Power.desktop.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[Desktop Entry]
22
Type=Application
33
Name=Budgie power management
4-
Exec=/usr/libexec/gsd-power
4+
Exec=@gsd_libexecdir@/gsd-power
55
OnlyShowIn=Budgie;
66
NoDisplay=true
77
X-GNOME-Autostart-Phase=Initialization

0 commit comments

Comments
 (0)