qscintilla/qscintilla.spec
2021-01-26 20:27:18 +08:00

174 lines
5.0 KiB
RPMSpec

%global scintilla_ver 3.10.1
%global sip_ver 4.19.7
%if ! 0%{?bootstrap}
%global python3 1
%endif
%global qt5 1
%global py3_sipdir %{_datadir}/sip
%global py3_sip %{_bindir}/sip
Name: qscintilla
Version: 2.11.2
Release: 1
License: LGPL-2.1 andGPL-3.0+ and GPL+
Summary: A Scintilla port to Qt
Url: https://github.com/opencor/qscintilla
Source0: https://github.com/opencor/qscintilla/archive/v2.11.2.tar.gz
Patch100: QScintilla_gpl-2_10_7-sip_check.patch
Patch101: QScintilla_gpl-2_11-QUrl.patch
Patch102: fix-build-error.patch
BuildRequires: gcc-c++
BuildRequires: pkgconfig(QtDesigner) pkgconfig(QtGui) pkgconfig(QtScript) pkgconfig(QtXml)
%if 0%{?qt5}
BuildRequires: pkgconfig(Qt5Designer) pkgconfig(Qt5Gui) pkgconfig(Qt5Widgets)
%endif
Provides: bundled(scintilla) = %{scintilla_ver}
%description
QScintilla is a port of Scintilla to the Qt GUI toolkit.
%{?scintilla_ver:This version of QScintilla is based on Scintilla v%{scintilla_ver}.}
%if 0%{?python3}
%package -n python3-qscintilla
Summary: QScintilla python3 bindings
BuildRequires: python3-devel python3-PyQt4-devel
Provides: %{name}-python3 = %{version}-%{release}
Provides: python3-PyQt5-Qsci = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release} python3-PyQt4
%{?_sip_api:Requires: python3-pyqt4-sip-api(%{_sip_api_major}) >= %{_sip_api}}
%description -n python3-qscintilla
%{summary}.
%package -n python3-qscintilla-devel
Summary: Development files for QScintilla python3 bindings
Provides: %{name}-python3-devel = %{version}-%{release}
Requires: python3-PyQt4-devel
BuildArch: noarch
%description -n python3-qscintilla-devel
%{summary}.
%endif
%if 0%{?qt5}
%package qt5
Summary: A Scintilla port to Qt5
Provides: bundled(scintilla) = %{scintilla_ver}
%description qt5
%{summary}.
%package qt5-devel
Summary: QScintilla Development Files
Requires: %{name}-qt5%{?_isa} = %{version}-%{release} qt5-qtbase-devel
%description qt5-devel
%{summary}.
%if 0%{?python3}
%package -n python3-qscintilla-qt5
Summary: QScintilla-qt5 python3 bindings
BuildRequires: python3-qt5 python3-qt5-devel python3-sip-devel >= %{sip_ver}
Provides: %{name}-qt5-python3 = %{version}-%{release}
Requires: %{name}-qt5%{?_isa} = %{version}-%{release}
Requires: python3-qt5%{?pyqt5_version: >= %{pyqt5_version}}
%{?_sip_api:Requires: python3-pyqt5-sip-api(%{_sip_api_major}) >= %{_sip_api}}
%description -n python3-qscintilla-qt5
%{summary}.
%package -n python3-qscintilla-qt5-devel
Summary: Development files for QScintilla-qt5 python3 bindings
Provides: %{name}-qt5-python3-devel = %{version}-%{release}
Requires: python3-qt5-devel
BuildArch: noarch
%description -n python3-qscintilla-qt5-devel
%{summary}.
%endif
%endif
%prep
%setup -q -n qscintilla-%{version}
%patch100 -p1 -b .sip_check
%patch101 -p1 -b .qurl
%patch102 -p1
%build
%if 0%{?qt5}
PATH=%{_qt5_bindir}:$PATH; export PATH
cp -a Qt4Qt5 Qt5/
pushd Qt5
%{qmake_qt5} qscintilla.pro
%make_build
popd
QMAKEFEATURES=`pwd`/Qt5/features; export QMAKEFEATURES
cp -a designer-Qt4Qt5 designer-Qt5/
pushd designer-Qt5
%{qmake_qt5} designer.pro INCLUDEPATH+=../Qt5 LIBS+=-L../Qt5
%make_build
popd
%if 0%{?python3}
cp -a Python Python3-qt5
pushd Python3-qt5
%{__python3} \
configure.py --verbose \
--pyqt=PyQt5 \
--sip=/usr/bin/sip-pyqt5 \
--qsci-incdir=../Qt5 --qsci-libdir=../Qt5
%make_build
popd
%endif
%endif
%install
%if 0%{?qt5}
make -C Qt5 install INSTALL_ROOT=%{buildroot}
ln -s libqscintilla2_qt5.so %{buildroot}%{_qt5_libdir}/libqscintilla2-qt5.so
make -C designer-Qt5 install INSTALL_ROOT=%{buildroot}
%if 0%{?python3}
make -C Python3-qt5 install DESTDIR=%{buildroot} INSTALL_ROOT=%{buildroot}
test -x %{buildroot}%{python3_sitearch}/PyQt5/Qsci.so || \
chmod a+x %{buildroot}%{python3_sitearch}/PyQt5/Qsci.so
%endif
%endif
%find_lang qscintilla --with-qt
%if 0%{?qt5}
grep "%{_qt5_translationdir}" qscintilla.lang > qscintilla-qt5.lang
%endif
%if ! ( 0%{?qt5} && 0%{?python3})
rm -rfv %{buildroot}%{_qt5_datadir}/qsci/
%endif
%check
%if 0%{?qt5}
%ldconfig_scriptlets qt5
%files qt5 -f qscintilla-qt5.lang
%doc NEWS README
%license LICENSE
%{_qt5_libdir}/libqscintilla2_qt5.so.15*
%{_qt5_plugindir}/designer/libqscintillaplugin.so
%files qt5-devel
%doc doc/html-Qt4Qt5 doc/Scintilla example-Qt4Qt5
%{_qt5_headerdir}/Qsci/
%{_qt5_libdir}/libqscintilla2_qt5.so
%{_qt5_archdatadir}/mkspecs/features/qscintilla2.prf
%{_qt5_libdir}/libqscintilla2-qt5.so
%if 0%{?python3}
%files -n python3-qscintilla-qt5
%{python3_sitearch}/PyQt5/Qsci.*
%{_qt5_datadir}/qsci/
%{python3_sitearch}/QScintilla-%{version}.dist-info/
%files -n python3-qscintilla-qt5-devel
%{py3_sipdir}/PyQt5/Qsci/
%endif
%endif
%changelog
* Mon Jan 11 2021 leiju <leiju4@huawei.com> - 2.11.2-1
- package init