forked from gentoo/gentoo
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Package-Manager: Portage-2.3.21, Repoman-2.3.6
- Loading branch information
Showing
2 changed files
with
196 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
DIST PyQt5_gpl-5.10.tar.gz 3109934 BLAKE2B 96553b9a6f93c9ff86dc574e44f989d1aa371a5bf28cf3023ebcc9526791d28deab47e6f76ba70b46d33d80fc00d0b4df47cd4bb53a649dc98b8d0c0425d6742 SHA512 a86520870536618857ed3ee1601af45f5a0b456de192a5d6a3f8fa734e5cf49b8ce373928c0f4aeaae365d3fa95db03b5f59ae2903bc5eb2304b7edf22198033 | ||
DIST PyQt5_gpl-5.7.1.tar.gz 3733746 BLAKE2B de8aea058876d740f391901434fa2c7ca1760b323b555efb48b06f8ba3213baccec676bc3984832e0775b28f0d2b2ddf0c37fa35317c237ed9af2e20469ff9ae SHA512 7498713f73807522e58ae38ff58548cf80c2f2c418d6c55e20ce613cdc997e4ee7139076f1f152c7c3edb970bde14febc3496009f934e31ff71f01a1605f558f | ||
DIST PyQt5_gpl-5.9.2.tar.gz 3102848 BLAKE2B b87f25693aa2b20211119f89cf13665bf88f14de8827d43ba757344ab9bdef0b0c197abb8386308c72925da263cabb6efd3f104db8a350c51fca3fba8c7c06b6 SHA512 5af2e65addaed7dd02d8dbf7a7c63767e565fc8edeb7b51e5991a00cda29f75b666529097646e821aaff556f350a929fd451f548bba76e97355b7fe10bd913bc |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,195 @@ | ||
# Copyright 1999-2018 Gentoo Foundation | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI=6 | ||
PYTHON_COMPAT=( python2_7 python3_{4,5,6} ) | ||
|
||
inherit multibuild python-r1 qmake-utils | ||
|
||
DESCRIPTION="Python bindings for the Qt framework" | ||
HOMEPAGE="https://www.riverbankcomputing.com/software/pyqt/intro" | ||
|
||
MY_P=${PN}_gpl-${PV/_pre/.dev} | ||
if [[ ${PV} == *_pre* ]]; then | ||
SRC_URI="https://dev.gentoo.org/~pesa/distfiles/${MY_P}.tar.xz" | ||
else | ||
SRC_URI="mirror://sourceforge/pyqt/${MY_P}.tar.gz" | ||
fi | ||
|
||
LICENSE="GPL-3" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86" | ||
|
||
# TODO: QtNetworkAuth, QtNfc | ||
IUSE="bluetooth dbus debug declarative designer examples gles2 gui help location | ||
multimedia network opengl positioning printsupport sensors serialport sql svg | ||
testlib webchannel webengine webkit websockets widgets x11extras xmlpatterns" | ||
|
||
# The requirements below were extracted from configure.py | ||
# and from the output of 'grep -r "%Import " "${S}"/sip' | ||
REQUIRED_USE=" | ||
${PYTHON_REQUIRED_USE} | ||
bluetooth? ( gui ) | ||
declarative? ( gui network ) | ||
designer? ( widgets ) | ||
help? ( gui widgets ) | ||
location? ( positioning ) | ||
multimedia? ( gui network ) | ||
opengl? ( gui widgets ) | ||
positioning? ( gui ) | ||
printsupport? ( gui widgets ) | ||
sensors? ( gui ) | ||
serialport? ( gui ) | ||
sql? ( widgets ) | ||
svg? ( gui widgets ) | ||
testlib? ( widgets ) | ||
webchannel? ( network ) | ||
webengine? ( network widgets? ( printsupport webchannel ) ) | ||
webkit? ( gui network printsupport widgets ) | ||
websockets? ( network ) | ||
widgets? ( gui ) | ||
xmlpatterns? ( network ) | ||
" | ||
|
||
# Minimal supported version of Qt. | ||
QT_PV="5.9.3:5" | ||
|
||
RDEPEND=" | ||
${PYTHON_DEPS} | ||
>=dev-python/sip-4.19.6:=[${PYTHON_USEDEP}] | ||
>=dev-qt/qtcore-${QT_PV} | ||
>=dev-qt/qtxml-${QT_PV} | ||
bluetooth? ( >=dev-qt/qtbluetooth-${QT_PV} ) | ||
dbus? ( | ||
dev-python/dbus-python[${PYTHON_USEDEP}] | ||
>=dev-qt/qtdbus-${QT_PV} | ||
) | ||
declarative? ( >=dev-qt/qtdeclarative-${QT_PV}[widgets?] ) | ||
designer? ( >=dev-qt/designer-${QT_PV} ) | ||
gui? ( >=dev-qt/qtgui-${QT_PV}[gles2=] ) | ||
help? ( >=dev-qt/qthelp-${QT_PV} ) | ||
location? ( >=dev-qt/qtlocation-${QT_PV} ) | ||
multimedia? ( >=dev-qt/qtmultimedia-${QT_PV}[widgets?] ) | ||
network? ( >=dev-qt/qtnetwork-${QT_PV} ) | ||
opengl? ( >=dev-qt/qtopengl-${QT_PV} ) | ||
positioning? ( >=dev-qt/qtpositioning-${QT_PV} ) | ||
printsupport? ( >=dev-qt/qtprintsupport-${QT_PV} ) | ||
sensors? ( >=dev-qt/qtsensors-${QT_PV} ) | ||
serialport? ( >=dev-qt/qtserialport-${QT_PV} ) | ||
sql? ( >=dev-qt/qtsql-${QT_PV} ) | ||
svg? ( >=dev-qt/qtsvg-${QT_PV} ) | ||
testlib? ( >=dev-qt/qttest-${QT_PV} ) | ||
webchannel? ( >=dev-qt/qtwebchannel-${QT_PV} ) | ||
webengine? ( >=dev-qt/qtwebengine-${QT_PV}[widgets?] ) | ||
webkit? ( >=dev-qt/qtwebkit-5.9:5[printsupport] ) | ||
websockets? ( >=dev-qt/qtwebsockets-${QT_PV} ) | ||
widgets? ( >=dev-qt/qtwidgets-${QT_PV} ) | ||
x11extras? ( >=dev-qt/qtx11extras-${QT_PV} ) | ||
xmlpatterns? ( >=dev-qt/qtxmlpatterns-${QT_PV} ) | ||
" | ||
DEPEND="${RDEPEND} | ||
dbus? ( virtual/pkgconfig ) | ||
" | ||
|
||
S=${WORKDIR}/${MY_P} | ||
|
||
DOCS=( "${S}"/{ChangeLog,NEWS} ) | ||
|
||
pyqt_use_enable() { | ||
use "$1" || return | ||
|
||
if [[ $# -eq 1 ]]; then | ||
echo --enable=Qt$(tr 'a-z' 'A-Z' <<< ${1:0:1})${1:1} | ||
else | ||
shift | ||
echo ${@/#/--enable=} | ||
fi | ||
} | ||
|
||
src_configure() { | ||
configuration() { | ||
local myconf=( | ||
"${PYTHON}" | ||
"${S}"/configure.py | ||
$(usex debug '--debug --qml-debug --trace' '') | ||
--verbose | ||
--confirm-license | ||
--qmake="$(qt5_get_bindir)"/qmake | ||
--bindir="${EPREFIX}/usr/bin" | ||
--destdir="$(python_get_sitedir)" | ||
--sip-incdir="$(python_get_includedir)" | ||
--qsci-api | ||
--enable=QtCore | ||
--enable=QtXml | ||
$(pyqt_use_enable bluetooth) | ||
$(pyqt_use_enable dbus QtDBus) | ||
$(usex dbus '' --no-python-dbus) | ||
$(pyqt_use_enable declarative QtQml QtQuick $(usex widgets QtQuickWidgets '')) | ||
$(usex declarative '' --no-qml-plugin) | ||
$(pyqt_use_enable designer) | ||
$(usex designer '' --no-designer-plugin) | ||
$(pyqt_use_enable gui) | ||
$(pyqt_use_enable gui $(use gles2 && echo _QOpenGLFunctions_ES2 || echo _QOpenGLFunctions_{2_0,2_1,4_1_Core})) | ||
$(pyqt_use_enable help) | ||
$(pyqt_use_enable location) | ||
$(pyqt_use_enable multimedia QtMultimedia $(usex widgets QtMultimediaWidgets '')) | ||
$(pyqt_use_enable network) | ||
$(pyqt_use_enable opengl QtOpenGL) | ||
$(pyqt_use_enable positioning) | ||
$(pyqt_use_enable printsupport QtPrintSupport) | ||
$(pyqt_use_enable sensors) | ||
$(pyqt_use_enable serialport QtSerialPort) | ||
$(pyqt_use_enable sql) | ||
$(pyqt_use_enable svg) | ||
$(pyqt_use_enable testlib QtTest) | ||
$(pyqt_use_enable webchannel QtWebChannel) | ||
$(pyqt_use_enable webengine QtWebEngine QtWebEngineCore $(usex widgets QtWebEngineWidgets '')) | ||
$(pyqt_use_enable webkit QtWebKit QtWebKitWidgets) | ||
$(pyqt_use_enable websockets QtWebSockets) | ||
$(pyqt_use_enable widgets) | ||
$(pyqt_use_enable x11extras QtX11Extras) | ||
$(pyqt_use_enable xmlpatterns QtXmlPatterns) | ||
) | ||
echo "${myconf[@]}" | ||
"${myconf[@]}" || die | ||
|
||
eqmake5 -recursive ${PN}.pro | ||
} | ||
python_foreach_impl run_in_build_dir configuration | ||
} | ||
|
||
src_compile() { | ||
python_foreach_impl run_in_build_dir default | ||
} | ||
|
||
src_install() { | ||
installation() { | ||
local tmp_root=${D%/}/tmp | ||
emake INSTALL_ROOT="${tmp_root}" install | ||
|
||
local bin_dir=${tmp_root}${EPREFIX}/usr/bin | ||
local exe | ||
for exe in pylupdate5 pyrcc5 pyuic5; do | ||
python_doexe "${bin_dir}/${exe}" | ||
rm "${bin_dir}/${exe}" || die | ||
done | ||
|
||
local uic_dir=${tmp_root}$(python_get_sitedir)/${PN}/uic | ||
if python_is_python3; then | ||
rm -r "${uic_dir}"/port_v2 || die | ||
else | ||
rm -r "${uic_dir}"/port_v3 || die | ||
fi | ||
|
||
multibuild_merge_root "${tmp_root}" "${D}" | ||
python_optimize | ||
} | ||
python_foreach_impl run_in_build_dir installation | ||
|
||
einstalldocs | ||
|
||
if use examples; then | ||
insinto /usr/share/doc/${PF} | ||
doins -r examples | ||
fi | ||
} |