summaryrefslogtreecommitdiff
path: root/qt5/Pkgfile
blob: 3ec3e968f587533413504fb22a71260d9572259d (plain)
    1 # Description: Qt Free Edition, version 5.x.
    2 # URL: http://www.qt.io/
    3 # Maintainer: Danny Rawlins, crux at romster dot me
    4 # Depends on: dbus gdk-pixbuf gst-plugins-base libepoxy libmng libxkbcommon xorg-libxcomposite xorg-libxcursor xorg-libxi xorg-libxinerama xorg-xcb-util-image xorg-xcb-util-keysyms xorg-xcb-util-wm
    5 # Optional: icu
    6 
    7 name=qt5
    8 version=5.15.0
    9 release=1
   10 source=(https://download.qt.io/official_releases/qt/${version::4}/$version/single/qt-everywhere-src-$version.tar.xz
   11 	qt5-logo.png
   12 	qt5-base-QTBUG-82910.patch
   13 	qtbug-74252.patch
   14 	qtbug-78966.patch)
   15 
   16 build() {
   17 	cd qt-everywhere-src-$version
   18 
   19 	patch -d qtbase -p1 -i $SRC/qt5-base-QTBUG-82910.patch # https://codereview.qt-project.org/c/qt/qtbase/+/299182
   20 	patch -d qtbase -p1 -i $SRC/qtbug-74252.patch # Fix displaying custom icons
   21 	patch -d qtbase -p1 -i $SRC/qtbug-78966.patch # Fix QToolButton menus on multi-screen systems
   22 
   23 	export PYTHON='/usr/bin/python3'
   24 	mkdir $SRC/bin
   25 	ln -s /usr/bin/python3 $SRC/bin/python
   26 	export PATH="$SRC/bin:$PATH"
   27 
   28 	# Respect system CXX
   29 	[ "$CXX" ] || CXX=g++
   30 	sed -e "/^QMAKE_CXX\s/s|=.*|= $CXX|" \
   31 		-i qtbase/mkspecs/common/g++-base.conf
   32 
   33 	# Remove obsolete xorg path
   34 	sed -e 's|X11R6/||g' -i qtbase/mkspecs/*/*.conf
   35 
   36 	# Respect system CXXFLAGS
   37 	sed -e "s|^\(QMAKE_CFLAGS_RELEASE.*\)|\1 ${CXXFLAGS}|" \
   38 		-i qtbase/mkspecs/common/gcc-base.conf
   39 
   40 	# Respect system LDFLAGS
   41 	sed -e "s|^\(QMAKE_LFLAGS_RELEASE.*\)|\1 ${LDFLAGS}|" \
   42 		-i qtbase/mkspecs/common/g++-unix.conf
   43 
   44 	export QTDIR="$PWD"
   45 	export LD_LIBRARY_PATH="$QTDIR/qtbase/lib:$QTDIR/qttools/lib:$LD_LIBRARY_PATH"
   46 	export QT_PLUGIN_PATH="$QTDIR/qtbase/plugins"
   47 
   48 	prt-get isinst ccache && PKGMK_QT5+=' -ccache' && PATH="$(echo ${PATH} | awk -v RS=: -v ORS=: '/ccache/ {next} {print}' | sed 's/:*$//')"
   49 
   50 	./configure $PKGMK_QT5 \
   51 		-prefix /usr/ \
   52 		-archdatadir /usr/lib/qt5 \
   53 		-bindir /usr/lib/qt5/bin \
   54 		-plugindir /usr/lib/qt5/plugins \
   55 		-importdir /usr/lib/qt5/imports \
   56 		-datadir /usr/share/qt5 \
   57 		-docdir /usr/share/doc/qt5 \
   58 		-translationdir /usr/share/qt5/translations \
   59 		-examplesdir /usr/share/doc/qt5/examples \
   60 		-headerdir /usr/include/qt5 \
   61 		-libdir /usr/lib \
   62 		-sysconfdir /usr/etc/xdg \
   63 		-confirm-license \
   64 		-dbus-linked \
   65 		-nomake examples \
   66 		-no-pch \
   67 		-no-rpath \
   68 		-no-separate-debug-info \
   69 		-no-strip \
   70 		-opengl desktop \
   71 		-opensource \
   72 		-openssl-linked \
   73 		-optimized-qmake \
   74 		-reduce-relocations \
   75 		-release \
   76 		-shared \
   77 		-plugin-sql-sqlite \
   78 		-system-sqlite \
   79 		-system-harfbuzz \
   80 		-skip qtwebengine \
   81 		-silent
   82 
   83 	make
   84 	make -j1 INSTALL_ROOT=$PKG install
   85 
   86 	sed 's|/usr/bin/python|/usr/bin/python3|g' \
   87 		-i $PKG/usr/lib/qt5/mkspecs/features/uikit/devices.py
   88 	2to3-3.7 --write --nobackups $PKG/usr/lib/qt5/mkspecs/features/uikit/devices.py
   89     
   90 	# Fix paths
   91 	find $PKG/usr/lib/ -type f -name '*.prl' \
   92 		-exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d;s/\(QMAKE_PRL_LIBS =\).*/\1/' {} \;
   93         
   94 	sed -e "s|$PWD/qtbase|/usr/lib/qt5|g" \
   95 		-i $PKG/usr/lib/qt5/mkspecs/modules/qt_lib_bootstrap_private.pri
   96 
   97 	rm -r $PKG/usr/share/doc
   98 
   99 	# Install useful symlinks
  100 	install -d $PKG/usr/bin
  101 	for file in $PKG/usr/lib/qt5/bin/*; do
  102 		ln -s ../lib/qt5/bin/$(basename $file) $PKG/usr/bin/$(basename $file)-qt5
  103 		ln -s ../lib/qt5/bin/$(basename $file) $PKG/usr/bin/$(basename $file)
  104 	done
  105 
  106 	# Add menu entries for all those hidden but great Qt applications:
  107 	# # Qt5 logo:
  108 	install -d $PKG/usr/share/icons/hicolor/48x48/apps
  109 	# requires imagemagick
  110 	#convert qtdoc/doc/src/images/qt-logo.png  -resize 48x48 $PKG/usr/share/icons/hicolor/48x48/apps/qt5-logo.png
  111 	install -m 0644 $SRC/qt5-logo.png $PKG/usr/share/icons/hicolor/48x48/apps/qt5-logo.png
  112 
  113 	# Assistant icons
  114 	install -m 0644 -D qttools/src/assistant/assistant/images/assistant.png \
  115 		$PKG/usr/share/icons/hicolor/32x32/apps/qt5-assistant.png
  116 	install -m 0644 -D qttools/src/assistant/assistant/images/assistant-128.png \
  117 		$PKG/usr/share/icons/hicolor/128x128/apps/qt5-assistant.png
  118 
  119 	# Designer icon
  120 	install -m 0644 -D qttools/src/designer/src/designer/images/designer.png \
  121 		$PKG/usr/share/icons/hicolor/128x128/apps/qt5-designer.png
  122 
  123 	# QDbusViewer icons
  124 	install -m 0644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer.png \
  125 		$PKG/usr/share/icons/hicolor/32x32/apps/qt5-qdbusviewer.png
  126 	install -m 0644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
  127 		$PKG/usr/share/icons/hicolor/128x128/apps/qt5-qdbusviewer.png
  128 
  129 	# Linguist icons
  130 	for icon in qttools/src/linguist/linguist/images/icons/linguist-*-32.png ; do
  131 		size=$(echo $(basename ${icon}) | cut -d- -f2)
  132 		install -m 0644 -D ${icon} $PKG/usr/share/icons/hicolor/${size}x${size}/apps/qt5-linguist.png
  133 	done
  134 
  135 	# And the .desktop files too:
  136 	install -d $PKG/usr/share/applications
  137 	cat <<EOF > $PKG/usr/share/applications/qt5-designer.desktop
  138 [Desktop Entry]
  139 Name=Qt5 Designer
  140 GenericName=Interface Designer
  141 Comment=Design GUIs for Qt5 applications
  142 Exec=designer-qt5 -qt=5
  143 Icon=qt5-designer
  144 MimeType=application/x-designer;
  145 Terminal=false
  146 Encoding=UTF-8
  147 Type=Application
  148 Categories=Qt;Development;
  149 EOF
  150 	cat <<EOF > $PKG/usr/share/applications/qt5-assistant.desktop
  151 [Desktop Entry]
  152 Name=Qt5 Assistant
  153 Comment=Shows Qt5 documentation and examples
  154 Exec=assistant-qt5 -qt=5
  155 Icon=qt5-assistant
  156 Terminal=false
  157 Encoding=UTF-8
  158 Type=Application
  159 Categories=Qt;Development;Documentation;
  160 EOF
  161 	cat <<EOF > $PKG/usr/share/applications/qt5-linguist.desktop
  162 [Desktop Entry]
  163 Name=Qt5 Linguist
  164 Comment=Add translations to Qt5 applications
  165 Exec=linguist-qt5 -qt=5
  166 Icon=qt5-linguist
  167 MimeType=text/vnd.trolltech.linguist;application/x-linguist;
  168 Terminal=false
  169 Encoding=UTF-8
  170 Type=Application
  171 Categories=Qt;Development;
  172 EOF
  173 	cat <<EOF > $PKG/usr/share/applications/qt5-qdbusviewer.desktop
  174 [Desktop Entry]
  175 Name=Qt5 QDbusViewer
  176 GenericName=Qt5 D-Bus Debugger
  177 Comment=Debug D-Bus applications
  178 Exec=qdbusviewer-qt5
  179 Icon=qt5-qdbusviewer
  180 Terminal=false
  181 Type=Application
  182 Categories=Qt;Development;Debugger;
  183 EOF
  184 }

Generated by cgit