Warning, /plasma/kpipewire/src/CMakeLists.txt is written in an unsupported language. File is not indexed.
0001 include(ECMGenerateExportHeader) 0002 include(ECMQmlModule) 0003 include(ECMGenerateHeaders) 0004 include(ECMSetupVersion) 0005 0006 add_definitions(-DTRANSLATION_DOMAIN=\"kpipewire5\") 0007 0008 add_library(KPipeWire) 0009 0010 ecm_qt_declare_logging_category(kpipewire_SRCS 0011 HEADER logging.h 0012 IDENTIFIER PIPEWIRE_LOGGING 0013 CATEGORY_NAME kpipewire_logging 0014 DESCRIPTION "PipeWire components for KDE" 0015 EXPORT KPipeWire) 0016 ecm_qt_declare_logging_category(kpipewiredmabuf_SRCS 0017 HEADER logging_dmabuf.h 0018 IDENTIFIER PIPEWIREDMABUF_LOGGING 0019 CATEGORY_NAME kpipewire_dmabuf_logging 0020 DESCRIPTION "PipeWire and DMABuf components for KDE" 0021 EXPORT KPipeWireDmaBuf) 0022 ecm_qt_declare_logging_category(kpipewirerecord_SRCS 0023 HEADER logging_record.h 0024 IDENTIFIER PIPEWIRERECORD_LOGGING 0025 CATEGORY_NAME kpipewire_record_logging 0026 DESCRIPTION "PipeWire and FFmpeg components for KDE" 0027 EXPORT KPipeWireRecord) 0028 ecm_qt_install_logging_categories( 0029 EXPORT KPipeWire 0030 FILE kpipewire.categories 0031 DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}" 0032 ) 0033 0034 ecm_qt_install_logging_categories( 0035 EXPORT KPipeWireRecord 0036 FILE kpipewirerecord.categories 0037 DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}" 0038 ) 0039 0040 target_sources(KPipeWire PRIVATE 0041 pipewirecore.cpp 0042 pipewiresourceitem.cpp 0043 pipewiresourcestream.cpp 0044 glhelpers.cpp 0045 pwhelpers.cpp 0046 ${kpipewire_SRCS} 0047 ) 0048 0049 target_link_libraries(KPipeWire PRIVATE Qt::Quick Qt::GuiPrivate KF5::I18n 0050 KF5::CoreAddons PkgConfig::PipeWire epoxy::epoxy PkgConfig::GBM) 0051 0052 target_compile_definitions(KPipeWire INTERFACE -DKPW_WITH_SOURCESIZE=1) 0053 0054 if (QT_MAJOR_VERSION EQUAL "5") 0055 target_link_libraries(KPipeWire PRIVATE Qt5::Gui_EGL) 0056 if (${Qt5Gui_OPENGL_IMPLEMENTATION} STREQUAL "GLESv2") 0057 target_link_libraries(KPipeWire PRIVATE Qt5::Gui_GLESv2) 0058 else() 0059 target_link_libraries(KPipeWire PRIVATE Qt5::Gui_GL) 0060 endif() 0061 else() 0062 target_link_libraries(KPipeWire PRIVATE EGL::EGL) 0063 endif() 0064 0065 target_include_directories(KPipeWire PRIVATE ${CMAKE_CURRENT_BINARY_DIR} 0066 PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>" ${PipeWire_INCLUDE_DIRS} 0067 INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/KPipeWire>") 0068 set_target_properties(KPipeWire PROPERTIES 0069 VERSION ${PROJECT_VERSION} 0070 SOVERSION ${PROJECT_VERSION_MAJOR} 0071 ) 0072 0073 ecm_generate_export_header(KPipeWire 0074 BASE_NAME KPipeWire 0075 VERSION ${PROJECT_VERSION} 0076 ) 0077 0078 ecm_generate_headers(KPipeWire_HEADERS 0079 HEADER_NAMES 0080 PipeWireSourceStream 0081 PipeWireSourceItem 0082 REQUIRED_HEADERS KPipeWire_HEADERS 0083 ) 0084 0085 install(FILES 0086 ${KPipeWire_HEADERS} 0087 ${CMAKE_CURRENT_BINARY_DIR}/kpipewire_export.h 0088 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPipeWire COMPONENT Devel 0089 ) 0090 0091 add_library(KPipeWireDmaBuf dmabufhandler.cpp ${kpipewiredmabuf_SRCS}) 0092 target_link_libraries(KPipeWireDmaBuf PUBLIC KPipeWire 0093 PRIVATE Qt::Core Qt::Gui PkgConfig::GBM 0094 epoxy::epoxy Libdrm::Libdrm Qt::GuiPrivate 0095 ) 0096 0097 set_target_properties(KPipeWireDmaBuf PROPERTIES 0098 VERSION ${PROJECT_VERSION} 0099 SOVERSION ${PROJECT_VERSION_MAJOR} 0100 ) 0101 0102 ecm_generate_export_header(KPipeWireDmaBuf 0103 BASE_NAME KPipeWireDmaBuf 0104 VERSION ${PROJECT_VERSION} 0105 ) 0106 0107 ecm_generate_headers(KPipeWireDmaBuf_HEADERS 0108 HEADER_NAMES 0109 DmaBufHandler 0110 REQUIRED_HEADERS KPipeWireDmaBuf_HEADERS 0111 ) 0112 0113 install(FILES 0114 ${KPipeWireDmaBuf_HEADERS} 0115 ${CMAKE_CURRENT_BINARY_DIR}/kpipewiredmabuf_export.h 0116 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPipeWire COMPONENT Devel 0117 ) 0118 0119 add_library(KPipeWireRecord pipewirerecord.cpp ${kpipewirerecord_SRCS}) 0120 target_link_libraries(KPipeWireRecord PUBLIC KPipeWire 0121 PRIVATE Qt::Core Qt::Gui KF5::CoreAddons KPipeWireDmaBuf 0122 PkgConfig::AVCodec PkgConfig::AVUtil PkgConfig::AVFormat PkgConfig::GBM PkgConfig::SWScale 0123 epoxy::epoxy Libdrm::Libdrm Qt::GuiPrivate 0124 ) 0125 0126 target_compile_definitions(KPipeWireRecord INTERFACE -DKPW_WITH_SUGGESTED=1) 0127 0128 ecm_generate_headers(KPipeWireRecord_HEADERS 0129 HEADER_NAMES 0130 PipeWireRecord 0131 REQUIRED_HEADERS KPipeWireRecord_HEADERS 0132 ) 0133 set_target_properties(KPipeWireRecord PROPERTIES 0134 VERSION ${PROJECT_VERSION} 0135 SOVERSION ${PROJECT_VERSION_MAJOR} 0136 ) 0137 0138 install(FILES 0139 ${KPipeWireRecord_HEADERS} 0140 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPipeWire COMPONENT Devel 0141 ) 0142 0143 install(TARGETS KPipeWire KPipeWireRecord KPipeWireDmaBuf EXPORT KPipeWireTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0144 0145 0146 ecm_setup_version(PROJECT VARIABLE_PREFIX KPIPEWIRE 0147 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kpipewire_version.h" 0148 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPipeWireConfigVersion.cmake" 0149 SOVERSION 5) 0150 0151 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPipeWire") 0152 install(EXPORT KPipeWireTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KPipeWireTargets.cmake NAMESPACE K::) 0153 0154 configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/KPipeWireConfig.cmake.in" 0155 "${CMAKE_CURRENT_BINARY_DIR}/KPipeWireConfig.cmake" 0156 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0157 ) 0158 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KPipeWireConfig.cmake" 0159 "${CMAKE_CURRENT_BINARY_DIR}/KPipeWireConfigVersion.cmake" 0160 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0161 COMPONENT Devel ) 0162 0163 0164 ################# 0165 # Declarative 0166 0167 ecm_add_qml_module(KPipeWireDeclarative URI "org.kde.pipewire" VERSION 1.0) 0168 target_sources(KPipeWireDeclarative PRIVATE kpipewiredeclarativeplugin.cpp) 0169 target_link_libraries(KPipeWireDeclarative PRIVATE KPipeWire Qt::Quick) 0170 ecm_finalize_qml_module(KPipeWireDeclarative DESTINATION ${KDE_INSTALL_QMLDIR}) 0171 0172 ecm_add_qml_module(KPipeWireRecordDeclarative URI "org.kde.pipewire.record" VERSION 1.0) 0173 target_sources(KPipeWireRecordDeclarative PRIVATE kpipewirerecorddeclarativeplugin.cpp) 0174 target_link_libraries(KPipeWireRecordDeclarative PRIVATE KPipeWire KPipeWireRecord Qt::Quick) 0175 ecm_finalize_qml_module(KPipeWireRecordDeclarative DESTINATION ${KDE_INSTALL_QMLDIR}) 0176