dev-lang/qu-prolog: port to QT5
authorKeri Harris <keri@gentoo.org>
Sat, 27 Jan 2018 13:13:55 +0000 (14:13 +0100)
committerKeri Harris <keri@gentoo.org>
Sat, 27 Jan 2018 13:14:36 +0000 (14:14 +0100)
Package-Manager: Portage-2.3.13, Repoman-2.3.3

dev-lang/qu-prolog/files/qu-prolog-10.0-qt5.patch [new file with mode: 0644]
dev-lang/qu-prolog/qu-prolog-10.0-r1.ebuild [new file with mode: 0644]

diff --git a/dev-lang/qu-prolog/files/qu-prolog-10.0-qt5.patch b/dev-lang/qu-prolog/files/qu-prolog-10.0-qt5.patch
new file mode 100644 (file)
index 0000000..d82e78c
--- /dev/null
@@ -0,0 +1,35 @@
+diff -ur qp10.0.orig/src/xqp/term.cc qp10.0/src/xqp/term.cc
+--- qp10.0.orig/src/xqp/term.cc        2008-07-09 07:32:37.000000000 +0200
++++ qp10.0/src/xqp/term.cc     2018-01-27 14:06:54.101545854 +0100
+@@ -38,7 +38,7 @@
+ bool graphic_char(QChar c)
+ {
+-    switch (c.toAscii())
++    switch (c.toLatin1())
+     {
+        case '-':
+        case '/':
+diff -ur qp10.0.orig/src/xqp/xqp.cc qp10.0/src/xqp/xqp.cc
+--- qp10.0.orig/src/xqp/xqp.cc 2011-07-14 01:08:42.000000000 +0200
++++ qp10.0/src/xqp/xqp.cc      2018-01-27 14:07:53.902543353 +0100
+@@ -167,7 +167,7 @@
+ void Xqp::send_cmd_to_qp(QString cmd)
+ {
+-   write(qp_stdin, cmd.toAscii(), cmd.length());
++   write(qp_stdin, cmd.toLatin1(), cmd.length());
+ }
+   
+diff -ur qp10.0.orig/src/xqp/xqp.pro qp10.0/src/xqp/xqp.pro
+--- qp10.0.orig/src/xqp/xqp.pro        2008-07-09 07:32:37.000000000 +0200
++++ qp10.0/src/xqp/xqp.pro     2018-01-27 14:01:24.764559627 +0100
+@@ -4,6 +4,7 @@
+ TEMPLATE = app
+ INCLUDEPATH += .
++QT += widgets
+ # Input
+ HEADERS += interact.h qpconfig.h qthelp.h term.h xqp.h xqpqueries.h
diff --git a/dev-lang/qu-prolog/qu-prolog-10.0-r1.ebuild b/dev-lang/qu-prolog/qu-prolog-10.0-r1.ebuild
new file mode 100644 (file)
index 0000000..bb5af27
--- /dev/null
@@ -0,0 +1,101 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=5
+
+inherit eutils multilib qmake-utils
+
+MY_P=qp${PV}
+
+DESCRIPTION="Extended Prolog supporting quantifiers, object-variables and substitutions"
+HOMEPAGE="http://www.itee.uq.edu.au/~pjr/HomePages/QuPrologHome.html"
+SRC_URI="http://www.itee.uq.edu.au/~pjr/HomePages/QPFiles/${MY_P}.tar.gz"
+
+LICENSE="Apache-2.0 GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+IUSE="debug doc examples pedro qt5 readline threads"
+
+RDEPEND="
+       !dev-util/mpatch
+       !dev-util/rej
+       !games-rpg/kqlives
+       qt5? (
+               dev-qt/qtwidgets:5
+               dev-qt/qtgui:5
+        )
+       pedro? ( net-misc/pedro )
+       readline? ( app-misc/rlwrap )"
+DEPEND="${RDEPEND}
+       dev-lang/perl"
+
+S="${WORKDIR}"/${MY_P}
+
+src_prepare() {
+       epatch "${FILESDIR}"/${P}-configure.patch
+       epatch "${FILESDIR}"/${P}-associated-item.patch
+       epatch "${FILESDIR}"/${P}-gcc6.patch
+       epatch "${FILESDIR}"/${P}-qt5.patch
+}
+
+src_configure() {
+       econf \
+               --libdir=/usr/$(get_libdir) \
+               $(use_enable debug) \
+               $(use_enable threads multiple-threads)
+
+       if use qt5; then
+               cd "${S}"/src/xqp || die
+               eqmake5 xqp.pro
+       fi
+}
+
+src_compile() {
+       emake OPTIMISATION="${CXXFLAGS}"
+
+       if use qt5; then
+               cd "${S}"/src/xqp || die
+               emake
+       fi
+}
+
+src_install() {
+       sed \
+               -e "s|${S}|/usr/$(get_libdir)/qu-prolog|g" \
+               -i bin/qc bin/qc1.qup bin/qecat bin/qg bin/qp || die
+
+       dobin bin/{qc,qecat,qp,kq}
+
+       use qt5 && dobin src/xqp/xqp
+
+       into /usr/$(get_libdir)/${PN}
+       dobin bin/{qa,qc1.qup,qdeal,qem,qg,ql,qppp}
+
+       insinto /usr/$(get_libdir)/${PN}/bin
+       doins bin/rl_commands
+       doins bin/{qc1.qup,qecat,qg,qp}.qx
+
+       insinto /usr/$(get_libdir)/${PN}/library
+       doins prolog/library/*.qo
+
+       insinto /usr/$(get_libdir)/${PN}/compiler
+       doins prolog/compiler/*.qo
+
+       doman doc/man/man1/*.1
+
+       dodoc README
+
+       if use doc ; then
+               docinto reference-manual
+               dodoc doc/manual/*.html
+               docinto user-guide
+               dodoc doc/user/main.pdf
+       fi
+
+       if use examples ; then
+               insinto /usr/share/doc/${PF}/examples
+               doins examples/*.ql
+               docinto examples
+               newdoc examples/README README.examples
+       fi
+}