From 055643091fd7f457b136f0990aa5fc83216006dc Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 8 Sep 2021 08:47:46 +1000 Subject: [PATCH] meson: drop default-session-manager, use the first session-manager instead default-session-manager is only used in the pw-uninstalled.sh developer script. c25cec230c0619bfb7eb4c56f6325046b3274667 added the ability to use the system-installed wireplumber but other than that this option is largely superfluous. Drop it and pick whichever the first entry to session-manager is. For the vast use-case of either MS or WP this will just work fine and for the niche case of building both SMs one just needs to make sure the order is as desired. And in the case of no session manager, the config line to start the SM is now commented out. --- .cirrus.yml | 2 +- meson_options.txt | 5 ---- src/daemon/meson.build | 52 +++++++++++++++--------------------------- 3 files changed, 20 insertions(+), 39 deletions(-) diff --git a/.cirrus.yml b/.cirrus.yml index fa3eb11c6..32a2a66a4 100644 --- a/.cirrus.yml +++ b/.cirrus.yml @@ -18,7 +18,7 @@ task: build_script: - mkdir build - cd build - - meson setup -Dalsa=enabled -Dpipewire-alsa=enabled -Dbluez5=disabled -Djack=disabled -Dpipewire-jack=disabled -Dpw-cat=enabled -Dv4l2=disabled -Dsdl2=enabled -Dsystemd=disabled -Dsession-managers=media-session -Ddefault-session-manager=media-session .. + - meson setup -Dalsa=enabled -Dpipewire-alsa=enabled -Dbluez5=disabled -Djack=disabled -Dpipewire-jack=disabled -Dpw-cat=enabled -Dv4l2=disabled -Dsdl2=enabled -Dsystemd=disabled -Dsession-managers=media-session .. - ninja test_script: - cd build diff --git a/meson_options.txt b/meson_options.txt index 2fc75d394..3d4d65335 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -204,8 +204,3 @@ option('session-managers', type : 'array', choices : ['media-session', 'wireplumber'], value : ['media-session']) -option('default-session-manager', - description : 'Default session manager (leave as-is if none are built)', - type : 'combo', - choices : ['auto', 'media-session', 'wireplumber'], - value : 'auto') diff --git a/src/daemon/meson.build b/src/daemon/meson.build index a65bebd7d..c9c292dad 100644 --- a/src/daemon/meson.build +++ b/src/daemon/meson.build @@ -17,57 +17,43 @@ conf_config.set('sm_comment', '#') conf_config.set('pulse_comment', '#') conf_config_uninstalled = conf_config -conf_config_uninstalled.set('session_manager_path', - meson.build_root() / 'src' / 'examples' / 'pipewire-media-session') conf_config_uninstalled.set('pipewire_path', meson.build_root() / 'src' / 'daemon' / 'pipewire') conf_config_uninstalled.set('pipewire_pulse_path', meson.build_root() / 'src' / 'daemon' / 'pipewire-pulse') -conf_config_uninstalled.set('sm_comment', '') conf_config_uninstalled.set('pulse_comment', '') build_ms = get_option('session-managers').contains('media-session') build_wp = get_option('session-managers').contains('wireplumber') -sm_choice = get_option('default-session-manager') -if sm_choice == 'auto' - sm_choice = get_option('session-managers').get(0, '') -endif +default_sm = get_option('session-managers').get(0, '') summary({'Build media-session': build_ms, 'Build wireplumber': build_wp, - 'Default session-manager': sm_choice}, + 'Default session-manager': default_sm}, section: 'Session managers', bool_yn: true) -if sm_choice == 'media-session' - if get_option('session-managers') == [] - summary({'No session manager': 'pw-uninstalled.sh will not work out of the box!'}) - elif not build_ms - error('media-session is the selected default session manager but it won\'t be built') - endif +if build_wp + wp_proj = subproject('wireplumber', required : true) endif -if not build_wp and (sm_choice == 'wireplumber') - wp_prog = find_program('wireplumber') - conf_config.set('session_manager_path', wp_prog.full_path()) - conf_config_uninstalled.set('session_manager_path', wp_prog.full_path()) - conf_config_uninstalled.set('session_manager_args', '') - summary({'Using system wireplumber': wp_prog.full_path()}, - section: 'Session managers', - bool_yn: true) -elif build_wp - wp_proj = subproject('wireplumber', required : true) - if sm_choice == 'wireplumber' - wp_bindir = wp_proj.get_variable('wireplumber_bin_dir', pipewire_bindir) +if default_sm == '' + summary({'No session manager': 'pw-uninstalled.sh will not work out of the box!'}) +elif default_sm == 'media-session' + conf_config_uninstalled.set('session_manager_path', + meson.build_root() / 'src' / 'examples' / 'pipewire-media-session') + conf_config_uninstalled.set('sm_comment', '') +elif default_sm == 'wireplumber' + wp_bindir = wp_proj.get_variable('wireplumber_bin_dir', pipewire_bindir) - conf_config.set('session_manager_path', wp_bindir / 'wireplumber') + conf_config.set('session_manager_path', wp_bindir / 'wireplumber') - # wp-uninstalled.sh -b path/to/wp/build/root wireplumber - conf_config_uninstalled.set('session_manager_path', - meson.source_root() / 'subprojects' / 'wireplumber' / 'wp-uninstalled.sh') - conf_config_uninstalled.set('session_manager_args', - '-b ' + meson.build_root() / 'subprojects' / 'wireplumber' + ' wireplumber') - endif + # wp-uninstalled.sh -b path/to/wp/build/root wireplumber + conf_config_uninstalled.set('session_manager_path', + meson.source_root() / 'subprojects' / 'wireplumber' / 'wp-uninstalled.sh') + conf_config_uninstalled.set('session_manager_args', + '-b ' + meson.build_root() / 'subprojects' / 'wireplumber' + ' wireplumber') + conf_config_uninstalled.set('sm_comment', '') endif conf_files = [