source: x/lib/qt5.xml@ a2e1b33

qt5new
Last change on this file since a2e1b33 was a2e1b33, checked in by Pierre Labastie <pierre.labastie@…>, 17 months ago

Tidy up qt5 modular build (WIP)

  • Property mode set to 100644
File size: 53.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../../general.ent">
5 %general-entities;
6
7
8 <!ENTITY qt5-qttools-md5 "6b1918dc24e0a56c9fd48d69e78b13fa">
9 <!ENTITY qt5-qtsvg-md5 "5fc7f98d8ba2078446c538a461566d4b">
10 <!ENTITY qt5-qtx11extras-md5 "3646de5ffd3cf29c7a3b266d3a9b7a02">
11 <!ENTITY qt5-qtwayland-md5 "decc31455e124036dce9644b5d8bd754">
12 <!ENTITY qt5-qtdeclarative-md5 "7a811f6ee3b05320d5ae6fffbadc8136">
13 <!ENTITY qt5-qtquickcontrols2-md5 "5e4b1b8145a738a36d6f14d2d6cb32ec">
14 <!ENTITY qt5-qtgraphicaleffects-md5 "0f528e3c1bf0e81befb7c1037c2200de">
15 <!ENTITY qt5-qtxmlpatterns-md5 "438c2f84b44ee681e13e2ebe13360338">
16 <!ENTITY qt5-download-http "&qt5-url;/">
17 <!ENTITY qt5-download-ftp " ">
18 <!ENTITY qt5-md5sum "See below">
19 <!ENTITY qt5-size "11 MB for basic modules, 59 MB for qtwebengine,">
20 <!ENTITY qt5-buildsize "930 MB (23 MB installed) for basic modules">
21 <!ENTITY qt5-time "Using parallelism=4: 3.4 SBU for basic modules">
22]>
23
24<sect1 id="qt5" xreflabel="Qt-&qt5-version;">
25 <?dbhtml filename="qt5.html" ?>
26
27
28 <title>Qt-&qt5-version; Modules</title>
29
30 <indexterm zone="qt5">
31 <primary sortas="a-Qt">Qt Modules</primary>
32 </indexterm>
33
34 <para>
35 After the <xref linkend="qtbase"/> has been installed, various modules
36 can be added to provide more functionalities. They are divided in several
37 groups, each of which depends on the precedent:
38 </para>
39
40 <itemizedlist spacing="compact">
41 <listitem>
42 <para>
43 <xref linkend="qt-basic"/> are used in almost all
44 <application>Qt5</application> based applications, and
45 must be built first.
46 </para>
47 </listitem>
48 <listitem>
49 <para>
50 <xref linkend="qt-kde"/> are needed for
51 <xref linkend="kf5-frameworks"/> and <xref linkend="plasma5-build"/>.
52 </para>
53 </listitem>
54 <listitem>
55 <para>
56 <xref linkend="qtwebengine"/> is a huge module that integrates
57 <application>chromium</application>'s web capabilities into
58 <application>Qt5</application>
59 </para>
60 </listitem>
61 <listitem>
62 <para>
63 <xref linkend="qt-miscellaneous"/> are not needed for building
64 packages in the book, but can be built for a complete installation
65 of <application>Qt5</application>
66 </para>
67 </listitem>
68 </itemizedlist>
69
70 &lfs113_checked;
71
72 <bridgehead renderas="sect3">Package Information</bridgehead>
73 <itemizedlist spacing="compact">
74 <listitem>
75 <para>
76 Download (HTTP): <ulink url="&qt5-download-http;"/>
77 </para>
78 </listitem>
79 <listitem>
80 <para>
81 Download (FTP): <ulink url="&qt5-download-ftp;"/>
82 </para>
83 </listitem>
84 <listitem>
85 <para>
86 Download MD5 sum: &qt5-md5sum;
87 </para>
88 </listitem>
89 <listitem>
90 <para>
91 Download size: &qt5-size;
92 </para>
93 </listitem>
94 <listitem>
95 <para>
96 Estimated disk space required: &qt5-buildsize;
97 </para>
98 </listitem>
99 <listitem>
100 <para>
101 Estimated build time: &qt5-time;
102 </para>
103 </listitem>
104 </itemizedlist>
105
106 <bridgehead renderas="sect3">Additional Downloads</bridgehead>
107 <itemizedlist spacing="compact">
108 <listitem>
109 <para>
110 Now that <application>Qt5</application> updates are restricted to
111 commercial customers, upstream patches for the various modules are
112 being curated at kde.
113 Patches for the modules required by packages in BLFS have been
114 aggregated for the non-modular Qt5 build we use.
115 </para>
116 <para>
117 Required patch:
118 <ulink url="&patch-root;/qt-everywhere-opensource-src-&qt5-version;-kf5-1.patch"/>
119 </para>
120 <para>
121 Details of the kde curation can be found at
122 <ulink url="https://dot.kde.org/2021/04/06/announcing-kdes-qt-5-patch-collection"/>
123 and <ulink url="https://community.kde.org/Qt5PatchCollection"/>.
124 </para>
125 </listitem>
126 </itemizedlist>
127
128<!--
129 <bridgehead renderas="sect3">Qt5 Dependencies</bridgehead>
130
131 <bridgehead renderas="sect4">Required</bridgehead>
132 <para role="required">
133 <xref linkend="xorg7-lib"/>
134 </para>
135
136 <bridgehead renderas="sect4">Recommended</bridgehead>
137 <para role="recommended">
138 <xref linkend="alsa-lib"/>,
139 <xref linkend="make-ca"/>,
140 <xref linkend="cups"/>,
141 <xref linkend="glib2"/>,
142 <xref linkend="gst10-plugins-base"/> (QtMultimedia backend),
143 <xref linkend="harfbuzz"/>,
144 <xref linkend="icu"/>,
145 <xref linkend="jasper"/>,
146 <xref linkend="libjpeg"/>,
147 <xref linkend="libmng"/>,
148 <xref linkend="libpng"/>,
149 <xref linkend="libtiff"/>,
150 <xref linkend="libwebp"/>,
151 <xref linkend="libxkbcommon"/>,
152 <xref linkend="mesa"/>,
153 <xref linkend="mitkrb"/>,
154 <xref linkend="mtdev"/>,
155 <xref linkend="pcre2"/>,
156 <xref linkend="sqlite"/>,
157 <xref linkend="wayland"/> (<application>Mesa</application>
158 must be built with <application>Wayland</application> EGL
159 backend),
160 <xref linkend="xcb-util-image"/>,
161 <xref linkend="xcb-util-keysyms"/>,
162 <xref linkend="xcb-util-renderutil"/>, and
163 <xref linkend="xcb-util-wm"/>
164 </para>
165
166 <bridgehead renderas="sect4">Optional</bridgehead>
167 <para role="optional">
168 <xref role="runtime" linkend="bluez"/> (for sdpscanner, and at runtime for
169 QtConnectivity module),
170 <xref linkend="ibus"/>,
171 <xref linkend="libinput"/>, <!- - needs -libinput switch - ->
172 <xref linkend="mariadb"/>
173 or <ulink url="http://www.mysql.com/">MySQL</ulink>,
174 <xref linkend="pciutils"/> (required for QtWebEngine),
175 <xref linkend="postgresql"/>,
176 <xref linkend="python2"/> (required for QtWebEngine),
177 <xref linkend="pulseaudio"/>,
178 <xref linkend="sdl2"/>,
179 <xref linkend="unixodbc"/>,
180 <ulink url="https://www.assimp.org/">assimp</ulink>,
181 <ulink url="http://www.festvox.org/flite/">Flite</ulink>,
182 <ulink url="http://www.firebirdsql.org/">Firebird</ulink>,
183 <ulink url="http://www.freetds.org/">FreeTDS</ulink>,
184 <ulink url="https://libproxy.github.io/libproxy/">libproxy</ulink>,
185 <ulink url="https://openal.org/">OpenAL</ulink>,
186 <ulink url="https://freebsoft.org/speechd/">speech-dispatcher</ulink>,
187 <ulink url="http:///www.tslib.org/">tslib</ulink>, and
188 <ulink url="https://vulkan.lunarg.com/sdk/home/">Vulkan</ulink>
189 </para>
190
191 <!- - Many of the dependencies in the qmake/configure output do not apply
192 to Linux-based platforms. I've selected the ones that do and put
193 them in as optional dependencies. -renodr - ->
194 <para condition="html" role="usernotes">
195 User Notes: <ulink url="&blfs-wiki;/qt5"/>
196 </para>
197-->
198 <sect2>
199 <title>Creating the module list and utility functions</title>
200
201 <para>
202 Create the list of modules in the proper order as follows:
203 </para>
204
205<screen><userinput>cat &gt; qt5-submodules-&qt5-version;.md5 &lt;&lt; "EOF"
206<literal># Begin basic group
207&qt5-qttools-md5; qttools-everywhere-opensource-src-&qt5-version;.tar.xz
208&qt5-qtsvg-md5; qtsvg-everywhere-opensource-src-&qt5-version;.tar.xz
209&qt5-qtx11extras-md5; qtx11extras-everywhere-opensource-src-&qt5-version;.tar.xz
210&qt5-qtwayland-md5; qtwayland-everywhere-opensource-src-&qt5-version;.tar.xz
211# End basic group
212# Begin KDE group
213&qt5-qtdeclarative-md5; qtdeclarative-everywhere-opensource-src-&qt5-version;.tar.xz
214&qt5-qtquickcontrols2-md5; qtquickcontrols2-everywhere-opensource-src-&qt5-version;.tar.xz
215&qt5-qtgraphicaleffects-md5; qtgraphicaleffects-everywhere-opensource-src-&qt5-version;.tar.xz
216&qt5-qtxmlpatterns-md5; qtxmlpatterns-everywhere-opensource-src-&qt5-version;.tar.xz
217# TODO
218# End KDE group
219# Begin qtwebengine
220c88cbe3158feb20c4feb3d54262feb23 qtwebengine-everywhere-opensource-src-5.15.2.tar.xz
221# End qtwebengine
222# Begin optional group
223# TODO
224# End optional group</literal>
225EOF</userinput></screen>
226
227 <para>
228 Next create two utility functions, one for switching to user
229 <systemitem class="username">root</systemitem>, the other for
230 module building:
231 </para>
232
233<screen><userinput>as_root() {
234 if [ "$EUID" = 0 ]; then $*
235 elif [ -x /usr/bin/sudo ]; then sudo -E $*
236 else su -c \\"$*\\"
237 fi
238}
239
240export -f as_root
241
242module_build() {
243 # MD5_ENTRY contains the md5sum entry from the .md5 file for this module
244 echo $MD5_ENTRY | {
245 read md5 tarball
246
247 # download
248 wget &qt5-download-http;$tarball
249 md5sum -c - &lt;&lt;&lt; "$MD5_ENTRY" || exit 1
250
251 packagedir=${tarball%.tar*}
252
253 tar -xf $tarball
254 pushd $packagedir
255 # OPTIONS contains the qmake options
256 if [ -n "$OPTIONS" ]; then
257 qmake -- $OPTIONS
258 else
259 qmake
260 fi
261 make
262 as_root make install
263 popd
264
265 rm -rf $packagedir
266 }
267 as_root /sbin/ldconfig
268
269 # Remove references to the build directory from installed library
270 # dependency (prl) files:
271 as_root find $QT5DIR/ -name \*.prl \
272 -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;
273}
274
275export -f module_build</userinput></screen>
276 </sect2>
277
278 <sect2 id="qt-basic" xreflabel="Basic Qt5 Modules">
279 <title>Basic Qt5 Modules</title>
280
281 <para role="required">
282 The modules in this group only depend on <xref linkend="qtbase"/>
283 and a properly set <envar>QT5DIR</envar> environment variable.
284 </para>
285
286 <para>
287 Install the basic modules with the following instructions:
288 </para>
289
290<screen><userinput>( # start a subshell
291set -e # exit the subshell in case of error
292
293unset OPTIONS
294sed -n "/Begin basic/,/End basic/p" qt5-submodules-&qt5-version;.md5 | \
295 while read MD5_ENTRY; do
296 if [ -n "${MD5_ENTRY%\#*}" ]; then module_build; fi
297done
298)</userinput></screen>
299
300 <para>
301 Create desktop menu entries pointing to some tools from the
302 Qt system. As the &root; user:
303 </para>
304
305 <screen role="root"><userinput>QT5BINDIR=$QT5DIR/bin
306install -v -dm755 /usr/share/pixmaps/
307
308install -v -Dm644 src/assistant/assistant/images/assistant-128.png \
309 /usr/share/pixmaps/assistant-qt5.png
310
311install -v -Dm644 src/designer/src/designer/images/designer.png \
312 /usr/share/pixmaps/designer-qt5.png
313
314install -v -Dm644 src/linguist/linguist/images/icons/linguist-128-32.png \
315 /usr/share/pixmaps/linguist-qt5.png
316
317install -v -Dm644 src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
318 /usr/share/pixmaps/qdbusviewer-qt5.png
319
320install -dm755 /usr/share/applications
321
322cat &gt; /usr/share/applications/assistant-qt5.desktop &lt;&lt; EOF
323<literal>[Desktop Entry]
324Name=Qt5 Assistant
325Comment=Shows Qt5 documentation and examples
326Exec=$QT5BINDIR/assistant
327Icon=assistant-qt5.png
328Terminal=false
329Encoding=UTF-8
330Type=Application
331Categories=Qt;Development;Documentation;</literal>
332EOF
333
334cat &gt; /usr/share/applications/designer-qt5.desktop &lt;&lt; EOF
335<literal>[Desktop Entry]
336Name=Qt5 Designer
337GenericName=Interface Designer
338Comment=Design GUIs for Qt5 applications
339Exec=$QT5BINDIR/designer
340Icon=designer-qt5.png
341MimeType=application/x-designer;
342Terminal=false
343Encoding=UTF-8
344Type=Application
345Categories=Qt;Development;</literal>
346EOF
347
348cat &gt; /usr/share/applications/linguist-qt5.desktop &lt;&lt; EOF
349<literal>[Desktop Entry]
350Name=Qt5 Linguist
351Comment=Add translations to Qt5 applications
352Exec=$QT5BINDIR/linguist
353Icon=linguist-qt5.png
354MimeType=text/vnd.trolltech.linguist;application/x-linguist;
355Terminal=false
356Encoding=UTF-8
357Type=Application
358Categories=Qt;Development;</literal>
359EOF
360
361cat &gt; /usr/share/applications/qdbusviewer-qt5.desktop &lt;&lt; EOF
362<literal>[Desktop Entry]
363Name=Qt5 QDbusViewer
364GenericName=D-Bus Debugger
365Comment=Debug D-Bus applications
366Exec=$QT5BINDIR/qdbusviewer
367Icon=qdbusviewer-qt5.png
368Terminal=false
369Encoding=UTF-8
370Type=Application
371Categories=Qt;Development;Debugger;</literal>
372EOF</userinput></screen>
373
374 <para>
375 Some packages such as vlc look for certain
376 executables with a -qt5 suffix. Still as the &root; user:
377 </para>
378
379<screen role="root"><userinput>for file in lconvert lrelease lupdate; do
380 ln -sfrvn $QT5DIR/bin/$file /usr/bin/$file-qt5
381done</userinput></screen>
382
383 <sect3 role="content">
384 <title>Contents of basic modules</title>
385
386 <segmentedlist>
387 <segtitle>Installed Programs</segtitle>
388 <segtitle>Installed Libraries</segtitle>
389 <segtitle>Installed Directories</segtitle>
390
391 <seglistitem>
392 <seg>
393 assistant,
394 designer,
395 lconvert,
396 linguist,
397 lprodump,
398 lrelease,
399 lrelease-pro,
400 lupdate,
401 lupdate-pro,
402 pixeltool,
403 qcollectiongenerator,
404 qdbus,
405 qdbusviewer,
406 qdoc,
407 qhelpgenerator,
408 qtattributionsscanner,
409 qtdiag,
410 qtpaths,
411 qtplugininfo, and
412 qtwaylandscanner
413 </seg>
414 <seg>
415 libQt5DesignerComponents.so,
416 libQt5Designer.so,
417 libQt5Help.so,
418 libQt5Svg.so,
419 libQt5WaylandClient.so,
420 libQt5WaylandCompositor.so, and
421 libQt5X11Extras.so
422 </seg>
423 <seg>
424 $QT5DIR/phrasebooks,
425 $QT5DIR/include/{QtUiTools,QtHelp,QtDesigner,QtX11Extras,QtSvg},
426 $QT5DIR/include/{QtWaylandCompositor,QtWaylandClient},
427 $QT5DIR/include/{QtDesignerComponents,QtUiPlugin},
428 $QT5DIR/lib/cmake/{Qt5AttributionsScannerTools,Qt5Help,Qt5Designer},
429 $QT5DIR/lib/cmake/{Qt5X11Extras,Qt5Svg,Qt5UiTools,Qt5DocTools},
430 $QT5DIR/lib/cmake/{Qt5WaylandCompositor,Qt5WaylandClient},
431 $QT5DIR/lib/cmake/{Qt5DesignerComponents,Qt5UiPlugin},
432 $QT5DIR/lib/cmake/Qt5LinguistTools,
433 $QT5DIR/plugins/wayland-graphics-integration-client,
434 $QT5DIR/plugins/wayland-graphics-integration-server,
435 $QT5DIR/plugins/wayland-decoration-client, and
436 $QT5DIR/plugins/iconengines
437 </seg>
438 </seglistitem>
439 </segmentedlist>
440
441 <variablelist>
442 <bridgehead renderas="sect4">Short Descriptions</bridgehead>
443 <?dbfo list-presentation="list"?>
444 <?dbhtml list-presentation="table"?>
445
446 <varlistentry id="lconvert-qt5">
447 <term><command>lconvert</command></term>
448 <listitem>
449 <para>
450 is part of Qt5's Linguist tool chain. It can be used as a
451 standalone tool to convert and filter translation data files.
452 </para>
453 <indexterm zone="qt5 lconvert-qt5">
454 <primary sortas="b-lconvert-qt5">lconvert</primary>
455 </indexterm>
456 </listitem>
457 </varlistentry>
458
459 <varlistentry id="linguist-qt5">
460 <term><command>linguist</command></term>
461 <listitem>
462 <para>
463 provides support for translating applications into
464 local languages.
465 </para>
466 <indexterm zone="qt5 linguist-qt5">
467 <primary sortas="b-linguist-qt5">linguist</primary>
468 </indexterm>
469 </listitem>
470 </varlistentry>
471
472 <varlistentry id="lrelease-qt5">
473 <term><command>lrelease</command></term>
474 <listitem>
475 <para>
476 is a simple command line tool. It reads XML-based translation
477 file in TS format and produces message files used by the
478 application.
479 </para>
480 <indexterm zone="qt5 lrelease-qt5">
481 <primary sortas="b-lrelease-qt5">lrelease</primary>
482 </indexterm>
483 </listitem>
484 </varlistentry>
485
486 <varlistentry id="lrelease-pro">
487 <term><command>lrelease-pro</command></term>
488 <listitem>
489 <para>
490 extracts project information from qmake projects and passes
491 it to lrelease.
492 </para>
493 <indexterm zone="qt5 lrelease-pro">
494 <primary sortas="b-lrelease-pro">lrelease-pro</primary>
495 </indexterm>
496 </listitem>
497 </varlistentry>
498
499 <varlistentry id="lupdate-qt5">
500 <term><command>lupdate</command></term>
501 <listitem>
502 <para>
503 finds the translatable
504 strings in the specified source, header and Qt Designer
505 interface files, and stores the extracted messages in
506 translation files to be processed by lrelease.
507 </para>
508 <indexterm zone="qt5 lupdate-qt5">
509 <primary sortas="b-lupdate-qt5">lupdate</primary>
510 </indexterm>
511 </listitem>
512 </varlistentry>
513
514 <varlistentry id="lupdate-pro">
515 <term><command>lupdate-pro</command></term>
516 <listitem>
517 <para>
518 reads a Qt project file, an passes the collected information
519 to lupdate.
520 </para>
521 <indexterm zone="qt5 lupdate-pro">
522 <primary sortas="b-lupdate-pro">lupdate-pro</primary>
523 </indexterm>
524 </listitem>
525 </varlistentry>
526
527 <varlistentry id="pixeltool-qt5">
528 <term><command>pixeltool</command></term>
529 <listitem>
530 <para>
531 is a desktop magnifier and as you move your mouse around
532 the screen it will show the magnified contents in its window.
533 </para>
534 <indexterm zone="qt5 pixeltool-qt5">
535 <primary sortas="b-pixeltool-qt5">pixeltool</primary>
536 </indexterm>
537 </listitem>
538 </varlistentry>
539
540 <varlistentry id="qcollectiongenerator-qt5">
541 <term><command>qcollectiongenerator</command></term>
542 <listitem>
543 <para>
544 processes and converts Qt help files.
545 </para>
546 <indexterm zone="qt5 qcollectiongenerator-qt5">
547 <primary sortas="b-qcollectiongenerator-qt5">qcollectiongenerator-qt5</primary>
548 </indexterm>
549 </listitem>
550 </varlistentry>
551
552 <varlistentry id="qdbus-qt5">
553 <term><command>qdbus</command></term>
554 <listitem>
555 <para>
556 lists available services, object paths, methods, signals, and
557 properties of objects on a bus.
558 </para>
559 <indexterm zone="qt5 qdbus-qt5">
560 <primary sortas="b-qdbus-qt5">qdbus</primary>
561 </indexterm>
562 </listitem>
563 </varlistentry>
564
565 <varlistentry id="qdbusviewer-qt5">
566 <term><command>qdbusviewer</command></term>
567 <listitem>
568 <para>
569 is a graphical D-Bus browser.
570 </para>
571 <indexterm zone="qt5 qdbusviewer-qt5">
572 <primary sortas="b-qdbusviewer-qt5">qdbusviewer</primary>
573 </indexterm>
574 </listitem>
575 </varlistentry>
576
577 <varlistentry id="qdoc-qt5">
578 <term><command>qdoc</command></term>
579 <listitem>
580 <para>
581 is a tool used by <application>Qt</application> Developers to
582 generate documentation for software projects.
583 </para>
584 <indexterm zone="qt5 qdoc-qt5">
585 <primary sortas="b-qdoc-qt5">qdoc</primary>
586 </indexterm>
587 </listitem>
588 </varlistentry>
589
590 <varlistentry id="qhelpgenerator-qt5">
591 <term><command>qhelpgenerator</command></term>
592 <listitem>
593 <para>
594 is a tool used to generate a <application>Qt</application>
595 compressed help file.
596 </para>
597 <indexterm zone="qt5 qhelpgenerator-qt5">
598 <primary sortas="b-qhelpgenerator-qt5">qhelpgenerator</primary>
599 </indexterm>
600 </listitem>
601 </varlistentry>
602
603 <varlistentry id="qtattributionsscanner-qt5">
604 <term><command>qtattributionsscanner</command></term>
605 <listitem>
606 <para>
607 processes qt_attribution.json files in Qt sources.
608 </para>
609 <indexterm zone="qt5 qtattributionsscanner-qt5">
610 <primary sortas="b-qtattributionsscanner-qt5">qtattributionsscanner</primary>
611 </indexterm>
612 </listitem>
613 </varlistentry>
614
615 <varlistentry id="qtdiag-qt5">
616 <term><command>qtdiag</command></term>
617 <listitem>
618 <para>
619 is a tool for reporting diagnostic information about Qt and its
620 environment.
621 </para>
622 <indexterm zone="qt5 qtdiag-qt5">
623 <primary sortas="b-qtdiag-qt5">qtdiag</primary>
624 </indexterm>
625 </listitem>
626 </varlistentry>
627
628 <varlistentry id="qtpaths-qt5">
629 <term><command>qtpaths</command></term>
630 <listitem>
631 <para>
632 is a tool to query Qt path information.
633 </para>
634 <indexterm zone="qt5 qtpaths-qt5">
635 <primary sortas="b-qtpaths-qt5">qtpaths</primary>
636 </indexterm>
637 </listitem>
638 </varlistentry>
639
640 <varlistentry id="qtplugininfo">
641 <term><command>qtplugininfo</command></term>
642 <listitem>
643 <para>
644 dumps meta-data about Qt plugins in JSON format.
645 </para>
646 <indexterm zone="qt5 qtplugininfo">
647 <primary sortas="b-qtplugininfo">qtplugininfo</primary>
648 </indexterm>
649 </listitem>
650 </varlistentry>
651
652 </variablelist>
653
654 </sect3>
655 </sect2>
656
657 <sect2 id="qt-kde" xreflabel="Modules Needed for KDE">
658 <title>Modules Needed for KDE</title>
659 <para>
660 Install the modules needed for KDE with the following instructions:
661 </para>
662
663<screen><userinput>( # start a subshell
664set -e # exit the subshell in case of error
665
666sed -n "/Begin KDE/,/End KDE/p" qt5-submodules-&qt5-version;.md5 | \
667 while read MD5_ENTRY; do
668 if [ -z "${MD5_ENTRY%\#*}" ]; then continue; fi
669 case $MD5_ENTRY in
670 TODO) OPTIONS=
671 esac
672done
673)</userinput></screen>
674
675 </sect2>
676
677 <sect2 id="qtwebengine" xreflabel="QtWebEngine">
678 <title>QTWebEngine</title>
679 <para>
680 Install QtWebEngine with the following instructions:
681 </para>
682 </sect2>
683
684 <sect2 id="qt-miscellaneous" xreflabel="Other Modules">
685 <title>Other Modules</title>
686 <para>
687 Install the remaining modules with the following instructions:
688 </para>
689 </sect2>
690
691 <sect2 role="installation">
692 <title>Installation of Qt5</title>
693
694 <warning>
695 <para>
696 If <application>Qt5</application> is being reinstalled into the
697 same directory as an existing instance, run the commands done by
698 <systemitem class="username">root</systemitem>, such as
699 <command>make install</command>, from a console or non-Qt5 based
700 window manager. It overwrites <application>Qt5</application>
701 libraries that should not be in use during the install process.
702 </para>
703 </warning>
704
705 <caution>
706 <para>
707 If you did not install some of the recommended dependencies, examine
708 <command>./configure --help</command> output to check how to disable
709 them or use internal versions bundled in the source tarball.
710 </para>
711 </caution>
712
713 <note>
714 <para>
715 The build time and space required for the full
716 <application>Qt5</application> is quite long. The instructions below
717 do not build the tutorials and examples. Removing the
718 <parameter>-nomake</parameter> line will create a complete build.
719 </para>
720 </note>
721
722 <note>
723 <para>
724 The BLFS editors do not recommend installing <application>Qt5</application>
725 into the /usr hierarchy because it becomes difficult to find
726 components and to update to a new version. If you do want to install
727 <application>Qt5</application> in /usr, the directories need to
728 be specified explicitly. In this case, set QT5PREFIX=/usr and add
729 the following to the configure arguments below:
730 </para>
731
732<screen role="nodump"><userinput> -archdatadir /usr/lib/qt5 \
733 -bindir /usr/bin \
734 -plugindir /usr/lib/qt5/plugins \
735 -importdir /usr/lib/qt5/imports \
736 -headerdir /usr/include/qt5 \
737 -datadir /usr/share/qt5 \
738 -docdir /usr/share/doc/qt5 \
739 -translationdir /usr/share/qt5/translations \
740 -examplesdir /usr/share/doc/qt5/examples</userinput></screen>
741 </note>
742
743 <para>
744 First apply a patch to pull in the fixes curated by kde for those
745 modules which are required by packages mentioned in this book:
746 </para>
747
748<screen><userinput remap="pre">patch -Np1 -i ../qt-everywhere-opensource-src-&qt5-version;-kf5-1.patch</userinput></screen>
749
750 <para>
751 The patch is supposed to be used in a git repository, because the
752 behavior of the <command>configure</command> command below is changed
753 in this case. It is enough to create a
754 <filename class="directory">.git</filename> directory in the
755 <filename class="directory">qmake</filename> directory, where the
756 <command>configure</command> script is run:
757 </para>
758
759 <screen><userinput remap="pre">mkdir -pv qtbase/.git</userinput></screen>
760
761 <para>
762 Install <application>Qt5</application> by running the following commands:
763 </para>
764
765<screen revision="sysv"><userinput>./configure -prefix $QT5PREFIX \
766 -sysconfdir /etc/xdg \
767 -confirm-license \
768 -opensource \
769 -dbus-linked \
770 -openssl-linked \
771 -system-harfbuzz \
772 -system-sqlite \
773 -nomake examples \
774 -no-rpath \
775 -syslog \
776 -skip qtwebengine &amp;&amp;
777make</userinput></screen>
778
779<screen revision="systemd"><userinput>./configure -prefix $QT5PREFIX \
780 -sysconfdir /etc/xdg \
781 -confirm-license \
782 -opensource \
783 -dbus-linked \
784 -openssl-linked \
785 -system-harfbuzz \
786 -system-sqlite \
787 -nomake examples \
788 -no-rpath \
789 -journald \
790 -skip qtwebengine &amp;&amp;
791make</userinput></screen>
792
793 <para>
794 This package does not come with a test suite.
795 </para>
796
797 <para>
798 Now, as the <systemitem class="username">root</systemitem> user:
799 </para>
800
801<screen role="root"><userinput>make install</userinput></screen>
802
803 <!-- EDITORS NOTE: This package uses INSTALL_ROOT= instead of DESTDIR= for
804 installing in a temporary directory. -->
805
806 <para>
807 Remove references to the build directory from installed library
808 dependency (prl) <!--and profile include (pri)--> files by running the following
809 command as the <systemitem class="username">root</systemitem> user:
810 </para>
811
812<screen role="root"><userinput>find $QT5PREFIX/ -name \*.prl \
813 -exec sed -i -e '/^QMAKE_PRL_BUILD_DIR/d' {} \;</userinput></screen>
814
815 <para>
816 Install images and create the menu entries for installed applications.
817 The <envar>QT5BINDIR</envar> variable is used here to point to the
818 directory for the executable programs. If you have changed the bindir
819 above, <envar>QT5BINDIR</envar> will need to be adjusted below. Be sure
820 that the <envar>QT5BINDIR</envar> variable is defined in root's
821 environment and as the <systemitem class="username">root</systemitem>
822 user:
823 </para>
824
825<screen role="root"><userinput>QT5BINDIR=$QT5PREFIX/bin
826
827install -v -dm755 /usr/share/pixmaps/ &amp;&amp;
828
829install -v -Dm644 qttools/src/assistant/assistant/images/assistant-128.png \
830 /usr/share/pixmaps/assistant-qt5.png &amp;&amp;
831
832install -v -Dm644 qttools/src/designer/src/designer/images/designer.png \
833 /usr/share/pixmaps/designer-qt5.png &amp;&amp;
834
835install -v -Dm644 qttools/src/linguist/linguist/images/icons/linguist-128-32.png \
836 /usr/share/pixmaps/linguist-qt5.png &amp;&amp;
837
838install -v -Dm644 qttools/src/qdbus/qdbusviewer/images/qdbusviewer-128.png \
839 /usr/share/pixmaps/qdbusviewer-qt5.png &amp;&amp;
840
841install -dm755 /usr/share/applications &amp;&amp;
842
843cat &gt; /usr/share/applications/assistant-qt5.desktop &lt;&lt; EOF
844<literal>[Desktop Entry]
845Name=Qt5 Assistant
846Comment=Shows Qt5 documentation and examples
847Exec=$QT5BINDIR/assistant
848Icon=assistant-qt5.png
849Terminal=false
850Encoding=UTF-8
851Type=Application
852Categories=Qt;Development;Documentation;</literal>
853EOF
854
855cat &gt; /usr/share/applications/designer-qt5.desktop &lt;&lt; EOF
856<literal>[Desktop Entry]
857Name=Qt5 Designer
858GenericName=Interface Designer
859Comment=Design GUIs for Qt5 applications
860Exec=$QT5BINDIR/designer
861Icon=designer-qt5.png
862MimeType=application/x-designer;
863Terminal=false
864Encoding=UTF-8
865Type=Application
866Categories=Qt;Development;</literal>
867EOF
868
869cat &gt; /usr/share/applications/linguist-qt5.desktop &lt;&lt; EOF
870<literal>[Desktop Entry]
871Name=Qt5 Linguist
872Comment=Add translations to Qt5 applications
873Exec=$QT5BINDIR/linguist
874Icon=linguist-qt5.png
875MimeType=text/vnd.trolltech.linguist;application/x-linguist;
876Terminal=false
877Encoding=UTF-8
878Type=Application
879Categories=Qt;Development;</literal>
880EOF
881
882cat &gt; /usr/share/applications/qdbusviewer-qt5.desktop &lt;&lt; EOF
883<literal>[Desktop Entry]
884Name=Qt5 QDbusViewer
885GenericName=D-Bus Debugger
886Comment=Debug D-Bus applications
887Exec=$QT5BINDIR/qdbusviewer
888Icon=qdbusviewer-qt5.png
889Terminal=false
890Encoding=UTF-8
891Type=Application
892Categories=Qt;Development;Debugger;</literal>
893EOF</userinput></screen>
894
895 <para>
896 Some packages such as <xref linkend='vlc'/> look for certain
897 executables with a -qt5 suffix. Run the following command as the
898 <systemitem class="username">root</systemitem> user
899 to create the necessary symlinks:
900 </para>
901
902<screen role="root"><userinput>for file in moc uic rcc qmake lconvert lrelease lupdate; do
903 ln -sfrvn $QT5BINDIR/$file /usr/bin/$file-qt5
904done</userinput></screen>
905
906 </sect2>
907
908 <sect2 role="commands">
909 <title>Command Explanations</title>
910
911 <para>
912 <command>sed ...</command>: Allows using
913 <application>Python 3</application> instead of <application>Python
914 2</application>. This command destroys the build for QtWebEngine, so do
915 not use it if you remove the <parameter>-skip qtwebengine</parameter>
916 switch.
917 </para>
918
919 <para>
920 <parameter>-confirm-license</parameter>: Accept license
921 without prompting user during configuration.
922 </para>
923
924 <para>
925 <parameter>-opensource</parameter>: Install the opensource
926 version of <application>Qt</application>.
927 </para>
928
929 <para>
930 <parameter>-nomake examples</parameter>: This switch
931 disables building of the example programs included
932 in the source tarball. Remove it if you want to build
933 them.
934 </para>
935
936 <para>
937 <parameter>-system-sqlite</parameter>: This switch enables use
938 of the system version of <application>SQLite</application>.
939 </para>
940
941 <para>
942 <parameter>-dbus-linked -openssl-linked</parameter>: These
943 switches enable explicit linking of the
944 <application>D-Bus</application> and
945 <application>OpenSSL</application> libraries into
946 <application>Qt5</application> libraries instead of
947 <command>dlopen()</command>-ing them.
948 </para>
949
950 <para revision="sysv">
951 <parameter>-syslog</parameter>: This switch allows to send Qt messages
952 to the <command>syslog</command> logging system.
953 </para>
954
955 <para revision="systemd">
956 <parameter>-journald</parameter>: This switch allows to send Qt messages
957 to the <command>journald</command> logging system.
958 </para>
959
960 <para>
961 <parameter>-skip qtwebengine</parameter>: This switch disables building
962 the QtWebEngine. <!--The BLFS editors have chosen to build <xref
963 linkend="qtwebengine"/> separately.-->
964 </para>
965
966 <para>
967 <parameter>-system-harfbuzz</parameter>: This switch enables use
968 of the system version of <application>Harfbuzz</application>.
969 </para>
970
971 </sect2>
972
973 <sect2 role="configuration">
974 <title>Configuring Qt5</title>
975
976 <sect3 id="qt5-config">
977 <title>Configuration Information</title>
978
979 <para>
980 If <xref linkend="sudo"/> is installed, QT5DIR should be available to
981 the super user as well. Execute the following commands as the
982 <systemitem class="username">root</systemitem> user:
983 </para>
984
985<screen role="root"><userinput>cat &gt; /etc/sudoers.d/qt &lt;&lt; "EOF"
986<literal>Defaults env_keep += QT5DIR</literal>
987EOF</userinput></screen>
988
989 <bridgehead renderas="sect4">If you installed Qt5 in /usr</bridgehead>
990
991 <para>
992 If you installed <application>Qt5</application> in
993 <filename class="directory">/usr</filename>, create an
994 environment variable needed by certain packages.
995 As the <systemitem class="username">root</systemitem> user:
996 </para>
997
998<screen role="nodump"><userinput>cat &gt; /etc/profile.d/qt5.sh &lt;&lt; "EOF"
999<literal># Begin /etc/profile.d/qt5.sh
1000
1001QT5DIR=/usr
1002export QT5DIR
1003pathappend $QT5DIR/bin
1004
1005# End /etc/profile.d/qt5.sh</literal>
1006EOF</userinput></screen>
1007
1008 <bridgehead renderas="sect4">If you did not install Qt5 in /usr</bridgehead>
1009
1010 <para>
1011 If you installed <application>Qt5</application> in a location other
1012 than <filename class="directory">/usr</filename>, you need to update the
1013 following configuration files so that <application>Qt5</application> is
1014 correctly found by other packages and system processes.
1015 </para>
1016
1017 <para>
1018 As the <systemitem class="username">root</systemitem> user, update
1019 the <filename>/etc/ld.so.conf</filename> file and the dynamic linker's
1020 run-time cache file:
1021 </para>
1022
1023<screen role="root"><userinput>cat &gt;&gt; /etc/ld.so.conf &lt;&lt; EOF
1024<literal># Begin Qt addition
1025
1026/opt/qt5/lib
1027
1028# End Qt addition</literal>
1029EOF
1030
1031ldconfig</userinput></screen>
1032
1033 <indexterm zone="qt5 qt5-config">
1034 <primary sortas="e-etc-ld.so.conf">/etc/ld.so.conf</primary>
1035 </indexterm>
1036
1037 <para>
1038 As the <systemitem class="username">root</systemitem> user, create
1039 the <filename>/etc/profile.d/qt5.sh</filename> file:
1040 </para>
1041
1042<screen role="root"><userinput>cat &gt; /etc/profile.d/qt5.sh &lt;&lt; "EOF"
1043<literal># Begin /etc/profile.d/qt5.sh
1044
1045QT5DIR=/opt/qt5
1046
1047pathappend $QT5DIR/bin PATH
1048pathappend $QT5DIR/lib/pkgconfig PKG_CONFIG_PATH
1049
1050export QT5DIR
1051
1052# End /etc/profile.d/qt5.sh</literal>
1053EOF</userinput></screen>
1054
1055 </sect3>
1056
1057 </sect2>
1058
1059 <sect2 role="content">
1060 <title>Contents</title>
1061
1062 <segmentedlist>
1063 <segtitle>Installed Programs</segtitle>
1064 <segtitle>Installed Libraries</segtitle>
1065 <segtitle>Installed Directories</segtitle>
1066
1067 <seglistitem>
1068 <seg>
1069 assistant, balsam, canbusutil, designer, fixqt4headers.pl, lconvert,
1070 linguist, lprodump, lrelease, lrelease-pro, lupdate, lupdate-pro,
1071 meshdebug, moc, pixeltool, qcollectiongenerator, qdbus, qdbuscpp2xml,
1072 qdbusviewer, qdbusxml2cpp, qdistancefieldgenerator, qdoc, qgltf,
1073 qhelpgenerator, qlalr, qmake, qml, qmlcachegen, qmleasing,
1074 qmlformat, qmlimportscanner, qmllint, qmlmin, qmlplugindump,
1075 qmlpreview, qmlprofiler, qmlscene, qmltestrunner, qmltime,
1076 qmltyperegistrar, qscxmlc,
1077 qtattributionscanner, qtdiag, qtpaths, qtplugininfo,
1078 qtwaylandscanner, qvkgen, rcc, repc, sdpscanner, syncqt.pl, tracegen,
1079 uic, xmlpatterns, and xmlpatternsvalidator
1080 </seg>
1081 <seg>
1082 libQt53DAnimation.so, libQt53DCore.so,
1083 libQt53DExtras.so, libQt53DInput.so, libQt53DLogic.so,
1084 libQt53DQuick.so, libQt53DQuickAnimation.so, libQt53DQuickExtras.so,
1085 libQt53DQuickInput.so, libQt53DQuickRender.so,
1086 libQt53DQuickScene2D.so, libQt53DRender.so,
1087 libQt5AccessibilitySupport.a, libQt5Bluetooth.so, libQt5Bodymovin.so,
1088 libQt5Bootstrap.a, libQt5Charts.so, libQt5Concurrent.so,
1089 libQt5Core.so, libQt5DataVisualization.so, libQt5DBus.so,
1090 libQt5DesignerComponents.so, libQt5Designer.so,
1091 libQt5DeviceDiscoverySupport.a, libQt5EdidSupport.a,
1092 libQt5EglFSDeviceIntegration.so, libQt5EglFsKmsSupport.so,
1093 libQt5EglSupport.a, libQt5EventDispatcherSupport.a, libQt5FbSupport.a,
1094 libQt5FontDatabaseSupport.a, libQt5Gamepad.so, libQt5GlxSupport.a,
1095 libQt5Gui.so,libQt5Help.so, libQt5InputSupport.a, libQt5KmsSupport.a,
1096 libQt5LinuxAccessibilitySupport.a, libQt5Location.so,
1097 libQt5Multimedia.so, libQt5MultimediaGstTools.so,
1098 libQt5MultimediaQuick.so, libQt5MultimediaWidgets.so,
1099 libQt5Network.so, libQt5NetworkAuth.so, libQt5Nfc.so,
1100 libQt5OpenGLExtensions.a, libQt5OpenGL.so, libQt5PacketProtocol.a,
1101 libQt5PlatformCompositorSupport.a, libQt5Positioning.so,
1102 libQt5PositioningQuick.so, libQt5PrintSupport.so,
1103 libQt5Purchasing.so, libQt5Qml.so, libQt5QmlDebug.a,
1104 libQt5QmlDevTools.a, libQt5QmlModels.so, libQt5QmlWorkerScript.so,
1105 libQt5Quick.so, libQt5Quick3D.so, libQt5Quick3DAssetImport.so,
1106 libQt5Quick3DRender.so, libQt5Quick3DRuntimeRender.so,
1107 libQt5Quick3DUtils.so, libQt5QuickControls2.so,
1108 libQt5QuickParticles.so, libQt5QuickShapes.so,
1109 libQt5QuickTemplates2.so, libQt5QuickTest.so, libQt5QuickWidgets.so,
1110 libQt5RemoteObjects.so, libQt5Script.so, libQt5ScriptTools.so,
1111 libQt5Scxml.so, libQt5Sensors.so, libQt5SerialBus.so,
1112 libQt5SerialPort.so, libQt5ServiceSupport.a, libQt5Sql.so,
1113 libQt5Svg.so, libQt5Test.so, libQt5TextToSpeech.so,
1114 libQt5ThemeSupport.a, libQt5UiTools.a, libQt5VirtualKeyboard.so,
1115 libQt5WaylandClient.so, libQt5WaylandCompositor.so,
1116 libQt5WebChannel.so, libQt5WebSockets.so, libQt5WebView.so,
1117 libQt5Widgets.so, libQt5X11Extras.so, libQt5XcbQpa.so,
1118 libQt5XkbCommonSupport.a, libQt5Xml.so, libQt5XmlPatterns.so,
1119 and several plugins under /opt/qt5/{plugins,qml}
1120 </seg>
1121 <seg>
1122 /usr/include/qt5,
1123 /usr/lib/qt5,
1124 /usr/share/doc/qt5, and
1125 /usr/share/qt5
1126 OR
1127 /opt/qt5 and
1128 /opt/qt-&qt5-version;
1129 </seg>
1130 </seglistitem>
1131 </segmentedlist>
1132<!--
1133 <variablelist>
1134 <bridgehead renderas="sect3">Short Descriptions</bridgehead>
1135 <?dbfo list-presentation="list"?>
1136 <?dbhtml list-presentation="table"?>
1137
1138 <varlistentry id="lconvert-qt5">
1139 <term><command>lconvert</command></term>
1140 <listitem>
1141 <para>
1142 is part of Qt5's Linguist tool chain. It can be used as a
1143 standalone tool to convert and filter translation data files
1144 </para>
1145 <indexterm zone="qt5 lconvert-qt5">
1146 <primary sortas="b-lconvert-qt5">lconvert</primary>
1147 </indexterm>
1148 </listitem>
1149 </varlistentry>
1150
1151 <varlistentry id="linguist-qt5">
1152 <term><command>linguist</command></term>
1153 <listitem>
1154 <para>
1155 provides support for translating applications into
1156 local languages
1157 </para>
1158 <indexterm zone="qt5 linguist-qt5">
1159 <primary sortas="b-linguist-qt5">linguist</primary>
1160 </indexterm>
1161 </listitem>
1162 </varlistentry>
1163
1164 <varlistentry id="lrelease-qt5">
1165 <term><command>lrelease</command></term>
1166 <listitem>
1167 <para>
1168 is a simple command line tool. It reads XML-based translation
1169 file in TS format and produces message files used by the
1170 application
1171 </para>
1172 <indexterm zone="qt5 lrelease-qt5">
1173 <primary sortas="b-lrelease-qt5">lrelease</primary>
1174 </indexterm>
1175 </listitem>
1176 </varlistentry>
1177
1178 <varlistentry id="lrelease-pro">
1179 <term><command>lrelease-pro</command></term>
1180 <listitem>
1181 <para>
1182 extracts project information from qmake projects and passes
1183 it to lrelease
1184 </para>
1185 <indexterm zone="qt5 lrelease-pro">
1186 <primary sortas="b-lrelease-pro">lrelease-pro</primary>
1187 </indexterm>
1188 </listitem>
1189 </varlistentry>
1190
1191 <varlistentry id="lupdate-qt5">
1192 <term><command>lupdate</command></term>
1193 <listitem>
1194 <para>
1195 finds the translatable
1196 strings in the specified source, header and Qt Designer
1197 interface files, and stores the extracted messages in
1198 translation files to be processed by lrelease
1199 </para>
1200 <indexterm zone="qt5 lupdate-qt5">
1201 <primary sortas="b-lupdate-qt5">lupdate</primary>
1202 </indexterm>
1203 </listitem>
1204 </varlistentry>
1205
1206 <varlistentry id="lupdate-pro">
1207 <term><command>lupdate-pro</command></term>
1208 <listitem>
1209 <para>
1210 reads a Qt project file, an passes the collected information
1211 to lupdate
1212 </para>
1213 <indexterm zone="qt5 lupdate-pro">
1214 <primary sortas="b-lupdate-pro">lupdate-pro</primary>
1215 </indexterm>
1216 </listitem>
1217 </varlistentry>
1218
1219 <varlistentry id="meshdebug">
1220 <term><command>meshdebug</command></term>
1221 <listitem>
1222 <para>
1223 displays information about qtquick-3d mesh files
1224 </para>
1225 <indexterm zone="qt5 meshdebug">
1226 <primary sortas="b-meshdebug">meshdebug</primary>
1227 </indexterm>
1228 </listitem>
1229 </varlistentry>
1230
1231 <varlistentry id="pixeltool-qt5">
1232 <term><command>pixeltool</command></term>
1233 <listitem>
1234 <para>
1235 is a desktop magnifier and as you move your mouse around
1236 the screen it will show the magnified contents in its window
1237 </para>
1238 <indexterm zone="qt5 pixeltool-qt5">
1239 <primary sortas="b-pixeltool-qt5">pixeltool</primary>
1240 </indexterm>
1241 </listitem>
1242 </varlistentry>
1243
1244 <varlistentry id="qcollectiongenerator-qt5">
1245 <term><command>qcollectiongenerator</command></term>
1246 <listitem>
1247 <para>
1248 processes and converts Qt help files
1249 </para>
1250 <indexterm zone="qt5 qcollectiongenerator-qt5">
1251 <primary sortas="b-qcollectiongenerator-qt5">qcollectiongenerator-qt5</primary>
1252 </indexterm>
1253 </listitem>
1254 </varlistentry>
1255
1256 <varlistentry id="qdbus-qt5">
1257 <term><command>qdbus</command></term>
1258 <listitem>
1259 <para>
1260 lists available services, object paths, methods, signals, and
1261 properties of objects on a bus
1262 </para>
1263 <indexterm zone="qt5 qdbus-qt5">
1264 <primary sortas="b-qdbus-qt5">qdbus</primary>
1265 </indexterm>
1266 </listitem>
1267 </varlistentry>
1268
1269 <varlistentry id="qdbusviewer-qt5">
1270 <term><command>qdbusviewer</command></term>
1271 <listitem>
1272 <para>
1273 is a graphical D-Bus browser
1274 </para>
1275 <indexterm zone="qt5 qdbusviewer-qt5">
1276 <primary sortas="b-qdbusviewer-qt5">qdbusviewer</primary>
1277 </indexterm>
1278 </listitem>
1279 </varlistentry>
1280
1281 <varlistentry id="qdistancefieldgenerator-qt5">
1282 <term><command>qdistancefieldgenerator</command></term>
1283 <listitem>
1284 <para>
1285 allows a font cache to be pregenerated for Text.QtRendering to speed
1286 up an application's startup if the user interface has a lot of text,
1287 or multiple fonts, or a large amount of distinct characters, e.g. in
1288 CJK writing systems
1289 </para>
1290 <indexterm zone="qt5 qdistancefieldgenerator-qt5">
1291 <primary sortas="b-qdistancefieldgenerator-qt5">qdistancefieldgenerator</primary>
1292 </indexterm>
1293 </listitem>
1294 </varlistentry>
1295
1296 <varlistentry id="qdoc-qt5">
1297 <term><command>qdoc</command></term>
1298 <listitem>
1299 <para>
1300 is a tool used by <application>Qt</application> Developers to
1301 generate documentation for software projects
1302 </para>
1303 <indexterm zone="qt5 qdoc-qt5">
1304 <primary sortas="b-qdoc-qt5">qdoc</primary>
1305 </indexterm>
1306 </listitem>
1307 </varlistentry>
1308
1309 <varlistentry id="qgltf">
1310 <term><command>qgltf</command></term>
1311 <listitem>
1312 <para>
1313 imports a a variety of 3D model formats and exports into fast-to-load,
1314 optimized glTF assets embedded into Qt resource files
1315 </para>
1316 <indexterm zone="qt5 qgltf">
1317 <primary sortas="b-qgltf">qgltf</primary>
1318 </indexterm>
1319 </listitem>
1320 </varlistentry>
1321
1322 <varlistentry id="qhelpgenerator-qt5">
1323 <term><command>qhelpgenerator</command></term>
1324 <listitem>
1325 <para>
1326 is a tool used to generate a <application>Qt</application>
1327 compressed help file
1328 </para>
1329 <indexterm zone="qt5 qhelpgenerator-qt5">
1330 <primary sortas="b-qhelpgenerator-qt5">qhelpgenerator</primary>
1331 </indexterm>
1332 </listitem>
1333 </varlistentry>
1334
1335 <varlistentry id="qml">
1336 <term><command>qml</command></term>
1337 <listitem>
1338 <para>
1339 executes a QML file
1340 </para>
1341 <indexterm zone="qt5 qml">
1342 <primary sortas="b-qml">qml</primary>
1343 </indexterm>
1344 </listitem>
1345 </varlistentry>
1346
1347 <varlistentry id="qmlcachegen">
1348 <term><command>qmlcachegen</command></term>
1349 <listitem>
1350 <para>
1351 supports the creation of cache files at build time
1352 </para>
1353 <indexterm zone="qt5 qmlcachegen">
1354 <primary sortas="b-qmlcachegen">qmlcachegen</primary>
1355 </indexterm>
1356 </listitem>
1357 </varlistentry>
1358
1359 <varlistentry id="qmleasing-qt5">
1360 <term><command>qmleasing</command></term>
1361 <listitem>
1362 <para>
1363 is a tool used to define the easing curves using an
1364 interactive curve editor
1365 </para>
1366 <indexterm zone="qt5 qmleasing-qt5">
1367 <primary sortas="b-qmleasing-qt5">qmleasing</primary>
1368 </indexterm>
1369 </listitem>
1370 </varlistentry>
1371
1372 <varlistentry id="qmlformat-qt5">
1373 <term><command>qmlformat</command></term>
1374 <listitem>
1375 <para>
1376 formats QML files according to the QML coding conventions
1377 </para>
1378 <indexterm zone="qt5 qmlformat-qt5">
1379 <primary sortas="b-qmlformat-qt5">qmlformat</primary>
1380 </indexterm>
1381 </listitem>
1382 </varlistentry>
1383
1384 <varlistentry id="qmlimportscanner-qt5">
1385 <term><command>qmlimportscanner</command></term>
1386 <listitem>
1387 <para>
1388 is a tool used to import QML files from a directory
1389 </para>
1390 <indexterm zone="qt5 qmlimportscanner-qt5">
1391 <primary sortas="b-qmlimportscanner-qt5">qmlimportscanner</primary>
1392 </indexterm>
1393 </listitem>
1394 </varlistentry>
1395
1396 <varlistentry id="qmllint-qt5">
1397 <term><command>qmllint</command></term>
1398 <listitem>
1399 <para>
1400 is a syntax checker for QML files
1401 </para>
1402 <indexterm zone="qt5 qmllint-qt5">
1403 <primary sortas="b-qmllint-qt5">qmllint</primary>
1404 </indexterm>
1405 </listitem>
1406 </varlistentry>
1407
1408 <varlistentry id="qmlmin-qt5">
1409 <term><command>qmlmin</command></term>
1410 <listitem>
1411 <para>
1412 removes comments and layout characters from a QML file
1413 </para>
1414 <indexterm zone="qt5 qmlmin-qt5">
1415 <primary sortas="b-qmlmin-qt5">qmlmin</primary>
1416 </indexterm>
1417 </listitem>
1418 </varlistentry>
1419
1420 <varlistentry id="qmlplugindump-qt5">
1421 <term><command>qmlplugindump</command></term>
1422 <listitem>
1423 <para>
1424 is a tool to create a qmltypes file
1425 </para>
1426 <indexterm zone="qt5 qmlplugindump-qt5">
1427 <primary sortas="b-qmlplugindump-qt5">qmlplugindump</primary>
1428 </indexterm>
1429 </listitem>
1430 </varlistentry>
1431
1432 <varlistentry id="qmlpreview-qt5">
1433 <term><command>qmlpreview</command></term>
1434 <listitem>
1435 <para>
1436 is a tool used to analyze QML applications
1437 </para>
1438 <indexterm zone="qt5 qmlpreview-qt5">
1439 <primary sortas="b-qmlpreviewr-qt5">qmlpreview</primary>
1440 </indexterm>
1441 </listitem>
1442 </varlistentry>
1443
1444 <varlistentry id="qmlprofiler-qt5">
1445 <term><command>qmlprofiler</command></term>
1446 <listitem>
1447 <para>
1448 is a tool which watches QML and JavaScript files on disk and
1449 updates the application live with any changes
1450 </para>
1451 <indexterm zone="qt5 qmlprofiler-qt5">
1452 <primary sortas="b-qmlprofiler-qt5">qmlprofiler</primary>
1453 </indexterm>
1454 </listitem>
1455 </varlistentry>
1456
1457 <varlistentry id="qmlscene-qt5">
1458 <term><command>qmlscene</command></term>
1459 <listitem>
1460 <para>
1461 is a utility that loads and displays QML documents even before
1462 the application is complete
1463 </para>
1464 <indexterm zone="qt5 qmlscene-qt5">
1465 <primary sortas="b-qmlscene-qt5">qmlscene</primary>
1466 </indexterm>
1467 </listitem>
1468 </varlistentry>
1469
1470 <varlistentry id="qmltestrunner-qt5">
1471 <term><command>qmltestrunner</command></term>
1472 <listitem>
1473 <para>
1474 is a tool used to make tests
1475 </para>
1476 <indexterm zone="qt5 qmltestrunner-qt5">
1477 <primary sortas="b-qmltestrunner-qt5">qmltestrunner</primary>
1478 </indexterm>
1479 </listitem>
1480 </varlistentry>
1481
1482 <varlistentry id="qscxmlc-qt5">
1483 <term><command>qscxml</command></term>
1484 <listitem>
1485 <para>
1486 converts an input.scxml file to a header and cpp file
1487 </para>
1488 <indexterm zone="qt5 qscxmlc-qt5">
1489 <primary sortas="b-qscxmlc-qt5">qscxmlc</primary>
1490 </indexterm>
1491 </listitem>
1492 </varlistentry>
1493
1494 <varlistentry id="qtattributionsscanner-qt5">
1495 <term><command>qtattributionsscanner</command></term>
1496 <listitem>
1497 <para>
1498 processes qt_attribution.json files in Qt sources
1499 </para>
1500 <indexterm zone="qt5 qtattributionsscanner-qt5">
1501 <primary sortas="b-qtattributionsscanner-qt5">qtattributionsscanner</primary>
1502 </indexterm>
1503 </listitem>
1504 </varlistentry>
1505
1506 <varlistentry id="qtdiag-qt5">
1507 <term><command>qtdiag</command></term>
1508 <listitem>
1509 <para>
1510 is a tool for reporting diagnostic information about Qt and its
1511 environment
1512 </para>
1513 <indexterm zone="qt5 qtdiag-qt5">
1514 <primary sortas="b-qtdiag-qt5">qtdiag</primary>
1515 </indexterm>
1516 </listitem>
1517 </varlistentry>
1518
1519 <varlistentry id="qtpaths-qt5">
1520 <term><command>qtpaths</command></term>
1521 <listitem>
1522 <para>
1523 is a tool to query Qt path information
1524 </para>
1525 <indexterm zone="qt5 qtpaths-qt5">
1526 <primary sortas="b-qtpaths-qt5">qtpaths</primary>
1527 </indexterm>
1528 </listitem>
1529 </varlistentry>
1530
1531 <varlistentry id="qtplugininfo">
1532 <term><command>qtplugininfo</command></term>
1533 <listitem>
1534 <para>
1535 dumps meta-data about Qt plugins in JSON format
1536 </para>
1537 <indexterm zone="qt5 qtplugininfo">
1538 <primary sortas="b-qtplugininfo">qtplugininfo</primary>
1539 </indexterm>
1540 </listitem>
1541 </varlistentry>
1542
1543 <varlistentry id="repc">
1544 <term><command>repc</command></term>
1545 <listitem>
1546 <para>
1547 is the Replica Compiler, which generates QObject header files based
1548 on an API definition file
1549 </para>
1550 <indexterm zone="qt5 repc">
1551 <primary sortas="b-repc">repc</primary>
1552 </indexterm>
1553 </listitem>
1554 </varlistentry>
1555
1556 <varlistentry id="sdpscanner-qt5">
1557 <term><command>sdpscanner</command></term>
1558 <listitem>
1559 <para>
1560 performs a Session Description Protocol scan on a remote device,
1561 using the SDP server represented by the local Bluetooth device
1562 </para>
1563 <indexterm zone="qt5 sdpscanner-qt5">
1564 <primary sortas="b-sdpscanner-qt5">sdpscanner</primary>
1565 </indexterm>
1566 </listitem>
1567 </varlistentry>
1568
1569 <varlistentry id="xmlpatterns-qt5">
1570 <term><command>xmlpatterns</command></term>
1571 <listitem>
1572 <para>
1573 provides support for XPath, XQuery, XSLT, and XML Schema
1574 validation
1575 </para>
1576 <indexterm zone="qt5 xmlpatterns-qt5">
1577 <primary sortas="b-xmlpatterns-qt5">xmlpatterns</primary>
1578 </indexterm>
1579 </listitem>
1580 </varlistentry>
1581
1582 <varlistentry id="xmlpatternsvalidator-qt5">
1583 <term><command>xmlpatternsvalidator</command></term>
1584 <listitem>
1585 <para>
1586 is a tool used to validate XML documents
1587 </para>
1588 <indexterm zone="qt5 xmlpatternsvalidator-qt5">
1589 <primary sortas="b-xmlpatternsvalidator-qt5">xmlpatternsvalidator</primary>
1590 </indexterm>
1591 </listitem>
1592 </varlistentry>
1593
1594 </variablelist>
1595-->
1596 </sect2>
1597
1598</sect1>
Note: See TracBrowser for help on using the repository browser.