Warning, /libraries/phonon/phonon/CMakeLists.txt is written in an unsupported language. File is not indexed.

0001 if(PHONON_BUILD_EXPERIMENTAL)
0002     add_subdirectory(experimental)
0003 endif()
0004 
0005 configure_file(phononconfig_p.h.in ${CMAKE_CURRENT_BINARY_DIR}/phonon/phononconfig_p.h @ONLY)
0006 configure_file(phononnamespace.h.in ${CMAKE_CURRENT_BINARY_DIR}/phonon/phononnamespace.h @ONLY)
0007 
0008 find_package(PulseAudio 0.9.15)
0009 set_package_properties(PulseAudio PROPERTIES
0010     TYPE RECOMMENDED
0011     DESCRIPTION "A cross-platform, networked sound server"
0012     URL "http://www.pulseaudio.org")
0013 find_package(GLIB2)
0014 set_package_properties(GLIB2 PROPERTIES
0015     TYPE RECOMMENDED
0016     DESCRIPTION "GLib 2 is required to compile the pulseaudio for Phonon"
0017     URL "http://www.gtk.org/download/")
0018 
0019 if (GLIB2_FOUND AND PULSEAUDIO_FOUND)
0020    set(PHONON_PULSESUPPORT TRUE CACHE BOOL "Has Phonon pulseaudio support ?")
0021    if(PHONON_PULSESUPPORT)
0022        add_definitions(-DHAVE_PULSEAUDIO)
0023    endif(PHONON_PULSESUPPORT)
0024    include_directories(${GLIB2_INCLUDE_DIR} ${PULSEAUDIO_INCLUDE_DIR})
0025 else(GLIB2_FOUND AND PULSEAUDIO_FOUND)
0026    set(PHONON_PULSESUPPORT FALSE CACHE BOOL "Has Phonon pulseaudio support ?")
0027    set(PULSEAUDIO_INCLUDE_DIR "")
0028    set(PULSEAUDIO_LIBRARY "")
0029    set(PULSEAUDIO_MAINLOOP_LIBRARY "")
0030 endif(GLIB2_FOUND AND PULSEAUDIO_FOUND)
0031 
0032 set(phonon_LIB_SRCS
0033    abstractaudiooutput.cpp
0034    abstractaudiooutput_p.cpp
0035    abstractmediastream.cpp
0036    abstractvideooutput.cpp
0037    abstractvideooutput_p.cpp
0038    audiodataoutput.cpp
0039    audiooutput.cpp
0040    audiooutputinterface.cpp
0041    backendcapabilities.cpp
0042    effect.cpp
0043    effectparameter.cpp
0044    effectwidget.cpp
0045    factory.cpp
0046    globalconfig.cpp
0047    iodevicestream.cpp
0048    mediacontroller.cpp
0049    mediaobject.cpp
0050    medianode.cpp
0051    mediasource.cpp
0052    mrl.cpp
0053    objectdescription.cpp
0054    objectdescriptionmodel.cpp
0055    path.cpp
0056    phononnamespace.cpp
0057    platform.cpp
0058    pulsesupport.cpp
0059    seekslider.cpp
0060    statesvalidator.cpp
0061    streaminterface.cpp
0062    swiftslider.cpp
0063    volumefadereffect.cpp
0064    volumeslider.cpp
0065    videoplayer.cpp
0066    videowidget.cpp
0067    ${phonon_VGO_SRCS}
0068    )
0069 
0070 ecm_create_qm_loader(phonon_LIB_SRCS libphonon_qt)
0071 
0072 option(PHONON_NO_PLATFORMPLUGIN "Do not use any platform plugin")
0073 if (PHONON_NO_PLATFORMPLUGIN)
0074     add_definitions(-DQT_NO_PHONON_PLATFORMPLUGIN)
0075 endif (PHONON_NO_PLATFORMPLUGIN)
0076 
0077 add_definitions(-DPHONON_PLUGIN_PATH="${PLUGIN_INSTALL_DIR}")
0078 add_definitions(-DPHONON_BACKEND_DIR_SUFFIX="/${BACKEND_DIR_SUFFIX}/")
0079 
0080 set(optional_link_libraries)
0081 
0082 if(PHONON_PULSESUPPORT)
0083     list(APPEND phonon_LIB_SRCS pulsestream.cpp)
0084     list(APPEND optional_link_libraries ${GOBJECT_LIBRARIES} ${PULSEAUDIO_LIBRARY} ${PULSEAUDIO_MAINLOOP_LIBRARY})
0085 endif()
0086 
0087 add_library(${PHONON_LIB_SONAME} SHARED ${phonon_LIB_SRCS})
0088 add_library(Phonon::${PHONON_LIB_SONAME} ALIAS ${PHONON_LIB_SONAME})
0089 
0090 target_link_libraries(${PHONON_LIB_SONAME}
0091     PUBLIC
0092         Qt${QT_MAJOR_VERSION}::Core
0093         Qt${QT_MAJOR_VERSION}::Widgets
0094     PRIVATE
0095         ${optional_link_libraries}
0096 )
0097 
0098 if (QT_MAJOR_VERSION STREQUAL "6")
0099     target_link_libraries(${PHONON_LIB_SONAME} PRIVATE Qt6::Core5Compat)
0100 endif()
0101 
0102 set_target_properties(${PHONON_LIB_SONAME}
0103     PROPERTIES
0104         VERSION ${PHONON_VERSION}
0105         SOVERSION ${PHONON_SOVERSION}
0106         DEFINE_SYMBOL MAKE_PHONON_LIB)
0107 
0108 target_include_directories(${PHONON_LIB_SONAME}
0109     INTERFACE "$<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>"
0110     PUBLIC
0111         # snake header <phonon/foo.h>
0112         "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../;${CMAKE_CURRENT_BINARY_DIR}/../;${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_BINARY_DIR}/phonon>"
0113         # camel header <phonon/Foo>
0114         "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../includes;${CMAKE_CURRENT_BINARY_DIR}/../includes;${CMAKE_CURRENT_BINARY_DIR};${CMAKE_CURRENT_BINARY_DIR}/phonon>")
0115 
0116 install(TARGETS ${PHONON_LIB_SONAME} EXPORT PhononLibs${QT_MAJOR_VERSION} ${KDE_INSTALL_TARGETS_DEFAULT_ARGS})
0117 
0118 install(FILES
0119    abstractaudiooutput.h
0120    abstractmediastream.h
0121    abstractvideooutput.h
0122    addoninterface.h
0123    audiodataoutput.h
0124    audiodataoutputinterface.h
0125    audiooutput.h
0126    audiooutputinterface.h
0127    backendcapabilities.h
0128    backendinterface.h
0129    effect.h
0130    effectinterface.h
0131    effectparameter.h
0132    effectwidget.h
0133    globalconfig.h
0134    globaldescriptioncontainer.h
0135    mediacontroller.h
0136    medianode.h
0137    mediaobject.h
0138    mediaobjectinterface.h
0139    mediasource.h
0140    mrl.h
0141    objectdescription.h
0142    objectdescriptionmodel.h
0143    path.h
0144    phonon_export.h
0145    phonondefs.h
0146    platformplugin.h
0147    pulsesupport.h
0148    seekslider.h
0149    streaminterface.h
0150    videoplayer.h
0151    videowidget.h
0152    videowidgetinterface.h
0153    volumefadereffect.h
0154    volumefaderinterface.h
0155    volumeslider.h
0156    ${phonon_VGO_HDRS}
0157    ${CMAKE_CURRENT_BINARY_DIR}/phonon/phononnamespace.h
0158    ${CMAKE_CURRENT_BINARY_DIR}/phonon_version.h
0159    DESTINATION ${INCLUDE_INSTALL_DIR}/phonon COMPONENT Devel)