From c1990dd02647405b0c13aab59f75d05cbb202336 Mon Sep 17 00:00:00 2001 From: Mohamed Akram Date: Wed, 1 May 2024 21:54:17 +0400 Subject: [PATCH] build-sys: Fix running on macOS Ensure modules are built as .so files so that they are found by ltdl at runtime. Fix HAVE_COREAUDIO not being set on macOS leading to sound not working in the default configuration. Fixes: https://gitlab.freedesktop.org/pulseaudio/pulseaudio/-/issues/3808 Part-of: --- meson.build | 3 +-- src/modules/meson.build | 7 +++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/meson.build b/meson.build index ba3d01dac..1aec95adc 100644 --- a/meson.build +++ b/meson.build @@ -152,8 +152,6 @@ cdata.set_quoted('PA_SRCDIR', join_paths(meson.current_source_dir(), 'src')) cdata.set_quoted('PA_BUILDDIR', meson.current_build_dir()) if host_machine.system() == 'windows' cdata.set_quoted('PA_SOEXT', '.dll') -elif host_machine.system() == 'darwin' - cdata.set_quoted('PA_SOEXT', '.dylib') else cdata.set_quoted('PA_SOEXT', '.so') endif @@ -192,6 +190,7 @@ endif # rather than ending up in the config.h file? if host_machine.system() == 'darwin' cdata.set('OS_IS_DARWIN', 1) + cdata.set('HAVE_COREAUDIO', 1) cdata.set('_DARWIN_C_SOURCE', '200112L') # Needed to get NSIG on Mac OS elif host_machine.system() == 'windows' cdata.set('OS_IS_WIN32', 1) diff --git a/src/modules/meson.build b/src/modules/meson.build index 3636ce0de..05267c93a 100644 --- a/src/modules/meson.build +++ b/src/modules/meson.build @@ -311,6 +311,12 @@ else no_undefined_args = [] endif +module_suffix = [] +if host_machine.system() == 'darwin' + # meson defaults to dylib but ltdl expects so + module_suffix = 'so' +endif + foreach m : all_modules name = m[0] sources = m[1] @@ -331,5 +337,6 @@ foreach m : all_modules link_args : [nodelete_link_args, no_undefined_args], link_with : extra_libs, name_prefix : '', + name_suffix : module_suffix, implicit_include_directories : false) endforeach