diff options
Diffstat (limited to 'packages/x11-libs/qtbase/qtbase.exlib')
-rw-r--r-- | packages/x11-libs/qtbase/qtbase.exlib | 406 |
1 files changed, 0 insertions, 406 deletions
diff --git a/packages/x11-libs/qtbase/qtbase.exlib b/packages/x11-libs/qtbase/qtbase.exlib deleted file mode 100644 index 780c579..0000000 --- a/packages/x11-libs/qtbase/qtbase.exlib +++ /dev/null @@ -1,406 +0,0 @@ -# Copyright 2008-2010 Bo Ørsted Andresen <zlin@exherbo.org> -# Copyright 2008-2009, 2010 Ingmar Vanhassel -# Copyright 2013-2018 Heiko Becker <heirecka@exherbo.org> -# Distributed under the terms of the GNU General Public License v2 -# Based in part upon 'qt-4.3.4-r1.ebuild' from Gentoo, which is: -# Copyright 1999-2008 Gentoo Foundation - -require qt -require option-renames [ renames=[ 'systemd journald' ] ] - -export_exlib_phases src_prepare src_configure src_compile src_install - -SUMMARY="Qt Cross-platform application framework for desktop and embedded development" -DESCRIPTION="Contains the following modules: -- QtCore: non-graphical classes used by other modules -- QtConcurrent: Classes for writing multi-threaded programs w/o using low-level threading primitives -- QtDBus: Classes for inter-process communication over the D-Bus protocol -- QtGui: Base classes for graphical user interface (GUI) components -- QtNetwork: Classes to make network programming easier and more portable -- QtOpenGL: OpenGL support classes -- QtPrintSupport: Classes to make printing easier and more portable -- QtSql: Classes for database integration using SQL -- QtTest: Classes for unit testing Qt applications and libraries -- QtWidgets: Classes to extend Qt GUI with C++ widgets (belonged to QtGui in 4.x) -- QtXml: C++ implementations of SAX and DOM" - -MYOPTIONS_PARTS="doc examples" -SQL_BACKENDS="mysql postgresql sqlite" # firebird odbc -MYOPTIONS="cups debug glib gui journald kms opengles sql - ${MYOPTIONS_PARTS} - ( ${SQL_BACKENDS} ) [[ requires = sql ]] - sql? ( - ( ${SQL_BACKENDS} ) [[ number-selected = at-least-one ]] - ) - cups [[ requires = gui ]] - examples [[ requires = gui ]] - glib [[ description = [ Add support for the glib eventloop ] ]] - gtk [[ description = [ Enable GTK+ style support, this will install a Qt4 style that renders using GTK+, to blend in with a GTK+ desktop ] - requires = [ glib gui ] ]] - gui [[ description = [ Build GUI related modules ] - presumed = true ]] - journald [[ description = [ Support sending logging output directly to systemd-journald ] ]] - kms [[ description = [ KMS platform plugin to run a single-window per screen without X11 ] - requires = opengles ]] - libinput [[ description = [ Support input devices via libinput ] - requires = gui ]] - libproxy [[ description = [ Use libproxy for system proxy settings ] ]] - opengles [[ description = [ Use OpenGL ES2 rather than standard desktop OpenGL ] - requires = gui ]] - sql [[ description = [ Build the QtSQL module ] ]] - - ( platform: amd64 x86 ) - ( providers: ijg-jpeg jpeg-turbo ) [[ number-selected = exactly-one ]] - ( providers: libressl openssl ) [[ number-selected = exactly-one ]] -" - -if ever at_least 5.10.0-beta4 ; then - MYOPTIONS+=" - vulkan [[ description = [ Support for rendering via the Vulkan graphics API ] - requires = gui ]] - " -fi - -MYOPTIONS+=" - amd64_cpu_features: sse3 ssse3 sse4.1 sse4.2 avx avx2 avx512 f16c - arm_cpu_features: neon - x86_cpu_features: sse2 sse3 ssse3 sse4.1 sse4.2 avx avx2 avx512 f16c -" - -DEPENDENCIES=" - build: - virtual/pkg-config - doc? ( - x11-libs/qttools:${SLOT}[>=5.8.0-rc] [[ - note = [ qtattributionsscanner (5.8.0-rc), qhelpgenerator ] - ]] - ) - build+run: - app-admin/eclectic[>=2.0.18] [[ note = [ Split ld-*.path, @TARGET@ substitution ] ]] - dev-libs/double-conversion - dev-libs/icu:= - dev-libs/pcre2[>=10.20] - sys-apps/dbus[>=1.2.0] [[ note = [ besides QtDBUs also needed for accessibility and xcb ] ]] - sys-libs/zlib[>=1.0.8] - cups? ( net-print/cups[>=1.4] ) - glib? ( dev-libs/glib:2 ) - gtk? ( - dev-libs/atk - x11-libs/gtk+:3[>=3.6] - x11-libs/pango - ) - gui? ( - dev-libs/at-spi2-core - media-libs/fontconfig - media-libs/freetype:2[>=2.2] - media-libs/libpng:= - x11-dri/mesa - x11-libs/harfbuzz[>=0.9.42] - x11-libs/libICE - x11-libs/libSM - x11-libs/libX11 - x11-libs/libXext - x11-libs/libXi - x11-libs/libxcb[>=1.10] - x11-libs/libxkbcommon[>=0.4.1][X] - x11-libs/mtdev - x11-utils/xcb-util-image - x11-utils/xcb-util-keysyms - x11-utils/xcb-util-renderutil - x11-utils/xcb-util-wm - providers:ijg-jpeg? ( media-libs/jpeg:= ) - providers:jpeg-turbo? ( media-libs/libjpeg-turbo ) - ) - journald? ( sys-apps/systemd ) [[ note = [ wanted for journald logging ] ]] - kms? ( x11-dri/libdrm ) - libinput? ( sys-libs/libinput ) - libproxy? ( net-libs/libproxy ) - mysql? ( virtual/mysql ) - postgresql? ( dev-db/postgresql ) - providers:libressl? ( dev-libs/libressl:= ) - providers:openssl? ( dev-libs/openssl ) - sqlite? ( dev-db/sqlite:3 ) -" - -if ever at_least 5.10.0-beta4 ; then - DEPENDENCIES+=" - build+run: - gui? ( x11-libs/libXrender[>=0.6] ) - vulkan? ( sys-libs/vulkan ) - " -fi - -# Packages that need QtSQL should depend on x11-libs/qtbase:5[sql] -# option='sql' needs at least one SQL plugin, any-of mysql, postgresql, sqlite, (firebird, odbc) - -# Tests need a running X server and network access (last checked: 5.1.1) -RESTRICT="test" - -qconf5() { - local myconf=() host=$(exhost --target) - - # paths - myconf+=( - -platform $(qt_mkspecs_dir) - -prefix /usr/${host} - -bindir /usr/${host}/lib/qt5/bin - -docdir /usr/share/doc/qt-${PVR} - -headerdir /usr/${host}/include/qt5 - -libdir /usr/${host}/lib - -archdatadir /usr/${host}/lib/qt5 - -plugindir /usr/${host}/lib/qt5/plugins - -libexecdir /usr/${host}/lib/qt5/libexec - -datadir /usr/share/qt5 - -qmldir /usr/${host}/lib/qt5/qml - -translationdir /usr/share/qt5/translations - -sysconfdir /etc/qt5 - -examplesdir /usr/share/qt5/examples - -importdir /usr/${host}/lib/qt5/imports - -testsdir /usr/share/qt5/tests - ) - - edo "${ECONF_SOURCE:-.}"/configure "${myconf[@]}" "$@" -} - -qtbase_src_prepare() { - default - - # Don't prestrip. - edo sed -e "/^CONFIG +=/s:$: nostrip:" -i qmake/qmake.pro - - # With -gcc and -g++ Qt fails to recognize gcc's version, which leads to - # build failures with qtwebengine. It's safe to use -gcc and -g++ instead - # of -cc -and -cxx here, because we only modifiy gcc mkspecs files. - edo sed -e "s:gcc:$(exhost --target)-gcc:" \ - -e "s:g++:$(exhost --target)-g++:" \ - -i "${WORK}"/mkspecs/common/g++-base.conf - - edo sed -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CPPFLAGS} ${CFLAGS} ${ASFLAGS}:" \ - -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CPPFLAGS} ${CXXFLAGS} ${ASFLAGS}:" \ - -i "${WORK}"/mkspecs/common/gcc-base.conf - - edo sed -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=${LDFLAGS}:" \ - -i "${WORK}"/mkspecs/common/g++-unix.conf - - # Workaround to allow other projects to find Qt's private headers via CMake - # https://bugreports.qt-project.org/browse/QTBUG-37417 - edo sed -e "/CMAKE_NO_PRIVATE_INCLUDES = true/d" \ - -i mkspecs/features/create_cmake.prf - - # Fix the names of some unprefixed executables - edo sed -e "s:\(PKG_CONFIG.*=.\)\(pkg-config\):\1${PKG_CONFIG}:" \ - -i mkspecs/features/qt_functions.prf - - edo sed -e "s:^\(QMAKE_AR.*=.\)\(ar.*\):\1$(exhost --tool-prefix)\2:" \ - -i mkspecs/common/linux.conf - - # Fix a non-fatal "sh: readelf: command not found" during src_compile - edo sed -e "s:\(readelf\).*-l.*/bin/ls:$(exhost --tool-prefix)\1 -l /usr/$(exhost --target)/bin/ls:" \ - -i src/corelib/global/global.pri - - # Work around https://bugreports.qt.io/browse/QTBUG-47240 which prevents - # knewstuff to build successfully if attica:0 and attica:5 are installed - # at the same time. - edo sed -e "/\!isEmpty(QMAKE_INCDIR_OPENGL)/d" \ - -i src/gui/gui.pro -} - -qtbase_src_configure() { - local myconf=( - -confirm-license - -opensource - -release - -verbose - - -accessibility - -dbus-linked - $(option debug && echo "-debug") - -icu - -no-ccache - -no-eglfs # EGL Full Screen/Single Surface, probably only useful on embedded devices - -no-directfb - -no-imf - -no-lgmon # Both are only useful on QNX - -no-linuxfb - -no-mirclient # No need for stuff which is only used by Canonical - -no-optimize-size - -no-rpath - -no-separate-debug-info - -no-tslib # Touchscreen access library - unwritten - -no-use-gold-linker # let eclectic ld choose this - -openssl-linked - -pch - -pkg-config - $(if [[ $(exhost --target) =~ (i686-*|x86_64-*) ]] ; then - echo '-reduce-relocations' - fi) - -syslog - -system-doubleconversion - -system-pcre - -system-proxies - -system-xcb - -system-xkbcommon-x11 - -system-zlib - $(qt_enable cups) - $(qt_enable glib) - $(qt_enable gtk) - $(qt_enable gui) - $(option gui && echo '-system-freetype') - $(option gui && echo '-system-harfbuzz' || echo -no-harfbuzz) - $(option gui && echo '-system-libjpeg') - $(option gui && echo '-system-libpng') - $(qt_enable journald) - $(qt_enable kms) - $(qt_enable libinput) - $(qt_enable libproxy) - $(qt_enable vulkan) - ) - - # Avoid auto detection of CPU features: - # sse2, sse3, ssse3, sse4.1, sse4.2, avx, avx2, avx512 neon - # Always enable sse2 on amd64 - # FIXME: needs to be handled on cross (heirecka) - if option !platform:amd64 && option !x86_cpu_features:sse2 ; then - myconf+=( -no-sse2 ) - fi - for feature in sse3 ssse3 sse4.1 sse4.2 avx avx2 avx512 ; do - if option !amd64_cpu_features:${feature} && option !x86_cpu_features:${feature} ; then - myconf+=( -no-${feature} ) - fi - done - - # X - local o X_options="fontconfig sm xkb" - for o in ${X_options}; do - myconf+=( $(qt_enable gui ${o}) ) - done - - # Other GUI options - local g GUI_options="egl evdev gbm mtdev widgets xcb xcb-xlib xinput2 xkbcommon-evdev" - for g in ${GUI_options}; do - myconf+=( $(qt_enable gui ${g}) ) - done - - if option gui ; then - myconf+=( $(option opengles && echo -opengl es2 || echo -opengl desktop) ) - else - myconf+=( -no-opengl ) - fi - - myconf+=( - -no-sql-db2 # IBM DB2 (version 7.1 and above) - -no-sql-ibase # Borland InterBase - -no-sql-oci # Open Database Connectivity (ODBC) (e.g. MS SQL Server) - -no-sql-odbc # Oracle Call Interface Driver - -no-sql-sqlite2 # SQLite version 2 - -no-sql-tds # Sybase Adaptive Server - $(qt_enable mysql sql-mysql plugin "") - $(option mysql && echo "-I/usr/$(exhost --target)/include/mysql -L/usr/$(exhost --target)/lib/mysql/") - $(qt_enable postgresql sql-psql plugin "") - $(option postgresql && echo "-I/usr/$(exhost --target)/include/postgresql/server/") - $(qt_enable sqlite sql-sqlite plugin "" -system-sqlite) - ) - - # optional parts - myconf+=( - -make libs - -make tools - $(qt_build examples) - $(expecting_tests && echo "-make tests" || echo "-nomake tests") - ) - - # Set {C,CXX,LD}FLAGS. - # Do not link with -rpath (Gentoo bug #75181). - edo sed -e "s:QMAKE_CFLAGS_RELEASE.*=.*:QMAKE_CFLAGS_RELEASE=${CFLAGS}:" \ - -e "s:QMAKE_CXXFLAGS_RELEASE.*=.*:QMAKE_CXXFLAGS_RELEASE=${CXXFLAGS}:" \ - -e "s:QMAKE_LFLAGS_RELEASE.*=.*:QMAKE_LFLAGS_RELEASE=${LDFLAGS}:" \ - -e "/CONFIG/s:$: nostrip:" \ - -e "s:QMAKE_RPATH.*=.*:QMAKE_RPATH=:" \ - -e "s:X11R6/::" \ - -i "${WORK}"/mkspecs/$(qt_mkspecs_dir)/qmake.conf - - # use gcc for linking - unset LD - - qconf5 "${myconf[@]}" - - edo sed -e "s:^CXXFLAGS.*=:CXXFLAGS = ${CXXFLAGS} $(EXTRA_CXXFLAGS) $(CONFIG_CXXFLAGS) $(CPPFLAGS):" \ - -e "s:^LFLAGS.*=:LFLAGS = ${LDFLAGS} $(EXTRA_LFLAGS) $(CONFIG_LFLAGS):" \ - -i "${WORK}"/qmake/Makefile -} - -qtbase_src_compile() { - default - - if option doc; then - # qt expects qhelpgenerator from qttools in workdir/bin, so symlink it to there - edo ln -s /usr/$(exhost --target)/lib/qt5/bin/qhelpgenerator \ - "${WORK}"/bin/qhelpgenerator - # html_docs target builds html docs, qch_docs QCH files (assistant), docs both - option doc && emake docs - fi -} - -qtbase_src_install() { - default - local host=$(exhost --target) -# PATH="${IMAGE}/usr/${host}/lib/qt5:${PATH}" QTDIR="${IMAGE}/usr/${host}" emake INSTALL_ROOT="${IMAGE}" install - - - # remove build dir from libraries - edo sed -i -e "s:${WORK}/lib:/usr/${host}/lib/qt5:g" "${IMAGE}"/usr/${host}/lib/{*.la,*.prl,pkgconfig/*.pc} - - hereenvd 44qt5 <<EOF -LDPATH=/usr/@TARGET@/lib/qt5 -QT_PLUGIN_PATH=/usr/host/lib/qt5/plugins -EOF - - if option examples ; then - # The examples might add some empty dirs. Since the examples are additional documentation, - # there shouldn't be any empty dirs we might want to keep, so we remove them all in - # one go. - edo find "${IMAGE}"/usr/share/qt5/examples -type d -empty -delete - fi - - # install documentation - if option doc ; then - local modules - modules=( qtcore qtconcurrent qtdbus qtnetwork qttestlib qtxml ) - option gui && modules+=( qtgui qtopengl qtprintsupport qtwidgets ) - option sql && modules+=( qtsql ) - - # QCH-Files e.g. for Qt Assistant... - for i in ${modules[@]} ; do - dodoc "${WORK}"/doc/${i}.qch - done - - # ... and HTML documentation - docinto html - edo pushd "${WORK}"/doc - for i in ${modules[@]} ; do - dodoc -r ${i} - done - edo popd - fi - - # remove references to build dir - edo sed -i -e "/^QMAKE_PRL_BUILD_DIR/d" "${IMAGE}"/usr/${host}/lib/libQt5*.prl - - # install symlinks for some binaries to /usr/bin - local binaries - edo mkdir "${IMAGE}"/usr/${host}/bin - binaries=( moc qmake rcc $(option gui && echo "uic") ) - - for i in ${binaries[@]} ; do - [[ -e "${IMAGE}"/usr/${host}/lib/qt5/bin/${i} ]] || die "/usr/${host}/lib/qt5/bin/${i} does not exist in ${IMAGE}" - dosym /usr/${host}/lib/qt5/bin/${i} /usr/${host}/bin/${i}-qt5 - done - - # disable debug output from applications by default - insinto /etc/xdg/QtProject - hereins qtlogging.ini <<EOF -[Rules] -*.debug=false -EOF -} - |