diff --git a/_multibuild b/_multibuild
new file mode 100644
index 0000000..120926f
--- /dev/null
+++ b/_multibuild
@@ -0,0 +1,3 @@
+
+ full
+
diff --git a/libcamera.changes b/libcamera.changes
index 79fa2a5..4277ab7 100644
--- a/libcamera.changes
+++ b/libcamera.changes
@@ -1,7 +1,7 @@
-------------------------------------------------------------------
Tue Aug 20 07:37:45 UTC 2024 - Jan Engelhardt
-- Ditch dependency on SDL
+- Split SDL/Qt-dependent tools to multibuilt subpackage
-------------------------------------------------------------------
Mon Aug 12 15:41:49 UTC 2024 - Jan Engelhardt
diff --git a/libcamera.spec b/libcamera.spec
index a21ac59..74b514c 100644
--- a/libcamera.spec
+++ b/libcamera.spec
@@ -18,7 +18,12 @@
%define lname libcamera0_3
%define lname_base libcamera-base0_3
-Name: libcamera
+%if "@BUILD_FLAVOR@" != ""
+%define extname -@BUILD_FLAVOR@
+%else
+%define extname %nil
+%endif
+Name: libcamera%extname
Version: 0.3.1
Release: 0
Summary: A complex camera support library in C++
@@ -27,7 +32,7 @@ Group: Development/Libraries/C and C++
URL: https://libcamera.org/
#Git-Web: https://git.libcamera.org/libcamera/libcamera.git/
-Source: %name-%version.tar.xz
+Source: libcamera-%version.tar.xz
Source1: baselibs.conf
BuildRequires: boost-devel
@@ -52,14 +57,17 @@ BuildRequires: pkgconfig(libevent_pthreads)
BuildRequires: pkgconfig(libtiff-4)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(openssl)
+BuildRequires: pkgconfig(python3)
+BuildRequires: pkgconfig(pybind11)
BuildRequires: pkgconfig(yaml-0.1)
+%if "@BUILD_FLAVOR@" != ""
BuildRequires: pkgconfig(Qt6Core)
BuildRequires: pkgconfig(Qt6Gui)
BuildRequires: pkgconfig(Qt6OpenGL)
BuildRequires: pkgconfig(Qt6OpenGLWidgets)
BuildRequires: pkgconfig(Qt6Widgets)
-BuildRequires: pkgconfig(python3)
-BuildRequires: pkgconfig(pybind11)
+BuildRequires: pkgconfig(sdl2)
+%endif
%description
libcamera is an experimental camera user-space API.
@@ -111,6 +119,14 @@ Group: Development/Tools/Other
%description tools
libcamera is an experimental camera user-space API.
+%package -n libcamera-cam
+Summary: Command-line interfaces for libcamera
+Group: Development/Tools/Other
+# Heavy runtime deps (SDL, Qt6)
+
+%description -n libcamera-cam
+libcamera is an experimental camera user-space API.
+
"cam" is a command-line utility to interact with cameras. The initial state is
limited and only supports listing cameras in the system and selecting a camera
to interact with.
@@ -131,7 +147,7 @@ Group: Development/Languages/Python
Python bindings for libcamera.
%prep
-%autosetup -p1
+%autosetup -p1 -n libcamera-%version
%build
%if 0%{?suse_version} <= 1500
@@ -140,7 +156,11 @@ export CXX=g++-11
%endif
%meson \
-Ddocumentation=disabled \
+%if "@BUILD_FLAVOR@" != ""
-Dqcam=enabled \
+%else
+ -Dqcam=disabled \
+%endif
-Dv4l2=false -Dtracing=disabled \
-Dpipelines=ipu3,rkisp1,simple,uvcvideo,vimc \
-Dlc-compliance=disabled
@@ -148,10 +168,18 @@ export CXX=g++-11
%install
%meson_install
+pushd "%buildroot"
+%if "@BUILD_FLAVOR@" != ""
+find . ! -type d ! -path ./usr/bin/cam ! -path ./usr/bin/qcam -print -delete
+%else
+rm -v usr/bin/cam
+%endif
+popd
%ldconfig_scriptlets -n %lname
%ldconfig_scriptlets -n %lname_base
+%if "@BUILD_FLAVOR@" == ""
%files -n %lname
%_libdir/libcamera.so.*
@@ -166,8 +194,6 @@ export CXX=g++-11
%_libdir/pkgconfig/*.pc
%files tools
-%_bindir/cam
-%_bindir/qcam
%_libexecdir/libcamera/
%_libdir/libcamera/
%_datadir/libcamera/
@@ -178,4 +204,12 @@ export CXX=g++-11
%files -n python3-libcamera
%python3_sitearch/*
+%else
+
+%files -n libcamera-cam
+%_bindir/cam
+%_bindir/qcam
+
+%endif
+
%changelog