-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
pulseaudio: switch to Meson, add new versions, rename CMake targets #20732
Conversation
I detected other pull requests that are modifying pulseaudio/all recipe: This message is automatically generated by https://github.com/ericLemanissier/conan-center-conflicting-prs so don't hesitate to report issues/improvements there. |
It's not. There are 2 authoritative sources for a library:
Everything else is confidential and shouldn't be used as a reference. |
This comment has been minimized.
This comment has been minimized.
I kind of agree, but IMHO the goal of the packages provided by CCI should be to work as frictionlessly as possibly with existing code bases and environments. Since PulseAudio is most likely used via a system package manager, I think matching the naming conventions used by Ubuntu and Debian would be quite reasonable. Both of them include a set(PULSEAUDIO_FOUND TRUE)
set(PULSEAUDIO_VERSION_MAJOR 16)
set(PULSEAUDIO_VERSION_MINOR 1)
set(PULSEAUDIO_VERSION 16.1)
set(PULSEAUDIO_VERSION_STRING "16.1")
find_path(PULSEAUDIO_INCLUDE_DIR pulse/pulseaudio.h HINTS "/usr/include")
find_library(PULSEAUDIO_LIBRARY NAMES pulse libpulse HINTS "/usr/lib/x86_64-linux-gnu")
find_library(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop-glib libpulse-mainloop-glib HINTS "/usr/lib/x86_64-linux-gnu") With that in mind I still lean in favor of renaming it to |
It turns out that there is a CMake config file upstream: https://github.com/pulseaudio/pulseaudio/blob/v16.99.1/PulseAudioConfig.cmake.in#L1-L12 So I suggest to not define self.cpp_info.set_property("cmake_file_name", "PulseAudio")
self.cpp_info.filenames["cmake_find_package"] = "PulseAudio"
self.cpp_info.filenames["cmake_find_package_multi"] = "PulseAudio" Moreover you'll have to create these custom CMake vars, because they won't be defined out of the box by CMakeDeps, and existing libraries likely rely on them if you want frictionless integrations:
And finally, you'll have to submit a PR to aws-sdk-cpp recipe, because a patch relies on previous default cmake_file_name of pulseaudio recipe. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Conan v1 pipeline ❌Failure in build 6 (
Note: To save resources, CI tries to finish as soon as an error is found. For this reason you might find that not all the references have been launched or not all the configurations for a given reference. Also, take into account that we cannot guarantee the order of execution as it depends on CI workload and workers availability. |
Closing in favor of #22441. |
Follow-up for #20275 to have an actual PR to merge.
pulseaudio
have had Meson build system support for a while and the latest versions have dropped Autotools altogether. This PR updates the recipe accordingly.I also noticed that the recipe does not explicitly set the CMake file and target names and I did not see a reference to an existing convention either. So I renamed the targets based on the CMake modules used by KDE at https://api.kde.org/ecm/find-module/FindPulseAudio.html, which seems authoritative enough to me.
@ericLemanissier, I saw you left a comment in the recipe regarding generated CMake variables. Does the above change look reasonable to you?
TODO:
meson.build
. Only made minimal tweaks to get the existing functionality in the recipe to work.