diff qt/qtbase/qtbase.sh @ 675:c05fa46c5b62

qt/qtbase: initial import, closes #1544
author David Demelier <markand@malikania.fr>
date Wed, 31 Jul 2019 20:10:00 +0200
parents
children e91fbcb3d1ef
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qt/qtbase/qtbase.sh	Wed Jul 31 20:10:00 2019 +0200
@@ -0,0 +1,298 @@
+#!/bin/sh
+#
+# Copyright (c) 2019 David Demelier <markand@malikania.fr>
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+
+# TODO: add option for PostgreSQL and mariadb.
+# TODO: add optional dependencies for Qt modules (e.g. qt/qtwayland)
+
+PKGNAME=qtbase
+PKGVERSION=5.13.0
+PKGREVISION=1
+PKGLICENSE="GPLv3 LGPLv21"
+PKGSUMMARY="cross platform SDK for developing applications"
+PKGDOWNLOAD="http://download.qt-project.org/official_releases/qt/${PKGVERSION%.*}/$PKGVERSION/submodules/$PKGNAME-everywhere-src-$PKGVERSION.tar.xz"
+PKGDEPENDS="lib/pcre2"
+PKGOPTIONS="CUPS
+            DATABASES
+            DBUS
+            EVDEV
+            FONTCONFIG
+            FREETYPE
+            GLIB
+            GTK
+            GUI
+            HARFBUZZ
+            ICU
+            JPEG
+            KMS
+            LIBINPUT
+            MTDEV
+            OPENGL
+            PNG
+            SSL
+            SYSLOG
+            UDEV
+            X
+            ZLIB"
+
+: ${CC:=clang}
+: ${CXX:=clang++}
+: ${CUPS:=yes}
+: ${DATABASES:=sqlite}  # (list) none, sqlite
+: ${DBUS:=yes}
+: ${EVDEV:=yes}
+: ${FONTCONFIG:=yes}
+: ${FREETYPE:=yes}
+: ${GLIB:=yes}
+: ${GTK:=yes}
+: ${GUI:=yes}           # requires FREETYPE
+: ${HARFBUZZ:=yes}
+: ${ICU:=yes}
+: ${JPEG:=yes}
+: ${KMS:=yes}
+: ${LIBINPUT:=yes}
+: ${MTDEV:=yes}
+: ${OPENGL:=yes}
+: ${PNG:=yes}
+: ${SSL:=yes}
+: ${SYSLOG:=no}
+: ${UDEV:=yes}
+: ${X:=yes}
+: ${ZLIB:=yes}
+
+if [ "$CXX" = "clang++" ]; then
+	platform="linux-clang"
+else
+	platform="linux-g++"
+fi
+
+if [ "$CUPS" = "yes" ]; then
+	PKGDEPENDS="print/cups $PKGDEPENDS"
+	with_cups="-cups"
+else
+	with_cups="-no-cups"
+fi
+
+#
+# It looks like there is no option to disable all SQL drivers to create a
+# "white" list of desired drivers so disable all by default unless it is listed
+# in DATABASES option.
+#
+# First, create a list with unsupported databases in vanilla.
+#
+with_databases="-no-sql-db2
+                -no-sql-ibase
+                -no-sql-oci
+                -no-sql-odbc
+                -no-sql-sqlite2
+                -no-sql-tds"
+
+if echo $DATABASES | grep -q "sqlite"; then
+	PKGDEPENDS="databases/sqlite $PKGDEPENDS"
+	with_databases="-sql-sqlite -system-sqlite $with_databases"
+else
+	with_databases="-no-sql-sqlite $with_databases"
+fi
+
+if [ "$DBUS" = "yes" ]; then
+	PKGDEPENDS="network/dbus $PKGDEPENDS"
+	with_dbus="-dbus-linked"
+else
+	with_dbus="-no-dbus"
+fi
+
+if [ "$EVDEV" = "yes" ]; then
+	with_evdev="-evdev"
+else
+	with_evdev="-no-evdev"
+fi
+
+if [ "$FONTCONFIG" = "yes" ]; then
+	PKGDEPENDS="fonts/fontconfig $PKGDEPENDS"
+	with_fontconfig="-fontconfig"
+else
+	with_fontconfig="-no-fontconfig"
+fi
+
+if [ "$FREETYPE" = "yes" ]; then
+	PKGDEPENDS="fonts/freetype $PKGDEPENDS"
+	with_freetype="-system-freetype"
+else
+	with_freetype="-no-freetype"
+fi
+
+if [ "$GLIB" = "yes" ]; then
+	PKGDEPENDS="lib/glib $PKGDEPENDS"
+	with_glib="-glib"
+else
+	with_glib="-no-glib"
+fi
+
+if [ "$GTK" = "yes" ]; then
+	PKGDEPENDS="graphics/gtk $PKGDEPENDS"
+	with_gtk="-gtk"
+else
+	with_gtk="-no-gtk"
+fi
+
+if [ "$GUI" = "yes" ]; then
+        if [ "$FREETYPE" != "yes" ]; then
+                echo "warning: GUI requires FREETYPE" 1>&2
+        fi
+
+	with_gui="-gui"
+else
+	with_gui="-no-gui"
+fi
+
+if [ "$HARFBUZZ" = "yes" ]; then
+	PKGDEPENDS="fonts/harfbuzz $PKGDEPENDS"
+	with_harfbuzz="-system-harfbuzz"
+else
+	with_harfbuzz="-no-harfbuzz"
+fi
+
+if [ "$ICU" = "yes" ]; then
+	PKGDEPENDS="lib/icu $PKGDEPENDS"
+	with_icu="-icu"
+else
+	with_icu="-no-icu"
+fi
+
+if [ "$KMS" = "yes" ]; then
+	PKGDEPENDS="graphics/libdrm $PKGDEPENDS"
+	with_kms="-kms"
+else
+	with_kms="-no-kms"
+fi
+
+if [ "$LIBINPUT" = "yes" ]; then
+	PKGDEPENDS="lib/libinput $PKGDEPENDS"
+	with_libinput="-libinput"
+else
+	with_libinput="-no-libinput"
+fi
+
+if [ "$MTDEV" = "yes" ]; then
+	PKGDEPENDS="lib/mtdev $PKGDEPENDS"
+	with_mtdev="-mtdev"
+else
+	with_mtdev="-no-mtdev"
+fi
+
+if [ "$JPEG" = "yes" ]; then
+	PKGDEPENDS="lib/libjpeg-turbo $PKGDEPENDS"
+	with_jpeg="-system-libjpeg"
+else
+	with_jpeb="-no-libjpeg"
+fi
+
+if [ "$OPENGL" = "yes" ]; then
+	with_opengl="-opengl"
+else
+	with_opengl="-no-opengl"
+fi
+
+if [ "$PNG" = "yes" ]; then
+	PKGDEPENDS="lib/libpng $PKGDEPENDS"
+	with_png="-system-libpng"
+else
+	with_png="-no-libpng"
+fi
+
+if [ "$SSL" = "yes" ]; then
+	PKGDEPENDS="crypto/libressl $PKGDEPENDS"
+	with_ssl="-ssl -openssl-linked"
+else
+	with_ssl="-no-openssl"
+fi
+
+if [ "$SYSLOG" = "yes" ]; then
+	with_syslog="-syslog"
+else
+	with_syslog="-no-syslog"
+fi
+
+if [ "$UDEV" = "yes" ]; then
+	PKGDEPENDS="core/eudev $PKGDEPENDS"
+	with_udev="-libudev"
+else
+	with_udev="-no-libudev"
+fi
+
+if [ "$X" = "yes" ]; then
+	with_x="-xcb -xcb-xlib -xcb-xinput"
+else
+	with_x="-no-xcb -no-xcb-xlib -no-xcb-xinput"
+fi
+
+if [ "$ZLIB" = "yes" ]; then
+	PKGDEPENDS="compression/zlib $PKGDEPENDS"
+	with_zlib="-system-zlib"
+else
+	with_zlib="-no-zlib"
+fi
+
+build()
+{
+	rm -rf $PKGNAME-everywhere-src-$PKGVERSION
+	tar xvf $PKGNAME-everywhere-src-$PKGVERSION.tar.xz
+	cd $PKGNAME-everywhere-src-$PKGVERSION
+
+	# https://github.com/void-linux/void-packages/tree/master/srcpkgs/qt5/patches
+	patch -p0 < ../patch-libressl.patch
+	patch -p0 < ../patch-musl.patch
+	PKG_CONFIG_PATH=/lib/pkgconfig \
+	./configure \
+		-opensource \
+		-prefix / \
+		-archdatadir /lib/qt \
+		-datadir /share/qt \
+		-docdir /share/doc/qt \
+		-libexecdir /libexec \
+		-confirm-license \
+		-release \
+		-platform $platform \
+		-nomake examples \
+		-nomake tests \
+		-system-pcre \
+		$with_cups \
+		$with_databases \
+		$with_dbus \
+		$with_evdev \
+		$with_fontconfig \
+		$with_freetype \
+		$with_glib \
+		$with_gtk \
+		$with_gui \
+		$with_harfbuzz \
+		$with_icu \
+		$with_kms \
+		$with_libinput \
+		$with_opengl \
+		$with_png \
+		$with_ssl \
+		$with_syslog \
+		$with_udev \
+		$with_x \
+		$with_zlib
+	make
+	make install INSTALL_ROOT=$DESTDIR
+	rm -f $DESTDIR/lib/libQt*.la
+
+	cd ..
+	rm -rf $PKGNAME-everywhere-src-$PKGVERSION
+}