Merge pull request #23092 from webosbrew/feature/webOS
[xbmc.git] / cmake / modules / FindPipewire.cmake
blob4424b0b57a2476a41851764f1f7aaa686964f2e4
1 #.rst:
2 # FindPipewire
3 # --------------
4 # Finds the Pipewire library
6 # This will define the following variables::
8 #  PIPEWIRE_FOUND - system has the Pipewire library
9 #  PIPEWIRE_INCLUDE_DIRS - the Pipewire include directory
10 #  PIPEWIRE_LIBRARIES - the libraries needed to use Pipewire
11 #  PIPEWIRE_DEFINITIONS - the definitions needed to use Pipewire
14 if(PKG_CONFIG_FOUND)
15   pkg_check_modules(PC_PIPEWIRE libpipewire-0.3>=0.3.50 QUIET)
16   pkg_check_modules(PC_SPA libspa-0.2>=0.2 QUIET)
17 endif()
19 find_path(PIPEWIRE_INCLUDE_DIR NAMES pipewire/pipewire.h
20                                PATHS ${PC_PIPEWIRE_INCLUDEDIR}
21                                PATH_SUFFIXES pipewire-0.3)
23 find_path(SPA_INCLUDE_DIR NAMES spa/support/plugin.h
24                           PATHS ${PC_SPA_INCLUDEDIR}
25                           PATH_SUFFIXES spa-0.2)
27 find_library(PIPEWIRE_LIBRARY NAMES pipewire-0.3
28                               PATHS ${PC_PIPEWIRE_LIBDIR})
30 if(PC_PIPEWIRE_VERSION)
31   set(PIPEWIRE_VERSION_STRING ${PC_PIPEWIRE_VERSION})
32 elseif(PIPEWIRE_INCLUDE_DIR AND EXISTS ${PIPEWIRE_INCLUDE_DIR}/pipewire/version.h)
33   file(STRINGS ${PIPEWIRE_INCLUDE_DIR}/pipewire/version.h PIPEWIRE_STRINGS)
34   string(REGEX MATCH "#define PW_MAJOR \([0-9]+\)" MAJOR_VERSION "${PIPEWIRE_STRINGS}")
35   set(MAJOR_VERSION ${CMAKE_MATCH_1})
36   string(REGEX MATCH "#define PW_MINOR \([0-9]+\)" MINOR_VERSION "${PIPEWIRE_STRINGS}")
37   set(MINOR_VERSION ${CMAKE_MATCH_1})
38   string(REGEX MATCH "#define PW_MICRO \([0-9]+\)" MICRO_VERSION "${PIPEWIRE_STRINGS}")
39   set(MICRO_VERSION ${CMAKE_MATCH_1})
40   set(PIPEWIRE_VERSION_STRING ${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION})
41 endif()
43 include(FindPackageHandleStandardArgs)
44 find_package_handle_standard_args(Pipewire
45                                   REQUIRED_VARS PIPEWIRE_LIBRARY PIPEWIRE_INCLUDE_DIR SPA_INCLUDE_DIR
46                                   VERSION_VAR PIPEWIRE_VERSION_STRING)
48 if(PIPEWIRE_FOUND)
49   set(PIPEWIRE_INCLUDE_DIRS ${PIPEWIRE_INCLUDE_DIR} ${SPA_INCLUDE_DIR})
50   set(PIPEWIRE_LIBRARIES ${PIPEWIRE_LIBRARY})
51   set(PIPEWIRE_DEFINITIONS -DHAS_PIPEWIRE=1)
52 endif()
54 mark_as_advanced(PIPEWIRE_INCLUDE_DIR PIPEWIRE_LIBRARY)