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=\"kpipewire6\") 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 DEFAULT_SEVERITY Warning 0015 DESCRIPTION "PipeWire components for KDE" 0016 EXPORT KPipeWire) 0017 ecm_qt_declare_logging_category(kpipewiredmabuf_SRCS 0018 HEADER logging_dmabuf.h 0019 IDENTIFIER PIPEWIREDMABUF_LOGGING 0020 CATEGORY_NAME kpipewire_dmabuf_logging 0021 DEFAULT_SEVERITY Warning 0022 DESCRIPTION "PipeWire and DMABuf components for KDE" 0023 EXPORT KPipeWireDmaBuf) 0024 ecm_qt_declare_logging_category(kpipewirerecord_SRCS 0025 HEADER logging_record.h 0026 IDENTIFIER PIPEWIRERECORD_LOGGING 0027 CATEGORY_NAME kpipewire_record_logging 0028 DEFAULT_SEVERITY Warning 0029 DESCRIPTION "PipeWire and FFmpeg components for KDE" 0030 EXPORT KPipeWireRecord) 0031 ecm_qt_declare_logging_category(kpipewirerecord_SRCS 0032 HEADER logging_libav.h 0033 IDENTIFIER PIPEWIRELIBAV_LOGGING 0034 CATEGORY_NAME kpipewire_libav_logging 0035 DEFAULT_SEVERITY Warning 0036 DESCRIPTION "PipeWire components for KDE - libav log output" 0037 DEFAULT_SEVERITY Info) 0038 0039 ecm_qt_install_logging_categories( 0040 EXPORT KPipeWire 0041 FILE kpipewire.categories 0042 DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}" 0043 ) 0044 0045 ecm_qt_install_logging_categories( 0046 EXPORT KPipeWireRecord 0047 FILE kpipewirerecord.categories 0048 DESTINATION "${KDE_INSTALL_LOGGINGCATEGORIESDIR}" 0049 ) 0050 0051 target_sources(KPipeWire PRIVATE 0052 pipewirecore.cpp 0053 pipewiresourceitem.cpp 0054 pipewiresourcestream.cpp 0055 glhelpers.cpp 0056 pwhelpers.cpp 0057 ${kpipewire_SRCS} 0058 ) 0059 0060 # these are features pipewire use extensively and make it hard to look at compile logs 0061 target_compile_options(KPipeWire PUBLIC -Wno-gnu-statement-expression-from-macro-expansion -Wno-zero-as-null-pointer-constant -Wno-c99-extensions -Wno-cast-align) 0062 0063 target_link_libraries(KPipeWire PRIVATE Qt::Quick Qt::GuiPrivate KF6::I18n 0064 KF6::CoreAddons PkgConfig::PipeWire epoxy::epoxy PkgConfig::GBM Libdrm::Libdrm) 0065 0066 target_link_libraries(KPipeWire PRIVATE EGL::EGL) 0067 0068 target_include_directories(KPipeWire PRIVATE ${CMAKE_CURRENT_BINARY_DIR} 0069 PUBLIC "$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>" ${PipeWire_INCLUDE_DIRS} 0070 INTERFACE "$<INSTALL_INTERFACE:${KDE_INSTALL_INCLUDEDIR}/KPipeWire>") 0071 set_target_properties(KPipeWire PROPERTIES 0072 VERSION ${PROJECT_VERSION} 0073 SOVERSION ${PROJECT_VERSION_MAJOR} 0074 ) 0075 0076 ecm_generate_export_header(KPipeWire 0077 BASE_NAME KPipeWire 0078 VERSION ${PROJECT_VERSION} 0079 ) 0080 0081 ecm_generate_headers(KPipeWire_HEADERS 0082 HEADER_NAMES 0083 PipeWireSourceStream 0084 PipeWireSourceItem 0085 REQUIRED_HEADERS KPipeWire_HEADERS 0086 ) 0087 0088 install(FILES 0089 ${KPipeWire_HEADERS} 0090 ${CMAKE_CURRENT_BINARY_DIR}/kpipewire_export.h 0091 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPipeWire COMPONENT Devel 0092 ) 0093 0094 add_library(KPipeWireDmaBuf dmabufhandler.cpp ${kpipewiredmabuf_SRCS}) 0095 target_link_libraries(KPipeWireDmaBuf PUBLIC KPipeWire 0096 PRIVATE Qt::Core Qt::Gui PkgConfig::GBM 0097 epoxy::epoxy Libdrm::Libdrm Qt::GuiPrivate 0098 ) 0099 0100 set_target_properties(KPipeWireDmaBuf PROPERTIES 0101 VERSION ${PROJECT_VERSION} 0102 SOVERSION ${PROJECT_VERSION_MAJOR} 0103 ) 0104 0105 ecm_generate_export_header(KPipeWireDmaBuf 0106 BASE_NAME KPipeWireDmaBuf 0107 VERSION ${PROJECT_VERSION} 0108 ) 0109 0110 ecm_generate_headers(KPipeWireDmaBuf_HEADERS 0111 HEADER_NAMES 0112 DmaBufHandler 0113 REQUIRED_HEADERS KPipeWireDmaBuf_HEADERS 0114 ) 0115 0116 install(FILES 0117 ${KPipeWireDmaBuf_HEADERS} 0118 ${CMAKE_CURRENT_BINARY_DIR}/kpipewiredmabuf_export.h 0119 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPipeWire COMPONENT Devel 0120 ) 0121 0122 add_library(KPipeWireRecord ${kpipewirerecord_SRCS} 0123 pipewirebaseencodedstream.cpp 0124 pipewireencodedstream.cpp 0125 pipewirerecord.cpp 0126 pipewireproduce.cpp 0127 vaapiutils.cpp 0128 encoder.cpp 0129 h264vaapiencoder.cpp 0130 libx264encoder.cpp 0131 libvpxencoder.cpp 0132 libvpxvp9encoder.cpp 0133 ) 0134 target_link_libraries(KPipeWireRecord PUBLIC KPipeWire 0135 PRIVATE Qt::Core Qt::Gui KF6::CoreAddons KPipeWireDmaBuf 0136 PkgConfig::AVCodec PkgConfig::AVUtil PkgConfig::AVFormat PkgConfig::AVFilter PkgConfig::GBM PkgConfig::SWScale 0137 epoxy::epoxy Libdrm::Libdrm Qt::GuiPrivate PkgConfig::LIBVA PkgConfig::LIBVA-drm 0138 ) 0139 0140 ecm_generate_headers(KPipeWireRecord_HEADERS 0141 HEADER_NAMES 0142 PipeWireRecord 0143 PipeWireEncodedStream 0144 PipeWireBaseEncodedStream 0145 REQUIRED_HEADERS KPipeWireRecord_HEADERS 0146 ) 0147 set_target_properties(KPipeWireRecord PROPERTIES 0148 VERSION ${PROJECT_VERSION} 0149 SOVERSION ${PROJECT_VERSION_MAJOR} 0150 ) 0151 0152 install(FILES 0153 ${KPipeWireRecord_HEADERS} 0154 ${CMAKE_CURRENT_BINARY_DIR}/kpipewire_version.h 0155 DESTINATION ${KDE_INSTALL_INCLUDEDIR}/KPipeWire COMPONENT Devel 0156 ) 0157 0158 install(TARGETS KPipeWire KPipeWireRecord KPipeWireDmaBuf EXPORT KPipeWireTargets ${KDE_INSTALL_TARGETS_DEFAULT_ARGS}) 0159 0160 0161 ecm_setup_version(PROJECT VARIABLE_PREFIX KPIPEWIRE 0162 VERSION_HEADER "${CMAKE_CURRENT_BINARY_DIR}/kpipewire_version.h" 0163 PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KPipeWireConfigVersion.cmake" 0164 SOVERSION ${PROJECT_VERSION_MAJOR}) 0165 0166 set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KPipeWire") 0167 install(EXPORT KPipeWireTargets DESTINATION "${CMAKECONFIG_INSTALL_DIR}" FILE KPipeWireTargets.cmake NAMESPACE K::) 0168 0169 configure_package_config_file("${CMAKE_CURRENT_SOURCE_DIR}/KPipeWireConfig.cmake.in" 0170 "${CMAKE_CURRENT_BINARY_DIR}/KPipeWireConfig.cmake" 0171 INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} 0172 ) 0173 install(FILES "${CMAKE_CURRENT_BINARY_DIR}/KPipeWireConfig.cmake" 0174 "${CMAKE_CURRENT_BINARY_DIR}/KPipeWireConfigVersion.cmake" 0175 DESTINATION "${CMAKECONFIG_INSTALL_DIR}" 0176 COMPONENT Devel ) 0177 0178 0179 ################# 0180 # Declarative 0181 0182 ecm_add_qml_module(KPipeWireDeclarative URI "org.kde.pipewire" VERSION 1.0) 0183 target_sources(KPipeWireDeclarative PRIVATE kpipewiredeclarativeplugin.cpp) 0184 target_link_libraries(KPipeWireDeclarative PRIVATE KPipeWire Qt::Quick) 0185 ecm_finalize_qml_module(KPipeWireDeclarative DESTINATION ${KDE_INSTALL_QMLDIR}) 0186 0187 ecm_add_qml_module(KPipeWireRecordDeclarative URI "org.kde.pipewire.record" VERSION 1.0) 0188 target_sources(KPipeWireRecordDeclarative PRIVATE kpipewirerecorddeclarativeplugin.cpp) 0189 target_link_libraries(KPipeWireRecordDeclarative PRIVATE KPipeWire KPipeWireRecord Qt::Quick) 0190 ecm_finalize_qml_module(KPipeWireRecordDeclarative DESTINATION ${KDE_INSTALL_QMLDIR}) 0191 0192 add_subdirectory(monitors)