blob: 96cd754591b973dc05213e4b35d13c9ef13ce4b2 (
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 xorg-xcb-util-renderutil
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 }
|