diff --git a/CMakeLists.txt b/CMakeLists.txt --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,6 +45,21 @@ find_package(Canberra REQUIRED) find_package(GLIB2 REQUIRED) +find_package(CanberraPulse) +set_package_properties(CanberraPulse PROPERTIES + DESCRIPTION "Pulseaudio backend for libcanberra" + PURPOSE "Required for volume feedback sounds" + TYPE RUNTIME +) + +find_package(SoundThemeFreedesktop) +set_package_properties(SoundThemeFreedesktop PROPERTIES + DESCRIPTION "The standard freedesktop sound theme" + PURPOSE "Required for volume feedback sounds" + URL "https://www.freedesktop.org/wiki/Specifications/sound-theme-spec/" + TYPE RUNTIME +) + find_package(KF5Kirigami2 ${KF5_MIN_VERSION} CONFIG) set_package_properties(KF5Kirigami2 PROPERTIES DESCRIPTION "A QtQuick based components set" diff --git a/cmake/FindCanberra.cmake b/cmake/FindCanberra.cmake --- a/cmake/FindCanberra.cmake +++ b/cmake/FindCanberra.cmake @@ -4,8 +4,10 @@ # CANBERRA_FOUND - true if libcanberra was found # CANBERRA_LIBRARIES - libcanberra libraries to link against # CANBERRA_INCLUDE_DIRS - include path for libcanberra +# CANBERRA_VERSION - version of libcanberra # # Copyright (c) 2012 Raphael Kubo da Costa +# Copyright (c) 2019 Harald Sitter # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -44,7 +46,12 @@ HINTS ${PC_CANBERRA_INCLUDE_DIRS} ${PC_CANBERRA_INCLUDEDIR} ) +set(CANBERRA_VERSION ${PC_CANBERRA_VERSION}) + include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Canberra REQUIRED_VARS CANBERRA_LIBRARIES CANBERRA_INCLUDE_DIRS) +find_package_handle_standard_args(Canberra + REQUIRED_VARS CANBERRA_LIBRARIES CANBERRA_INCLUDE_DIRS + VERSION_VAR CANBERRA_VERSION +) -mark_as_advanced(CANBERRA_LIBRARIES CANBERRA_INCLUDE_DIRS) +mark_as_advanced(CANBERRA_LIBRARIES CANBERRA_INCLUDE_DIRS CANBERRA_VERSION) diff --git a/cmake/FindCanberra.cmake b/cmake/FindCanberraPulse.cmake copy from cmake/FindCanberra.cmake copy to cmake/FindCanberraPulse.cmake --- a/cmake/FindCanberra.cmake +++ b/cmake/FindCanberraPulse.cmake @@ -1,11 +1,9 @@ -# - Find libcanberra's libraries and headers. +# - Find libcanberra's pulseaudio backend. # This module defines the following variables: # -# CANBERRA_FOUND - true if libcanberra was found -# CANBERRA_LIBRARIES - libcanberra libraries to link against -# CANBERRA_INCLUDE_DIRS - include path for libcanberra +# CanberraPulse_FOUND - true if the backend was found # -# Copyright (c) 2012 Raphael Kubo da Costa +# Copyright (c) 2019 Harald Sitter # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -31,20 +29,18 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. -find_package(PkgConfig) -pkg_check_modules(PC_CANBERRA libcanberra) +find_package(Canberra) -find_library(CANBERRA_LIBRARIES - NAMES canberra - HINTS ${PC_CANBERRA_LIBRARY_DIRS} ${PC_CANBERRA_LIBDIR} -) - -find_path(CANBERRA_INCLUDE_DIRS - NAMES canberra.h - HINTS ${PC_CANBERRA_INCLUDE_DIRS} ${PC_CANBERRA_INCLUDEDIR} +find_library(CanberraPulse_LIBRARY canberra-pulse + PATH_SUFFIXES libcanberra libcanberra-${CANBERRA_VERSION} ) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Canberra REQUIRED_VARS CANBERRA_LIBRARIES CANBERRA_INCLUDE_DIRS) +find_package_handle_standard_args(CanberraPulse + FOUND_VAR CanberraPulse_FOUND + REQUIRED_VARS CanberraPulse_LIBRARY +) +mark_as_advanced(CanberraPulse_LIBRARY) -mark_as_advanced(CANBERRA_LIBRARIES CANBERRA_INCLUDE_DIRS) +# NB: CanberraPulse_LIBRARY is intentionally not documented as it serves no +# public purpose (it's a plugin, not a library). diff --git a/cmake/FindCanberra.cmake b/cmake/FindSoundThemeFreedesktop.cmake copy from cmake/FindCanberra.cmake copy to cmake/FindSoundThemeFreedesktop.cmake --- a/cmake/FindCanberra.cmake +++ b/cmake/FindSoundThemeFreedesktop.cmake @@ -1,11 +1,10 @@ -# - Find libcanberra's libraries and headers. +# - Find sound-theme-freedesktop via XDG_DATA_DIRS # This module defines the following variables: # -# CANBERRA_FOUND - true if libcanberra was found -# CANBERRA_LIBRARIES - libcanberra libraries to link against -# CANBERRA_INCLUDE_DIRS - include path for libcanberra +# SoundThemeFreeDesktop_FOUND - true if the sound theme is found +# SoundThemeFreeDesktop_PATH - path to the index.theme file # -# Copyright (c) 2012 Raphael Kubo da Costa +# Copyright (c) 2019 Harald Sitter # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions @@ -31,20 +30,14 @@ # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF # SUCH DAMAGE. -find_package(PkgConfig) -pkg_check_modules(PC_CANBERRA libcanberra) - -find_library(CANBERRA_LIBRARIES - NAMES canberra - HINTS ${PC_CANBERRA_LIBRARY_DIRS} ${PC_CANBERRA_LIBDIR} -) - -find_path(CANBERRA_INCLUDE_DIRS - NAMES canberra.h - HINTS ${PC_CANBERRA_INCLUDE_DIRS} ${PC_CANBERRA_INCLUDEDIR} +find_file(SoundThemeFreeDesktop_PATH "sounds/freedesktop/index.theme" + PATHS ENV XDG_DATA_DIRS /usr/local/share/ /usr/share/ + NO_DEFAULT_PATH ) include(FindPackageHandleStandardArgs) -find_package_handle_standard_args(Canberra REQUIRED_VARS CANBERRA_LIBRARIES CANBERRA_INCLUDE_DIRS) - -mark_as_advanced(CANBERRA_LIBRARIES CANBERRA_INCLUDE_DIRS) +find_package_handle_standard_args(SoundThemeFreeDesktop + FOUND_VAR SoundThemeFreeDesktop_FOUND + REQUIRED_VARS SoundThemeFreeDesktop_PATH +) +mark_as_advanced(SoundThemeFreeDesktop_PATH)