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

0001 cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
0002 project(Phonon VERSION "4.11.1")
0003 
0004 include(FeatureSummary)
0005 
0006 option(PHONON_BUILD_EXPERIMENTAL "Build the experimental library" ON)
0007 option(PHONON_BUILD_DEMOS "Build the demos" OFF)
0008 option(PHONON_BUILD_DESIGNER_PLUGIN "Build the Qt Designer plugin" ON)
0009 option(PHONON_BUILD_DOC "Build the API documentation" OFF)
0010 option(PHONON_BUILD_SETTINGS "Build the settings GUI" ON)
0011 
0012 option(PHONON_NO_CAPTURE "Disable the capture capabilities")
0013 
0014 # Not set by ECM (yet)
0015 set(CMAKE_AUTOUIC TRUE)
0016 set(CMAKE_AUTORCC TRUE)
0017 
0018 find_package(ECM 5.90 NO_MODULE)
0019 set_package_properties(ECM PROPERTIES
0020     TYPE REQUIRED
0021     DESCRIPTION "Extra CMake Modules"
0022     URL "https://api.kde.org/frameworks/extra-cmake-modules/html/index.html")
0023 feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES)
0024 set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake)
0025 set(KDE_COMPILERSETTINGS_LEVEL "5.82")
0026 include(KDEInstallDirs)
0027 include(KDECMakeSettings)
0028 include(KDECompilerSettings NO_POLICY_SCOPE)
0029 
0030 include(CMakePackageConfigHelpers)
0031 include(ECMGeneratePriFile)
0032 include(ECMGeneratePkgConfigFile)
0033 include(ECMPoQmTools)
0034 
0035 set(PHONON_LIB_SONAME phonon4qt${QT_MAJOR_VERSION})
0036 set(PHONON_LIB_SONAME_CAMEL Phonon4Qt${QT_MAJOR_VERSION})
0037 
0038 include(ECMSetupVersion)
0039 ecm_setup_version(PROJECT
0040     VARIABLE_PREFIX PHONON
0041     SOVERSION 4
0042     VERSION_HEADER phonon/phonon_version.h
0043     PACKAGE_VERSION_FILE ${PHONON_LIB_SONAME_CAMEL}ConfigVersion.cmake
0044 )
0045 
0046 # Glorified write_basic_package_version_file call for experimental. Experimental
0047 # inherits the versions from Phonon proper, so we technically don't need this.
0048 ecm_setup_version(${PHONON_VERSION}
0049     VARIABLE_PREFIX PHONON_EXPERIMENTAL
0050     SOVERSION ${PHONON_SOVERSION}
0051     PACKAGE_VERSION_FILE ${PHONON_LIB_SONAME_CAMEL}ExperimentalConfigVersion.cmake
0052 )
0053 
0054 set(INCLUDE_INSTALL_DIR "${KDE_INSTALL_INCLUDEDIR}/${PHONON_LIB_SONAME}")
0055 set(PLUGIN_INSTALL_DIR ${KDE_INSTALL_QTPLUGINDIR})
0056 if(WIN32) # Imported from Phonon VLC
0057     set(PLUGIN_INSTALL_DIR ${KDE_INSTALL_BINDIR})
0058 endif()
0059 set(BACKEND_DIR_SUFFIX "${PHONON_LIB_SONAME}_backend")
0060 set(BACKEND_INSTALL_DIR "${PLUGIN_INSTALL_DIR}/${BACKEND_DIR_SUFFIX}")
0061 
0062 set(PHONON_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
0063 
0064 ################################# Requirements #################################
0065 
0066 set(REQUIRED_QT_VERSION 5.15.0)
0067 
0068 # Core Requirements
0069 find_package(Qt${QT_MAJOR_VERSION}Core ${REQUIRED_QT_VERSION})
0070 set_package_properties(Qt${QT_MAJOR_VERSION}Core PROPERTIES
0071     TYPE REQUIRED
0072     DESCRIPTION "Qt${QT_MAJOR_VERSION} core module"
0073     URL "https://www.qt.io/download")
0074 
0075 find_package(Qt${QT_MAJOR_VERSION}Gui ${REQUIRED_QT_VERSION})
0076 set_package_properties(Qt${QT_MAJOR_VERSION}Gui PROPERTIES
0077     TYPE REQUIRED
0078     DESCRIPTION "Qt${QT_MAJOR_VERSION} GUI module"
0079     URL "https://www.qt.io/download")
0080 
0081 find_package(Qt${QT_MAJOR_VERSION}Widgets ${REQUIRED_QT_VERSION})
0082 set_package_properties(Qt${QT_MAJOR_VERSION}Widgets PROPERTIES
0083     TYPE REQUIRED
0084     DESCRIPTION "Qt${QT_MAJOR_VERSION} widgets module"
0085     URL "https://www.qt.io/download")
0086 
0087 # Designer Plugin
0088 find_package(Qt${QT_MAJOR_VERSION}Designer ${REQUIRED_QT_VERSION})
0089 set_package_properties(Qt${QT_MAJOR_VERSION}Designer PROPERTIES
0090     TYPE RECOMMENDED
0091     DESCRIPTION "Needed to build the Qt Designer plugin"
0092     URL "https://www.qt.io/download")
0093 
0094 if(QT_MAJOR_VERSION STREQUAL "6")
0095     find_package(Qt6Core5Compat)
0096 endif()
0097 
0098 set(BUILDSYSTEM_INSTALL_DIR ${CMAKE_INSTALL_FULL_DATAROOTDIR}/${PHONON_LIB_SONAME}/buildsystem/)
0099 add_definitions(
0100     -DQT_DISABLE_DEPRECATED_BEFORE=0x050F00
0101     -DQT_DEPRECATED_WARNINGS_SINCE=0x060000
0102 )
0103 
0104 add_subdirectory(cmake)
0105 if(Qt5Designer_FOUND AND PHONON_BUILD_DESIGNER_PLUGIN)
0106     add_subdirectory(designer)
0107 endif()
0108 
0109 if(PHONON_BUILD_DOC)
0110     add_subdirectory(doc)
0111 endif()
0112 
0113 add_subdirectory(phonon)
0114 add_subdirectory(includes)
0115 
0116 if(PHONON_BUILD_DEMOS)
0117     message(STATUS "Building demos.")
0118     # Demos may also be built standalone, so we need to skip their find_package call!
0119     set(CMAKE_DISABLE_FIND_PACKAGE_Phonon4Qt5 TRUE)
0120     add_subdirectory(demos)
0121 endif()
0122 
0123 if(PHONON_BUILD_SETTINGS)
0124     add_subdirectory(settings)
0125 endif()
0126 
0127 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/${PHONON_LIB_SONAME}")
0128 
0129 configure_package_config_file(
0130     PhononConfig.cmake.in
0131     ${PHONON_LIB_SONAME_CAMEL}Config.cmake
0132     PATH_VARS
0133         INCLUDE_INSTALL_DIR
0134         KDE_INSTALL_LIBDIR
0135         BUILDSYSTEM_INSTALL_DIR
0136     INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0137 )
0138 
0139 install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PHONON_LIB_SONAME_CAMEL}Config.cmake
0140               ${CMAKE_CURRENT_BINARY_DIR}/${PHONON_LIB_SONAME_CAMEL}ConfigVersion.cmake
0141         DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0142         COMPONENT Devel)
0143 
0144 install(EXPORT PhononLibs
0145         DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0146         NAMESPACE Phonon::
0147         FILE PhononTargets.cmake)
0148 
0149 if(PHONON_BUILD_EXPERIMENTAL)
0150     configure_package_config_file(
0151         PhononExperimentalConfig.cmake.in
0152         ${PHONON_LIB_SONAME_CAMEL}ExperimentalConfig.cmake
0153         PATH_VARS
0154             INCLUDE_INSTALL_DIR
0155             KDE_INSTALL_LIBDIR
0156             BUILDSYSTEM_INSTALL_DIR
0157         INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0158     )
0159 
0160     install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PHONON_LIB_SONAME_CAMEL}ExperimentalConfig.cmake
0161                   ${CMAKE_CURRENT_BINARY_DIR}/${PHONON_LIB_SONAME_CAMEL}ExperimentalConfigVersion.cmake
0162             DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0163             COMPONENT Devel
0164     )
0165 
0166     install(EXPORT PhononExperimentalLibs
0167             DESTINATION ${CMAKECONFIG_INSTALL_DIR}
0168             NAMESPACE Phonon::
0169             FILE PhononExperimentalTargets.cmake)
0170 endif()
0171 
0172 ecm_generate_pkgconfig_file(
0173     BASE_NAME ${PHONON_LIB_SONAME}
0174     INCLUDE_INSTALL_DIR ${INCLUDE_INSTALL_DIR}
0175     DESCRIPTION "Phonon library needed to build applications"
0176     INSTALL
0177 )
0178 
0179 ecm_generate_pri_file(
0180    BASE_NAME ${PHONON_LIB_SONAME}
0181    LIB_NAME ${PHONON_LIB_SONAME}
0182    DEPS "core widgets"
0183    FILENAME_VAR pri_filename
0184    INCLUDE_INSTALL_DIR ${INCLUDE_INSTALL_DIR}
0185 )
0186 install(FILES ${pri_filename} DESTINATION ${ECM_MKSPECS_INSTALL_DIR})
0187 
0188 if(IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/poqm")
0189     ecm_install_po_files_as_qm(poqm)
0190 endif()
0191 
0192 feature_summary(WHAT ALL FATAL_ON_MISSING_REQUIRED_PACKAGES)