File qstardict.spec of Package qstardict

#
# spec file for package qstardict
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%define build_kf5 1
Name:           qstardict
Version:        @SERVICE@
Release:        0
Summary:        Qt dictionary with StarDict format support
License:        GPL-3.0-or-later
Group:          Productivity/Office/Dictionary
URL:            https://qstardict.ylsoftware.com
Source:         %{name}-%{version}.tar.xz
BuildRequires:  cmake
BuildRequires:  cmake(Qt5LinguistTools)
%if 0%{?suse_version} >= 1550
BuildRequires:  gcc-c++ >= 10.2.1
%else
BuildRequires:  gcc10-c++
%endif
BuildRequires:  hicolor-icon-theme
BuildRequires:  libQt5Gui-private-headers-devel
BuildRequires:  pkgconfig
BuildRequires:  pkgconfig(Qt5Core)
BuildRequires:  pkgconfig(Qt5DBus)
BuildRequires:  pkgconfig(Qt5Gui)
BuildRequires:  pkgconfig(Qt5Network)
BuildRequires:  pkgconfig(Qt5PrintSupport)
BuildRequires:  pkgconfig(Qt5Sql)
BuildRequires:  pkgconfig(Qt5Widgets)
BuildRequires:  pkgconfig(Qt5Xml)
BuildRequires:  pkgconfig(glib-2.0)
BuildRequires:  pkgconfig(libzim)
BuildRequires:  pkgconfig(x11)
BuildRequires:  pkgconfig(zlib)
BuildRequires:  rsvg-convert
BuildRequires:  update-desktop-files
Recommends:     %{name}-lang
Suggests:       festival
#uggests:       swac-get

%description
QStarDict is a StarDict clone written using Qt. The user interface is similar
to StarDict.

%lang_package

%if %{build_kf5}
%package kdeintegration-plugin
Summary:        QStarDict KDE Plasma integration
Group:          System/GUI/KDE
BuildRequires:  extra-cmake-modules
BuildRequires:  kf5-filesystem
BuildRequires:  cmake(KF5Completion)
BuildRequires:  cmake(KF5ConfigWidgets)
BuildRequires:  cmake(KF5GlobalAccel)
BuildRequires:  cmake(KF5Notifications)
BuildRequires:  cmake(KF5Plasma)
BuildRequires:  cmake(KF5WindowSystem)
Requires:       %{name} = %{version}
Supplements:    (%{name} and plasma5-workspace)

%description kdeintegration-plugin
QStarDict KDE Plasma integration
%endif

%package anki-plugin
Summary:        A plugin for Anki
Group:          Productivity/Text/Utilities
Requires:       %{name} = %{version}
Supplements:    (%{name} and anki)

%description anki-plugin
A plugin for Anki.

%prep
%autosetup

%build
%qmake5 \
    DOCS_DIR=%{_defaultdocdir}/%{name} \
    PLUGINS_DIR=%{_libdir}/%{name}/plugins \
    ENABLED_PLUGINS="anki kiwix print savetofile stardict web" \
%if %{build_kf5}
    ENABLED_PLUGINS="anki kdeintegration kiwix print savetofile stardict web" \
    USE_KDE5=1 \
%endif
    QMAKE_LRELEASE=%{_bindir}/lrelease-qt5 \
%if 0%{?suse_version} >= 1550
    QMAKE_CXX=%{_bindir}/g++ \
%else
    QMAKE_CXX=%{_bindir}/g++-10 \
%endif
    QMAKE_STRIP="true"
%make_build

%install
%qmake5_install
install -Dm 0644 %{name}/%{name}.png -t %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/
for i in 16 24 32 48 64 72 96; do
    install -dm 0755 %{buildroot}%{_datadir}/icons/hicolor/$i\x$i/apps
    rsvg-convert -h $i -w $i %{name}/%{name}.svg -o %{buildroot}%{_datadir}/icons/hicolor/$i\x$i/apps/%{name}.png
done
rm -fv %{buildroot}%{_defaultdocdir}/%{name}/COPYING
%suse_update_desktop_file -r %{name} Office Dictionary

%find_lang %{name} --with-qt --all-name

%files
%doc %{_defaultdocdir}/%{name}
%{_bindir}/%{name}
%dir %{_libdir}/%{name}/
%{_libdir}/%{name}/plugins/
%{_datadir}/applications/%{name}.desktop
%{_datadir}/icons/hicolor/*/apps/%{name}.??g
%{_mandir}/man?/%{name}.?%{?ext_man}
%if %{build_kf5}
%exclude %{_libdir}/%{name}/plugins/libkdeintegration.so
%endif
%exclude %{_libdir}/%{name}/plugins/libanki.so
%license COPYING

%files lang -f %{name}.lang
%dir %{_datadir}/%{name}/
%dir %{_datadir}/%{name}/translations/

%if %{build_kf5}
%files kdeintegration-plugin
%{_libdir}/%{name}/plugins/libkdeintegration.so
%endif

%files anki-plugin
%{_libdir}/%{name}/plugins/libanki.so

%changelog
openSUSE Build Service is sponsored by