commit: 4944890e6cf0c6cb506a355028c115b7b167f6db Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> AuthorDate: Thu Jun 18 21:48:13 2020 +0000 Commit: Jimi Huotari <chiitoo <AT> gentoo <DOT> org> CommitDate: Wed Nov 17 06:08:08 2021 +0000 URL: https://gitweb.gentoo.org/proj/qt.git/commit/?id=4944890e
dev-qt/qtbase: Add initial Qt6 dev branch ebuild Package-Manager: Portage-2.3.101, Repoman-2.3.22 Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> Signed-off-by: Jimi Huotari <chiitoo <AT> gentoo.org> dev-qt/qtbase/metadata.xml | 39 +++++++ dev-qt/qtbase/qtbase-6.9999.ebuild | 224 +++++++++++++++++++++++++++++++++++++ 2 files changed, 263 insertions(+) diff --git a/dev-qt/qtbase/metadata.xml b/dev-qt/qtbase/metadata.xml new file mode 100644 index 00000000..b33a37e9 --- /dev/null +++ b/dev-qt/qtbase/metadata.xml @@ -0,0 +1,39 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>[email protected]</email> + <name>Gentoo Qt Project</name> + </maintainer> + <use> + <flag name="concurrent">Build Qt6Concurrent module</flag> + <flag name="dbus">Build Qt6DBus module</flag> + <flag name="egl">Enable EGL integration</flag> + <flag name="eglfs">Build the EGL Full Screen/Single Surface platform plugin</flag> + <flag name="evdev">Enable support for input devices via evdev</flag> + <flag name="gssapi">Enable support for GSSAPI (<pkg>virtual/krb5</pkg>)</flag> + <flag name="gtk">Build the GTK platform theme plugin</flag> + <flag name="gui">Build Qt6Gui module</flag> + <flag name="ico">Enable ico image support</flag> + <flag name="libinput">Enable support for input devices via <pkg>dev-libs/libinput</pkg></flag> + <flag name="libproxy">Use <pkg>net-libs/libproxy</pkg> for automatic HTTP/SOCKS proxy configuration</flag> + <flag name="network">Build Qt6Network module</flag> + <flag name="sql">Build Qt6Sql module</flag> + <flag name="systemd">Enable native journald logging support</flag> + <flag name="tslib">Enable support for touchscreen devices via <pkg>x11-libs/tslib</pkg></flag> + <flag name="tuio">Build plugin to receive touch events over the TUIO protocol</flag> + <flag name="vulkan">Enable support for Vulkan</flag> + <flag name="widgets">Build Qt6Widgets module</flag> + <flag name="X">Build the XCB platform plugin and enable X11 integration</flag> + <flag name="xml">Build Qt6Xml module</flag> + </use> + <upstream> + <bugs-to>https://bugreports.qt.io/</bugs-to> + <doc>https://doc.qt.io/</doc> + </upstream> + <slots> + <subslots> + Must only be used by packages that are known to use private parts of the Qt API. + </subslots> + </slots> +</pkgmetadata> diff --git a/dev-qt/qtbase/qtbase-6.9999.ebuild b/dev-qt/qtbase/qtbase-6.9999.ebuild new file mode 100644 index 00000000..c4784145 --- /dev/null +++ b/dev-qt/qtbase/qtbase-6.9999.ebuild @@ -0,0 +1,224 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +if [[ ${PV} == *9999* ]]; then + EGIT_BRANCH="dev" + EGIT_REPO_URI=( "https://code.qt.io/qt/${PN}.git" ) + inherit git-r3 +else + MY_P=everywhere-src-${PV/_/-} + SRC_URI="https://download.qt.io/development_releases/qt/${PV%.*}/${PV/_/-}/submodules/${MY_P}.tar.xz" + KEYWORDS="~amd64" + S=${WORKDIR}/${MY_P} +fi + +inherit cmake + +DESCRIPTION="Cross-platform application development framework" +HOMEPAGE="https://www.qt.io/" + +LICENSE="|| ( GPL-2 GPL-3 LGPL-3 ) FDL-1.3" +SLOT=6/$(ver_cut 1-2) +# Qt Modules +IUSE="+concurrent +dbus +gui +network +sql opengl +widgets +xml" +REQUIRED_USE="opengl? ( gui ) widgets? ( gui )" + +QTGUI_IUSE="accessibility egl eglfs evdev +gif gles2-only +ico +jpeg libinput tslib tuio vulkan +X" +QTNETWORK_IUSE="gssapi libproxy sctp +ssl vnc" +QTSQL_IUSE="freetds mysql oci8 odbc postgres +sqlite" +IUSE+=" ${QTGUI_IUSE} ${QTNETWORK_IUSE} ${QTSQL_IUSE} cups gtk icu systemd +udev" +# QtPrintSupport = QtGui + QtWidgets enabled. +# ibus = xkbcommon + dbus, and xkbcommon needs either libinput or X +# moved vnc logically to QtNetwork as that is upstream condition for it +REQUIRED_USE+=" + $(printf '%s? ( gui ) ' ${QTGUI_IUSE//+/}) + $(printf '%s? ( network ) ' ${QTNETWORK_IUSE//+/}) + $(printf '%s? ( sql ) ' ${QTSQL_IUSE//+/}) + accessibility? ( dbus X ) + cups? ( gui widgets ) + eglfs? ( egl ) + gtk? ( widgets ) + gui? ( || ( eglfs X ) || ( libinput X ) ) + libinput? ( udev ) + sql? ( || ( freetds mysql oci8 odbc postgres sqlite ) ) + X? ( gles2-only? ( egl ) ) +" + +# TODO: +# qtimageformats: mng not done yet, qtimageformats.git upstream commit 9443239c +# qtnetwork: connman, networkmanager +BDEPEND="virtual/pkgconfig" +DEPEND=" + app-arch/zstd:= + dev-libs/double-conversion:= + dev-libs/glib:2 + dev-libs/libpcre2[pcre16,unicode] + >=dev-util/cmake-3.17.0 + dev-util/gtk-update-icon-cache + media-libs/fontconfig + >=media-libs/freetype-2.6.1:2 + >=media-libs/harfbuzz-1.6.0:= + media-libs/tiff:0 + >=sys-apps/dbus-1.4.20 + sys-libs/zlib:= + virtual/opengl + egl? ( media-libs/mesa[egl] ) + gles2-only? ( media-libs/mesa[gles2] ) + freetds? ( dev-db/freetds ) + gssapi? ( virtual/krb5 ) + gtk? ( + x11-libs/gtk+:3 + x11-libs/libX11 + x11-libs/pango + ) + gui? ( media-libs/libpng:0= ) + icu? ( dev-libs/icu:= ) + !icu? ( virtual/libiconv ) + jpeg? ( virtual/jpeg:0 ) + libinput? ( + dev-libs/libinput:= + >=x11-libs/libxkbcommon-0.5.0 + ) + libproxy? ( net-libs/libproxy ) + mysql? ( dev-db/mysql-connector-c:= ) + oci8? ( dev-db/oracle-instantclient:=[sdk] ) + odbc? ( dev-db/unixODBC ) + postgres? ( dev-db/postgresql:* ) + sctp? ( kernel_linux? ( net-misc/lksctp-tools ) ) + sqlite? ( dev-db/sqlite:3 ) + ssl? ( dev-libs/openssl:0= ) + systemd? ( sys-apps/systemd:= ) + tslib? ( >=x11-libs/tslib-1.21 ) + udev? ( virtual/libudev:= ) + vulkan? ( dev-util/vulkan-headers ) + X? ( + x11-libs/libICE + x11-libs/libSM + x11-libs/libX11 + >=x11-libs/libxcb-1.12:=[xkb] + >=x11-libs/libxkbcommon-0.5.0[X] + x11-libs/xcb-util-image + x11-libs/xcb-util-keysyms + x11-libs/xcb-util-renderutil + x11-libs/xcb-util-wm + ) +" +RDEPEND="${DEPEND} + dev-qt/qtchooser +" + +# @FUNCTION: qt_feature +# @USAGE: <flag> [feature] +# @DESCRIPTION: +# <flag> is the name of a flag in IUSE. +qt_feature() { + [[ $# -ge 1 ]] || die "${FUNCNAME}() requires at least one argument" + echo "-DQT_FEATURE_${2:-$1}=$(usex $1 ON OFF)" +} + +src_prepare() { + cmake_src_prepare + + # TODO: fails without QtGui + sed -e "/androiddeployqt/s/^/#DONT/" -e "/androidtestrunner/s/^/#DONT/" \ + -i src/tools/CMakeLists.txt || die +} + +src_configure() { + QT6_PREFIX=${EPREFIX}/usr + QT6_HEADERDIR=${QT6_PREFIX}/include/qt6 + QT6_LIBDIR=${QT6_PREFIX}/$(get_libdir) + QT6_ARCHDATADIR=${QT6_PREFIX}/$(get_libdir)/qt6 + QT6_BINDIR=${QT6_ARCHDATADIR}/bin + QT6_PLUGINDIR=${QT6_ARCHDATADIR}/plugins + QT6_LIBEXECDIR=${QT6_ARCHDATADIR}/libexec + QT6_IMPORTDIR=${QT6_ARCHDATADIR}/imports + QT6_QMLDIR=${QT6_ARCHDATADIR}/qml + QT6_DATADIR=${QT6_PREFIX}/share/qt6 + QT6_DOCDIR=${QT6_PREFIX}/share/qt6-doc + QT6_TRANSLATIONDIR=${QT6_DATADIR}/translations + QT6_EXAMPLESDIR=${QT6_DATADIR}/examples + QT6_TESTSDIR=${QT6_DATADIR}/tests + QT6_SYSCONFDIR=${EPREFIX}/etc/xdg + + local mycmakeargs=( + -DINSTALL_BINDIR=${QT6_BINDIR} +# -DINSTALL_INCLUDEDIR=${QT6_HEADERDIR} +# TODO: breaks cmake macro: +# CMake Error at cmake/QtBuild.cmake:1997 (file): +# file STRINGS file +# "${WORKDIR}/qtbase-6.9999_build/include/qt6/QtOpenGLWidgets/headers.pri" +# cannot be read. +# Call Stack (most recent call first): +# cmake/QtBuild.cmake:2503 (qt_read_headers_pri) +# src/openglwidgets/CMakeLists.txt:7 (qt_add_module) + -DINSTALL_LIBDIR=${QT6_LIBDIR} + -DINSTALL_ARCHDATADIR=${QT6_ARCHDATADIR} + -DINSTALL_PLUGINSDIR=${QT6_PLUGINDIR} + -DINSTALL_LIBEXECDIR=${QT6_LIBEXECDIR} + -DINSTALL_QMLDIR=${QT6_QMLDIR} + -DINSTALL_DATADIR=${QT6_DATADIR} + -DINSTALL_DOCDIR=${QT6_DOCDIR} + -DINSTALL_TRANSLATIONSDIR=${QT6_TRANSLATIONDIR} + -DINSTALL_SYSCONFDIR=${QT6_SYSCONFDIR} + -DINSTALL_MKSPECSDIR=${QT6_ARCHDATADIR}/mkspecs + -DINSTALL_EXAMPLESDIR=${QT6_EXAMPLESDIR} + -DQT_FEATURE_zstd=ON + $(qt_feature concurrent) + $(qt_feature dbus) + $(qt_feature gui) + $(qt_feature icu) + $(qt_feature network) + $(qt_feature sql) + $(qt_feature systemd journald) + -DQT_FEATURE_testlib=ON # TODO: install QtTest by default? + $(qt_feature udev libudev) + $(qt_feature xml) + ) + use icu || mycmakeargs+=( -DQT_FEATURE_iconv=ON ) + use gui && mycmakeargs+=( + $(qt_feature accessibility accessibility_atspi_bridge) + $(qt_feature egl) + $(qt_feature eglfs eglfs_egldevice) + $(qt_feature eglfs eglfs_gbm) + $(qt_feature evdev) + $(qt_feature evdev mtdev) + $(qt_feature gif) + $(qt_feature jpeg) + $(qt_feature opengl) + $(qt_feature gles2-only opengles2) + $(qt_feature libinput) + $(qt_feature tslib) + $(qt_feature tuio tuiotouch) + $(qt_feature vulkan) + $(qt_feature widgets) + $(qt_feature X xcb) + $(qt_feature X xcb_xlib) + ) + use widgets && mycmakeargs+=( + $(qt_feature cups) + $(qt_feature gtk gtk3) + ) + if use libinput || use X; then + mycmakeargs+=( -DQT_FEATURE_xkbcommon=ON ) + fi + use network && mycmakeargs+=( + $(qt_feature gssapi) + $(qt_feature libproxy) + $(qt_feature sctp) + $(qt_feature ssl openssl) + $(qt_feature vnc) + ) + use sql && mycmakeargs+=( + $(qt_feature freetds sql_tds) + $(qt_feature mysql sql_mysql) + $(qt_feature oci8 sql_oci) + $(qt_feature odbc sql_odbc) + $(qt_feature postgres sql_psql) + $(qt_feature sqlite sql_sqlite) + $(qt_feature sqlite system_sqlite) + ) + cmake_src_configure +}
