public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] proj/kde-sunset:master commit in: x11-libs/qwt/files/, x11-libs/qwt/
@ 2018-06-30  8:45 Andreas Sturmlechner
  0 siblings, 0 replies; only message in thread
From: Andreas Sturmlechner @ 2018-06-30  8:45 UTC (permalink / raw
  To: gentoo-commits

commit:     85a61ec97842ace18e8d7b3a33a6e5e658c684ed
Author:     Andreas Sturmlechner <andreas.sturmlechner <AT> gmail <DOT> com>
AuthorDate: Sat Jun 30 08:44:23 2018 +0000
Commit:     Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
CommitDate: Sat Jun 30 08:45:02 2018 +0000
URL:        https://gitweb.gentoo.org/proj/kde-sunset.git/commit/?id=85a61ec9

x11-libs/qwt: Import from Gentoo ebuild repository

 x11-libs/qwt/files/qwt-5.2.3-install_qt.patch   |  28 +++
 x11-libs/qwt/files/qwt-6.0.2-invalid-read.patch | 250 ++++++++++++++++++++++++
 x11-libs/qwt/files/qwt-6.1.1-pc-destdir.patch   |  15 ++
 x11-libs/qwt/metadata.xml                       |  22 +++
 x11-libs/qwt/qwt-5.2.3-r2.ebuild                | 101 ++++++++++
 x11-libs/qwt/qwt-6.1.3-r1.ebuild                | 213 ++++++++++++++++++++
 6 files changed, 629 insertions(+)

diff --git a/x11-libs/qwt/files/qwt-5.2.3-install_qt.patch b/x11-libs/qwt/files/qwt-5.2.3-install_qt.patch
new file mode 100644
index 0000000..48e9385
--- /dev/null
+++ b/x11-libs/qwt/files/qwt-5.2.3-install_qt.patch
@@ -0,0 +1,28 @@
+diff -up qwt-5.2.2/designer/designer.pro.install_qt qwt-5.2.2/designer/designer.pro
+--- qwt-5.2.2/designer/designer.pro.install_qt	2011-08-01 04:28:22.000000000 -0500
++++ qwt-5.2.2/designer/designer.pro	2012-08-14 11:11:22.569229749 -0500
+@@ -36,6 +37,7 @@ contains(CONFIG, QwtDesigner) {
+         else {
+             SUFFIX_STR = $${RELEASE_SUFFIX}
+         }
++        LIBNAME         = qwt$${SUFFIX_STR}
+     }
+ 
+     TEMPLATE        = lib
+@@ -45,7 +47,6 @@ contains(CONFIG, QwtDesigner) {
+     INCLUDEPATH    += $${QWT_ROOT}/src 
+     DEPENDPATH     += $${QWT_ROOT}/src 
+ 
+-    LIBNAME         = qwt$${SUFFIX_STR}
+     contains(CONFIG, QwtDll) {
+         win32 {
+             DEFINES += QT_DLL QWT_DLL
+@@ -103,7 +104,7 @@ contains(CONFIG, QwtDesigner) {
+ 
+         # Qt 4
+ 
+-        TARGET    = qwt_designer_plugin$${SUFFIX_STR}
++        TARGET    = qwt5_designer_plugin$${SUFFIX_STR}
+         CONFIG    += qt designer plugin 
+ 
+         RCC_DIR   = resources

diff --git a/x11-libs/qwt/files/qwt-6.0.2-invalid-read.patch b/x11-libs/qwt/files/qwt-6.0.2-invalid-read.patch
new file mode 100644
index 0000000..a225350
--- /dev/null
+++ b/x11-libs/qwt/files/qwt-6.0.2-invalid-read.patch
@@ -0,0 +1,250 @@
+--- qwt-6.0.2-orig/textengines/mathml/qwt_mml_document.cpp	2012-12-01 00:22:46.752106265 +1100
++++ qwt-6.0.2/textengines/mathml/qwt_mml_document.cpp	2013-01-31 14:29:30.590197611 +1100
+@@ -4421,7 +4421,10 @@
+         if ( ok )
+             return value;
+         else
+-            qWarning( "Could not convert %s to form", value_str.toLatin1().data() );
++        {
++            QByteArray value_str_ba = value_str.toLatin1();
++            qWarning( "Could not convert %s to form", value_str_ba.data() );
++        }
+ 
+     }
+ 
+@@ -4658,7 +4661,10 @@
+                 continue;
+             }
+             else
+-                qWarning( "MmlMtableNode::layoutSymbol(): could not parse value %s%%", value.toLatin1().data() );
++            {
++                QByteArray value_ba = value.toLatin1();
++                qWarning( "MmlMtableNode::layoutSymbol(): could not parse value %s%%", value_ba.data() );
++            }
+         }
+ 
+         // Relatively sized column, but we failed to parse the factor. Treat is like an auto
+@@ -5167,7 +5173,8 @@
+     double factor = factor_str.toFloat( &float_ok );
+     if ( !float_ok || factor < 0 )
+     {
+-        qWarning( "MmlMpaddedNode::interpretSpacing(): could not parse \"%s\"", value.toLatin1().data() );
++        QByteArray value_ba = value.toLatin1();
++        qWarning( "MmlMpaddedNode::interpretSpacing(): could not parse \"%s\"", value_ba.data() );
+         return 0;
+     }
+ 
+@@ -5196,7 +5203,8 @@
+         unit_size = QwtMmlNode::interpretSpacing( "1" + pseudo_unit, &unit_ok );
+         if ( !unit_ok )
+         {
+-            qWarning( "MmlMpaddedNode::interpretSpacing(): could not parse \"%s\"", value.toLatin1().data() );
++            QByteArray value_ba = value.toLatin1();
++            qWarning( "MmlMpaddedNode::interpretSpacing(): could not parse \"%s\"", value_ba.data() );
+             return 0;
+         }
+     }
+@@ -5368,7 +5376,8 @@
+             return ( int )( em * factor );
+         else
+         {
+-            qWarning( "interpretSpacing(): could not parse \"%sem\"", value.toLatin1().data() );
++            QByteArray value_ba = value.toLatin1();
++            qWarning( "interpretSpacing(): could not parse \"%sem\"", value_ba.data() );
+             if ( ok != 0 )
+                 *ok = false;
+             return 0;
+@@ -5384,7 +5393,8 @@
+             return ( int )( ex * factor );
+         else
+         {
+-            qWarning( "interpretSpacing(): could not parse \"%sex\"", value.toLatin1().data() );
++            QByteArray value_ba = value.toLatin1();
++            qWarning( "interpretSpacing(): could not parse \"%sex\"", value_ba.data() );
+             if ( ok != 0 )
+                 *ok = false;
+             return 0;
+@@ -5406,7 +5416,8 @@
+         }
+         else
+         {
+-            qWarning( "interpretSpacing(): could not parse \"%scm\"", value.toLatin1().data() );
++            QByteArray value_ba = value.toLatin1();
++            qWarning( "interpretSpacing(): could not parse \"%scm\"", value_ba.data() );
+             if ( ok != 0 )
+                 *ok = false;
+             return 0;
+@@ -5428,7 +5439,8 @@
+         }
+         else
+         {
+-            qWarning( "interpretSpacing(): could not parse \"%smm\"", value.toLatin1().data() );
++            QByteArray value_ba = value.toLatin1();
++            qWarning( "interpretSpacing(): could not parse \"%smm\"", value_ba.data() );
+             if ( ok != 0 )
+                 *ok = false;
+             return 0;
+@@ -5450,7 +5462,8 @@
+         }
+         else
+         {
+-            qWarning( "interpretSpacing(): could not parse \"%sin\"", value.toLatin1().data() );
++            QByteArray value_ba = value.toLatin1();
++            qWarning( "interpretSpacing(): could not parse \"%sin\"", value_ba.data() );
+             if ( ok != 0 )
+                 *ok = false;
+             return 0;
+@@ -5466,7 +5479,8 @@
+             return i;
+         else
+         {
+-            qWarning( "interpretSpacing(): could not parse \"%spx\"", value.toLatin1().data() );
++            QByteArray value_ba = value.toLatin1();
++            qWarning( "interpretSpacing(): could not parse \"%spx\"", value_ba.data() );
+             if ( ok != 0 )
+                 *ok = false;
+             return 0;
+@@ -5478,7 +5492,8 @@
+     if ( float_ok && i >= 0 )
+         return i;
+ 
+-    qWarning( "interpretSpacing(): could not parse \"%s\"", value.toLatin1().data() );
++    QByteArray value_ba = value.toLatin1();
++    qWarning( "interpretSpacing(): could not parse \"%s\"", value_ba.data() );
+     if ( ok != 0 )
+         *ok = false;
+     return 0;
+@@ -5503,7 +5518,8 @@
+         return ( int )( base * factor / 100.0 );
+     }
+ 
+-    qWarning( "interpretPercentSpacing(): could not parse \"%s%%\"", value.toLatin1().data() );
++    QByteArray value_ba = value.toLatin1();
++    qWarning( "interpretPercentSpacing(): could not parse \"%s%%\"", value_ba.data() );
+     if ( ok != 0 )
+         *ok = false;
+     return 0;
+@@ -5528,7 +5544,8 @@
+         return pt_size;
+     }
+ 
+-    qWarning( "interpretPointSize(): could not parse \"%spt\"", value.toLatin1().data() );
++    QByteArray value_ba = value.toLatin1();
++    qWarning( "interpretPointSize(): could not parse \"%spt\"", value_ba.data() );
+     if ( ok != 0 )
+         *ok = false;
+     return 0;
+@@ -5737,7 +5754,8 @@
+ */
+ static const QwtMmlOperSpec *searchOperSpecData( const QString &name )
+ {
+-    const char *name_latin1 = name.toLatin1().data();
++    QByteArray name_latin1_ba = name.toLatin1();
++    const char *name_latin1 = name_latin1_ba.data();
+ 
+     // binary search
+     // establish invariant g_oper_spec_data[begin].name < name < g_oper_spec_data[end].name
+@@ -5789,7 +5807,8 @@
+         if ( spec == 0 )
+             continue;
+ 
+-        const char *name_latin1 = name.toLatin1().data();
++        QByteArray name_ba = name.toLatin1();
++        const char *name_latin1 = name_ba.data();
+ 
+         // backtrack to the first instance of name
+         while ( spec > g_oper_spec_data && qstrcmp( ( spec - 1 )->name, name_latin1 ) == 0 )
+@@ -5918,7 +5937,8 @@
+     if ( ok != 0 )
+         *ok = false;
+ 
+-    qWarning( "interpretMathVariant(): could not parse value: \"%s\"", value.toLatin1().data() );
++    QByteArray value_ba = value.toLatin1();
++    qWarning( "interpretMathVariant(): could not parse value: \"%s\"", value_ba.data() );
+ 
+     return QwtMml::NormalMV;
+ }
+@@ -5938,7 +5958,8 @@
+     if ( ok != 0 )
+         *ok = false;
+ 
+-    qWarning( "interpretForm(): could not parse value \"%s\"", value.toLatin1().data() );
++    QByteArray value_ba = value.toLatin1();
++    qWarning( "interpretForm(): could not parse value \"%s\"", value_ba.data() );
+     return QwtMml::InfixForm;
+ }
+ 
+@@ -5959,7 +5980,8 @@
+     if ( ok != 0 )
+         *ok = false;
+ 
+-    qWarning( "interpretColAlign(): could not parse value \"%s\"", value.toLatin1().data() );
++    QByteArray value_ba = value.toLatin1();
++    qWarning( "interpretColAlign(): could not parse value \"%s\"", value_ba.data() );
+     return QwtMml::ColAlignCenter;
+ }
+ 
+@@ -5984,7 +6006,8 @@
+     if ( ok != 0 )
+         *ok = false;
+ 
+-    qWarning( "interpretRowAlign(): could not parse value \"%s\"", value.toLatin1().data() );
++    QByteArray value_ba = value.toLatin1();
++    qWarning( "interpretRowAlign(): could not parse value \"%s\"", value_ba.data() );
+     return QwtMml::RowAlignAxis;
+ }
+ 
+@@ -6018,7 +6041,8 @@
+     if ( ok != 0 )
+         *ok = false;
+ 
+-    qWarning( "interpretFrameType(): could not parse value \"%s\"", value.toLatin1().data() );
++    QByteArray value_ba = value.toLatin1();
++    qWarning( "interpretFrameType(): could not parse value \"%s\"", value_ba.data() );
+     return QwtMml::FrameNone;
+ }
+ 
+@@ -6030,7 +6054,8 @@
+     QStringList l = value_list.split( ' ' );
+     if ( l.count() != 2 )
+     {
+-        qWarning( "interpretFrameSpacing: could not parse value \"%s\"", value_list.toLatin1().data() );
++        QByteArray value_list_ba = value_list.toLatin1();
++        qWarning( "interpretFrameSpacing: could not parse value \"%s\"", value_list_ba.data() );
+         if ( ok != 0 )
+             *ok = false;
+         return QwtMml::FrameSpacing( ( int )( 0.4 * em ), ( int )( 0.5 * ex ) );
+@@ -6089,7 +6114,10 @@
+         else if ( value == "bold" )
+             fn.setBold( true );
+         else
+-            qWarning( "interpretDepreciatedFontAttr(): could not parse fontweight \"%s\"", value.toLatin1().data() );
++        {
++            QByteArray value_ba = value.toLatin1();
++            qWarning( "interpretDepreciatedFontAttr(): could not parse fontweight \"%s\"", value_ba.data() );
++        }
+     }
+ 
+     if ( font_attr.contains( "fontstyle" ) )
+@@ -6100,7 +6128,10 @@
+         else if ( value == "italic" )
+             fn.setItalic( true );
+         else
+-            qWarning( "interpretDepreciatedFontAttr(): could not parse fontstyle \"%s\"", value.toLatin1().data() );
++        {
++            QByteArray value_ba = value.toLatin1();
++            qWarning( "interpretDepreciatedFontAttr(): could not parse fontstyle \"%s\"", value_ba.data() );
++        }
+     }
+ 
+     if ( font_attr.contains( "fontfamily" ) )
+@@ -6150,7 +6181,8 @@
+ 
+     if ( ok != 0 )
+         *ok = false;
+-    qWarning( "interpretMathSize(): could not parse mathsize \"%s\"", value.toLatin1().data() );
++    QByteArray value_ba = value.toLatin1();
++    qWarning( "interpretMathSize(): could not parse mathsize \"%s\"", value_ba.data() );
+     return fn;
+ }
+ 

diff --git a/x11-libs/qwt/files/qwt-6.1.1-pc-destdir.patch b/x11-libs/qwt/files/qwt-6.1.1-pc-destdir.patch
new file mode 100644
index 0000000..f00ea60
--- /dev/null
+++ b/x11-libs/qwt/files/qwt-6.1.1-pc-destdir.patch
@@ -0,0 +1,15 @@
+ textengines/mathml/mathml.pro | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/textengines/mathml/mathml.pro b/textengines/mathml/mathml.pro
+index 7032366..b1372f7 100644
+--- a/textengines/mathml/mathml.pro
++++ b/textengines/mathml/mathml.pro
+@@ -63,6 +63,7 @@ contains(QWT_CONFIG, QwtPkgConfig) {
+ 
+     # QMAKE_PKGCONFIG_DESTDIR is buggy, in combination
+     # with including pri files: better don't use it
++    QMAKE_PKGCONFIG_DESTDIR = pkgconfig
+ 
+     greaterThan(QT_MAJOR_VERSION, 4) {
+ 

diff --git a/x11-libs/qwt/metadata.xml b/x11-libs/qwt/metadata.xml
new file mode 100644
index 0000000..5fa8612
--- /dev/null
+++ b/x11-libs/qwt/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+  <maintainer type="project">
+    <email>sci@gentoo.org</email>
+    <name>Gentoo Science Project</name>
+  </maintainer>
+  <longdescription lang="en">
+  The Qwt library contains GUI Components and utility classes which are
+  primarily useful for programs with a technical background.
+  Besides a 2D plot widget it provides scales, sliders, dials,
+  compasses, thermometers, wheels and knobs to control or display
+  values, arrays or ranges of type double.  
+</longdescription>
+  <use>
+    <flag name="designer">Installs <pkg>dev-qt/designer</pkg> plugin.</flag>
+    <flag name="mathml">Use the MathML renderer of the Qt solutions package.</flag>
+  </use>
+  <upstream>
+    <remote-id type="sourceforge">qwt</remote-id>
+  </upstream>
+</pkgmetadata>

diff --git a/x11-libs/qwt/qwt-5.2.3-r2.ebuild b/x11-libs/qwt/qwt-5.2.3-r2.ebuild
new file mode 100644
index 0000000..73b753b
--- /dev/null
+++ b/x11-libs/qwt/qwt-5.2.3-r2.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils multibuild qt4-r2
+
+DESCRIPTION="2D plotting library for Qt4"
+HOMEPAGE="http://qwt.sourceforge.net/"
+SRC_URI="mirror://sourceforge/${PN}/${P}.tar.bz2"
+
+LICENSE="qwt"
+KEYWORDS="~alpha amd64 arm ia64 ppc ppc64 sparc x86 ~x86-macos"
+SLOT="5"
+IUSE="doc examples static-libs svg"
+
+DEPEND="
+	dev-qt/designer:4
+	dev-qt/qtgui:4
+	doc? ( !<media-libs/coin-3.1.3[doc] )
+	svg? ( dev-qt/qtsvg:4 )"
+RDEPEND="${DEPEND}"
+
+DOCS="CHANGES README"
+
+src_prepare() {
+	epatch "${FILESDIR}"/${P}-install_qt.patch
+	sed -e "/QwtVersion/s:5.2.2.:${PV}:g" -i ${PN}.prf || die
+
+	cat > qwtconfig.pri <<-EOF
+		target.path = "${EPREFIX}/usr/$(get_libdir)"
+		headers.path = "${EPREFIX}/usr/include/qwt5"
+		doc.path = "${EPREFIX}/usr/share/doc/${PF}"
+		CONFIG += qt warn_on thread release
+		CONFIG += QwtPlot QwtWidgets QwtDesigner
+		VERSION = ${PV}
+		QWT_VERSION = ${PV/_*}
+		QWT_INSTALL_PLUGINS   = "${EPREFIX}/usr/$(get_libdir)/qt4/plugins/designer"
+		QWT_INSTALL_FEATURES  = "${EPREFIX}/usr/share/qt4/mkspecs/features"
+	EOF
+	sed -i -e 's/headers doc/headers/' src/src.pro || die
+	use svg && echo >> qwtconfig.pri "CONFIG += QwtSVGItem"
+
+	MULTIBUILD_VARIANTS=( )
+	use static-libs && MULTIBUILD_VARIANTS+=( static )
+	MULTIBUILD_VARIANTS+=( shared )
+
+	qt4-r2_src_prepare
+
+	preparation() {
+		cp -rf "${S}" "${BUILD_DIR}" || die
+		[[ ${MULTIBUILD_VARIANT} == shared ]] && \
+			echo "CONFIG += QwtDll" >> "${BUILD_DIR}"/qwtconfig.pri
+	}
+
+	multibuild_foreach_variant preparation
+}
+
+src_configure() {
+	multibuild_parallel_foreach_variant run_in_build_dir eqmake4 ${PN}.pro
+}
+
+src_compile() {
+	multibuild_foreach_variant run_in_build_dir qt4-r2_src_compile
+}
+
+src_test() {
+	testing() {
+		cd examples || die
+		eqmake4 examples.pro
+		emake
+	}
+	multibuild_foreach_variant run_in_build_dir testing
+}
+
+src_install () {
+	multibuild_foreach_variant run_in_build_dir qt4-r2_src_install
+
+	if use doc; then
+		insinto /usr/share/doc/${PF}
+		rm doc/man/*/*license* || die
+		rm -f doc/man/*/{_,deprecated}* || die
+		doman doc/man/*/*
+		doins -r doc/html
+	fi
+	if use examples; then
+		# don't build examples - fix the qt files to build once installed
+		cat > examples/examples.pri <<-EOF
+			include( qwtconfig.pri )
+			TEMPLATE     = app
+			MOC_DIR      = moc
+			INCLUDEPATH += "${EPREFIX}/usr/include/qwt5"
+			DEPENDPATH  += "${EPREFIX}/usr/include/qwt5"
+			LIBS        += -lqwt
+		EOF
+		sed -i -e 's:../qwtconfig:qwtconfig:' examples/examples.pro || die
+		cp *.pri examples/ || die
+		insinto /usr/share/${PN}5
+		doins -r examples
+	fi
+}

diff --git a/x11-libs/qwt/qwt-6.1.3-r1.ebuild b/x11-libs/qwt/qwt-6.1.3-r1.ebuild
new file mode 100644
index 0000000..dc89fab
--- /dev/null
+++ b/x11-libs/qwt/qwt-6.1.3-r1.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit multibuild qmake-utils
+
+MY_P="${PN}-${PV/_/-}"
+
+DESCRIPTION="2D plotting library for Qt4 and Qt5"
+HOMEPAGE="http://qwt.sourceforge.net/"
+SRC_URI="mirror://sourceforge/project/${PN}/${PN}/${PV/_/-}/${MY_P}.tar.bz2"
+
+LICENSE="qwt mathml? ( LGPL-2.1 Nokia-Qt-LGPL-Exception-1.1 )"
+KEYWORDS="amd64 ~arm ppc ppc64 sparc x86 ~amd64-linux ~x86-linux ~x86-macos"
+SLOT="6/1.3"
+IUSE="designer doc examples mathml opengl qt4 qt5 static-libs svg"
+
+REQUIRED_USE="|| ( qt4 qt5 )"
+
+DEPEND="
+	opengl? ( virtual/opengl )
+	qt4? (
+		dev-qt/qtcore:4
+		dev-qt/qtgui:4
+		designer? ( dev-qt/designer:4 )
+		opengl? ( dev-qt/qtopengl:4 )
+		svg? ( dev-qt/qtsvg:4 )
+	)
+	qt5? (
+		dev-qt/qtconcurrent:5
+		dev-qt/qtcore:5
+		dev-qt/qtgui:5
+		dev-qt/qtprintsupport:5
+		dev-qt/qtwidgets:5
+		designer? ( dev-qt/designer:5 )
+		opengl? ( dev-qt/qtopengl:5 )
+		svg? ( dev-qt/qtsvg:5 )
+	)
+"
+RDEPEND="${DEPEND}
+	!<x11-libs/qwt-5.2.3
+	!x11-libs/qwt:5[doc]
+	doc? ( !<media-libs/coin-3.1.3[doc] )
+"
+
+S="${WORKDIR}"/${MY_P}
+
+DOCS=( CHANGES-6.1 README )
+
+PATCHES=(
+	"${FILESDIR}"/${PN}-6.0.2-invalid-read.patch
+	"${FILESDIR}"/${PN}-6.1.1-pc-destdir.patch
+)
+
+src_prepare() {
+	cat > qwtconfig.pri <<-EOF
+		QWT_INSTALL_LIBS = "${EPREFIX}/usr/$(get_libdir)"
+		QWT_INSTALL_HEADERS = "${EPREFIX}/usr/include/qwt6"
+		QWT_INSTALL_DOCS = "${EPREFIX}/usr/share/doc/${PF}"
+		QWT_CONFIG += QwtPlot QwtWidgets QwtPkgConfig
+		VERSION = ${PV/_*}
+		QWT_VERSION = ${PV/_*}
+	EOF
+
+	use designer && echo "QWT_CONFIG += QwtDesigner" >> qwtconfig.pri
+	use mathml && echo "QWT_CONFIG += QwtMathML" >> qwtconfig.pri
+	use opengl && echo "QWT_CONFIG += QwtOpenGL" >> qwtconfig.pri
+	use svg && echo "QWT_CONFIG += QwtSvg" >> qwtconfig.pri
+
+	cat > qwtbuild.pri <<-EOF
+		QWT_CONFIG += qt warn_on thread release no_keywords
+	EOF
+
+	MULTIBUILD_VARIANTS=( )
+
+	if use qt4; then
+		use static-libs && MULTIBUILD_VARIANTS+=( qt4-static )
+		MULTIBUILD_VARIANTS+=( qt4-shared )
+	fi
+
+	if use qt5; then
+		use static-libs && MULTIBUILD_VARIANTS+=( qt5-static )
+		MULTIBUILD_VARIANTS+=( qt5-shared )
+	fi
+
+	multibuild_copy_sources
+
+	preparation() {
+		if [[ ${MULTIBUILD_VARIANT} == *-shared ]]; then
+			echo "QWT_CONFIG += QwtDll" >> qwtconfig.pri
+		fi
+
+		case "${MULTIBUILD_VARIANT}" in
+			qt4-*)
+				cat >> qwtconfig.pri <<-EOF
+					QWT_INSTALL_PLUGINS   = "${EPREFIX}$(qt4_get_plugindir)/designer"
+					QWT_INSTALL_FEATURES  = "${EPREFIX}$(qt4_get_mkspecsdir)/features"
+				EOF
+				sed \
+					-e 's/target doc/target/' \
+					-e "/^TARGET/s:(qwt):(qwt6-qt4):g" \
+					-e "/^TARGET/s:qwt):qwt6-qt4):g" \
+					-i src/src.pro || die
+
+				sed \
+					-e '/qwtAddLibrary/s:(qwt):(qwt6-qt4):g' \
+					-e '/qwtAddLibrary/s:qwt):qwt6-qt4):g' \
+					-i qwt.prf designer/designer.pro examples/examples.pri \
+					textengines/mathml/qwtmathml.prf textengines/textengines.pri || die
+
+			;;
+			qt5-*)
+				cat >> qwtconfig.pri <<-EOF
+					QWT_INSTALL_PLUGINS   = "${EPREFIX}$(qt5_get_plugindir)/designer"
+					QWT_INSTALL_FEATURES  = "${EPREFIX}$(qt5_get_mkspecsdir)/features"
+				EOF
+				sed \
+					-e 's/target doc/target/' \
+					-e "/^TARGET/s:(qwt):(qwt6-qt5):g" \
+					-e "/^TARGET/s:qwt):qwt6-qt5):g" \
+					-i src/src.pro || die
+
+				sed \
+					-e '/qwtAddLibrary/s:(qwt):(qwt6-qt5):g' \
+					-e '/qwtAddLibrary/s:qwt):qwt6-qt5):g' \
+					-i qwt.prf designer/designer.pro examples/examples.pri \
+					textengines/mathml/qwtmathml.prf textengines/textengines.pri || die
+			;;
+		esac
+		default
+	}
+
+	multibuild_foreach_variant run_in_build_dir preparation
+}
+
+src_configure() {
+	configuration() {
+		case "${MULTIBUILD_VARIANT}" in
+			qt4-*)
+				eqmake4
+				;;
+			qt5-*)
+				eqmake5
+				;;
+		esac
+	}
+	multibuild_foreach_variant run_in_build_dir configuration
+}
+
+src_compile() {
+	multibuild_foreach_variant run_in_build_dir default
+}
+
+src_test() {
+	testing() {
+		cd examples || die
+		case "${MULTIBUILD_VARIANT}" in
+			qt4-*)
+				eqmake4 examples.pro
+				;;
+			qt5-*)
+				eqmake5 examples.pro
+				;;
+		esac
+		emake
+	}
+	multibuild_foreach_variant run_in_build_dir testing
+}
+
+src_install () {
+	rm -f doc/man/*/{_,deprecated}* || die
+
+	multibuild_foreach_variant run_in_build_dir emake INSTALL_ROOT="${D}" install
+
+	if use qt4; then
+		mv "${ED}"/usr/$(get_libdir)/pkgconfig/qwt6{-qt4,}.pc || die
+	fi
+
+	if use mathml; then
+		sed \
+			-e "s: -L\"${WORKDIR}\".* -lqwt6: -lqwt6:g" \
+			-i "${ED}"/usr/$(get_libdir)/pkgconfig/qwtmathml.pc || die
+	fi
+
+	if use doc; then
+		HTML_DOCS=( doc/html/. )
+	else
+		rm -rf "${ED}"/usr/share/doc/${PF}/html || die
+	fi
+
+	einstalldocs
+
+	mkdir -p "${ED}"/usr/share/man/ || die
+	mv "${ED}"/usr/share/doc/${PF}/man/man3 "${ED}"/usr/share/man/ && \
+		rmdir "${ED}"/usr/share/doc/${PF}/man || die
+
+	if use examples; then
+		# don't build examples - fix the qt files to build once installed
+		cat > examples/examples.pri <<-EOF
+			include( qwtconfig.pri )
+			TEMPLATE     = app
+			MOC_DIR      = moc
+			INCLUDEPATH += "${EPREFIX}/usr/include/qwt6"
+			DEPENDPATH  += "${EPREFIX}/usr/include/qwt6"
+			LIBS        += -lqwt6
+		EOF
+		sed -i -e 's:../qwtconfig:qwtconfig:' examples/examples.pro || die
+		cp *.pri examples/ || die
+		insinto /usr/share/${PN}6
+		doins -r examples
+	fi
+}


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2018-06-30  8:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-06-30  8:45 [gentoo-commits] proj/kde-sunset:master commit in: x11-libs/qwt/files/, x11-libs/qwt/ Andreas Sturmlechner

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox