Page MenuHomeFreeBSD

D39978.id121601.diff
No OneTemporary

D39978.id121601.diff

diff --git a/graphics/spectacle/Makefile b/graphics/spectacle/Makefile
--- a/graphics/spectacle/Makefile
+++ b/graphics/spectacle/Makefile
@@ -17,7 +17,7 @@
xorg
USE_KDE= attica auth codecs completion config configwidgets coreaddons \
dbusaddons globalaccel guiaddons i18n jobwidgets kdeclarative \
- kio kpipewire libkipi newstuff notifications package purpose \
+ kio libkipi newstuff notifications package purpose \
service solid wayland widgetsaddons windowsystem xmlgui \
doctools:build ecm:build
USE_QT= concurrent core dbus declarative gui network printsupport \
@@ -25,6 +25,11 @@
buildtools:build qmake:build testlib:build
USE_XORG= x11 xcb xext xfixes
-OPTIONS_DEFINE= DOCS
+OPTIONS_DEFINE= DOCS PIPEWIRE
+OPTIONS_DEFAULT= PIPEWIRE
+PIPEWIRE_DESC= Screen capture via PipeWire
+PIPEWIRE_USE= KDE=kpipewire
+PIPEWIRE_CMAKE_BOOL_OFF= DISABLE_PIPEWIRE
+PIPEWIRE_EXTRA_PATCHES_OFF= ${FILESDIR}/extra-patch-pipewire-off
.include <bsd.port.mk>
diff --git a/graphics/spectacle/files/extra-patch-pipewire-off b/graphics/spectacle/files/extra-patch-pipewire-off
new file mode 100644
--- /dev/null
+++ b/graphics/spectacle/files/extra-patch-pipewire-off
@@ -0,0 +1,87 @@
+diff -ur CMakeLists.txt.orig CMakeLists.txt
+--- CMakeLists.txt.orig
++++ CMakeLists.txt
+@@ -74,10 +74,16 @@
+ if (QT_MAJOR_VERSION EQUAL "5")
+ find_package(QtWaylandScanner REQUIRED)
+ endif()
+-find_package(KPipeWire)
++option(DISABLE_PIPEWIRE "Disable PipeWire support." OFF)
++if(NOT DISABLE_PIPEWIRE)
++ find_package(KPipeWire REQUIRED)
++ if(KPipeWire_FOUND)
++ set(PIPEWIRE_FOUND 1)
++ endif()
++endif()
+ set_package_properties(KPipeWire PROPERTIES DESCRIPTION
+ "Used to record pipewire streams into a file"
+- TYPE REQUIRED
++ TYPE OPTIONAL
+ )
+
+ # optional components
+diff -ur src/CMakeLists.txt.orig src/CMakeLists.txt
+--- src/CMakeLists.txt.orig
++++ src/CMakeLists.txt
+@@ -9,6 +9,10 @@
+ ecm_qt_declare_logging_category(SPECTACLE_SRCS HEADER spectacle_core_debug.h IDENTIFIER SPECTACLE_CORE_LOG CATEGORY_NAME org.kde.spectacle.core DESCRIPTION "spectacle (core)" EXPORT SPECTACLE)
+ ecm_qt_declare_logging_category(SPECTACLE_SRCS HEADER spectacle_gui_debug.h IDENTIFIER SPECTACLE_GUI_LOG CATEGORY_NAME org.kde.spectacle.gui DESCRIPTION "spectacle (gui)" EXPORT SPECTACLE)
+
++if(PIPEWIRE_FOUND)
++ add_executable(spectacle Platforms/VideoPlatformWayland.cpp)
++endif()
++
+ add_executable(spectacle
+ ${SPECTACLE_SRCS}
+ Main.cpp
+@@ -44,7 +48,6 @@
+ Platforms/PlatformKWinWayland.cpp
+ Platforms/PlatformKWinWayland2.cpp
+ Platforms/VideoPlatform.cpp
+- Platforms/VideoPlatformWayland.cpp
+ Platforms/screencasting.cpp
+
+ ../resources.qrc
+@@ -83,6 +86,10 @@
+
+ ki18n_wrap_ui(spectacle Gui/SettingsDialog/GeneralOptions.ui Gui/SettingsDialog/SaveOptions.ui)
+
++if(PIPEWIRE_FOUND)
++ target_link_libraries(spectacle K::KPipeWireRecord)
++endif()
++
+ target_link_libraries(
+ spectacle
+ Qt::Concurrent
+@@ -106,7 +113,6 @@
+ KF${QT_MAJOR_VERSION}::XmlGui
+ KF${QT_MAJOR_VERSION}::GuiAddons
+ KF${QT_MAJOR_VERSION}::Kirigami2
+- K::KPipeWireRecord
+ Wayland::Client
+ )
+
+diff -ur src/Platforms/PlatformLoader.cpp src/Platforms/PlatformLoader.cpp
+--- src/Platforms/PlatformLoader.cpp
++++ src/Platforms/PlatformLoader.cpp
+@@ -10,7 +10,9 @@
+ #include "PlatformKWinWayland.h"
+ #include "PlatformKWinWayland2.h"
+ #include "PlatformNull.h"
++#ifdef PIPEWIRE_FOUND
+ #include "VideoPlatformWayland.h"
++#endif
+
+ #ifdef XCB_FOUND
+ #include "PlatformXcb.h"
+@@ -44,8 +46,10 @@
+
+ VideoPlatformPtr loadVideoPlatform()
+ {
++#ifdef PIPEWIRE_FOUND
+ if (KWindowSystem::isPlatformWayland()) {
+ return std::make_unique<VideoPlatformWayland>();
+ }
++#endif
+ return std::make_unique<VideoPlatformNull>();
+ }

File Metadata

Mime Type
text/plain
Expires
Wed, Jul 29, 3:14 PM (14 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35704834
Default Alt Text
D39978.id121601.diff (3 KB)

Event Timeline