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)