diff options
author | Andreas Sturmlechner <andreas.sturmlechner@gmail.com> | 2018-06-30 10:44:23 +0200 |
---|---|---|
committer | Andreas Sturmlechner <andreas.sturmlechner@gmail.com> | 2018-06-30 10:45:02 +0200 |
commit | 85a61ec97842ace18e8d7b3a33a6e5e658c684ed (patch) | |
tree | 3746f52f6b19385190c7b9fb11f4c71aaa64a6ee /x11-libs/qwt | |
parent | kde-apps/plasma-runtime: Fix kdelibs[crypt -> plasma] USE dep (diff) | |
download | kde-sunset-85a61ec97842ace18e8d7b3a33a6e5e658c684ed.tar.gz kde-sunset-85a61ec97842ace18e8d7b3a33a6e5e658c684ed.tar.bz2 kde-sunset-85a61ec97842ace18e8d7b3a33a6e5e658c684ed.zip |
x11-libs/qwt: Import from Gentoo ebuild repository
Diffstat (limited to 'x11-libs/qwt')
-rw-r--r-- | x11-libs/qwt/Manifest | 2 | ||||
-rw-r--r-- | x11-libs/qwt/files/qwt-5.2.3-install_qt.patch | 28 | ||||
-rw-r--r-- | x11-libs/qwt/files/qwt-6.0.2-invalid-read.patch | 250 | ||||
-rw-r--r-- | x11-libs/qwt/files/qwt-6.1.1-pc-destdir.patch | 15 | ||||
-rw-r--r-- | x11-libs/qwt/metadata.xml | 22 | ||||
-rw-r--r-- | x11-libs/qwt/qwt-5.2.3-r2.ebuild | 101 | ||||
-rw-r--r-- | x11-libs/qwt/qwt-6.1.3-r1.ebuild | 213 |
7 files changed, 631 insertions, 0 deletions
diff --git a/x11-libs/qwt/Manifest b/x11-libs/qwt/Manifest new file mode 100644 index 00000000..e1795ac9 --- /dev/null +++ b/x11-libs/qwt/Manifest @@ -0,0 +1,2 @@ +DIST qwt-5.2.3.tar.bz2 1983725 BLAKE2B 24c9d5c9b660ec082266a02da59b89ec0f8f4eea085fa83a3d773a18e452f0be6845d9584d9ddb0e51aa9a2e4f7fe0980a236d36b6930abbbfa7f6b0f9d8e1a9 SHA512 60545712790699b145a54baba4c40802d9a58bf5f68f997faed5027db6773a801097be8675e00b2af1de568e36e2e498db0a0310ac4877fd9f2b52871409dd49 +DIST qwt-6.1.3.tar.bz2 4245614 BLAKE2B 5461602702eb159c5c9131eb554d6a619f40c459432c3f32f98b55e4b659d37848fbc0691baeaf691155bae83f68b9c91d3fee430935dd0c1b29e6fceac7a36f SHA512 d4a73e9e7ddcb7c16c508920a298784935be2eddc8f7585993d9fffe1bb01e1787a0d5d7ea4f220398b94ea2b211a19009dccaeadce56a84410357124bcb051a 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 00000000..48e93858 --- /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 00000000..a2253509 --- /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 00000000..f00ea604 --- /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 00000000..5fa86121 --- /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 00000000..73b753b7 --- /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 00000000..dc89fab7 --- /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 +} |