File quickshell.spec of Package quickshell-git

Name:               quickshell-git
Version:            0.2.1
Release:            2
Summary:            Flexible QtQuick based desktop shell toolkit

License:            LGPL-3.0-only AND GPL-3.0-only
URL:                https://git.outfoxxed.me/quickshell/quickshell
Source0:            quickshell-%{version}.tar

#
# Quickshell is highly sensitive to qt6 version changes so we build with no
# shared libraries as to prevent users' installtions to break on qt6 update.
#
# Requires:           glibc
# Requires:           jemalloc
# Requires:           pam
# Requires:           polkit
# Requires:           glib2-tools
# Requires:           cmake
# Requires:           qt6-base-devel
# Requires:           qt6-dbus-devel
# Requires:           qt6-declarative-devel
# Requires:           qt6-declarative-private-devel
# Requires:           qt6-svg-devel
# Requires:           qt6-wayland
# Requires:           qt6-wayland-private-devel

# Recommends:         qt6-multimedia
# Recommends:         qt6-qt5compat-imports

BuildRequires:      cmake
BuildRequires:      cmake(Qt6Core)
BuildRequires:      cmake(Qt6CorePrivate)
BuildRequires:      cmake(Qt6Qml)
BuildRequires:      cmake(Qt6Quick)
BuildRequires:      cmake(Qt6QuickPrivate)
BuildRequires:      cmake(Qt6QuickControls2)
BuildRequires:      cmake(Qt6Widgets)
BuildRequires:      cmake(Qt6ShaderTools)
BuildRequires:      cmake(Qt6WaylandClient)
BuildRequires:      cmake(Qt6WaylandClientPrivate)
BuildRequires:      fdupes
BuildRequires:      gcc-c++
BuildRequires:      ninja
BuildRequires:      wayland-devel
BuildRequires:      polkit-devel
BuildRequires:      Mesa-libGLESv3-devel
BuildRequires:      qt6-declarative-devel
BuildRequires:      pkgconfig(CLI11)
BuildRequires:      pkgconfig(gbm)
BuildRequires:      pkgconfig(jemalloc)
BuildRequires:      pkgconfig(libdrm)
BuildRequires:      pkgconfig(libpipewire-0.3)
BuildRequires:      pkgconfig(pam)
BuildRequires:      pkgconfig(wayland-client)
BuildRequires:      pkgconfig(wayland-protocols)
BuildRequires:      spirv-tools

Provides:           desktop-notification-daemon
Provides:           quickshell
Conflicts:          quickshell

%description
Flexible toolkit for making desktop shells with QtQuick, targeting
Wayland and X11.

%prep
%autosetup -n quickshell-%{version}

%build
export CXXFLAGS="%optflags -Wno-error=return-type"
export CFLAGS="%optflags -I/usr/include/wayland"
%define __builder ninja
%cmake  -DCMAKE_BUILD_TYPE=RelWithDebInfo \
        -DCMAKE_SKIP_RPATH=TRUE \
        -DBUILD_SHARED_LIBS=OFF \
        -DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE \
        -DCMAKE_INSTALL_RPATH="" \
        -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE \
        -DCRASH_REPORTER=OFF \
        -DDISTRIBUTOR="OpenSUSE OBS (home:claudio4/quickshell)" \
        -DDISTRIBUTOR_DEBUGINFO_AVAILABLE=YES \
        -DGIT_REVISION=%{commit} \
        -DINSTALL_QML_PREFIX=%{_lib}/qt6/qml
%cmake_build

%install
%cmake_install
%fdupes %{buildroot}%{_libdir}/qt6/qml

%check
%ctest

%files
%license LICENSE
%license LICENSE-GPL
%doc BUILD.md
%doc CONTRIBUTING.md
%doc README.md
%{_bindir}/qs
%{_bindir}/quickshell
%{_libdir}/qt6/qml/Quickshell
%{_datadir}/applications/org.quickshell.desktop
%dir %{_datadir}/icons/hicolor
%dir %{_datadir}/icons/hicolor/scalable
%dir %{_datadir}/icons/hicolor/scalable/apps
%{_datadir}/icons/hicolor/scalable/apps/org.quickshell.svg

%changelog
openSUSE Build Service is sponsored by