Qt is a cross-platform C++ application framework.  Qt's
primary feature is its rich set of widgets that provide
standard GUI functionality.

The following are optional dependencies that Qt will link
against if they are detected at build time:

libwebp, opus, ffmpeg, re2, snappy, libminizip, jsoncpp,
libinput, unixODBC, postgresql, SDL2, assimp, wayland,
OpenAL, protobuf(3?), argon2, and perhaps more.

============================================================

OPTIONS

To use Qt's built-in ccache option:

  CCACHE=yes ./qt5.SlackBuild

To build the documentation:

  DOCS=yes ./qt5.SlackBuild

(you will need the llvm package from extra/ to build
documentation)

To build the examples:

  EXAMPLES=yes ./qt5.SlackBuild

To build support for proprietary media codecs:

  PROPRIETARY_CODECS=yes ./qt5.SlackBuild

(this will produce a non-redistributable package in some
countries)

To disable support for pulseaudio:

  PULSEAUDIO=no ./qt5.SlackBuild

(Qt will automatically detect if pulseaudio is not installed
at build time and disable it if it is missing.)

To NOT build qtwebengine (EXPERIMENTAL):

  WEBENGINE=no ./qt5.SlackBuild

To use the gold linker:

  LDGOLD=yes ./qt5.SlackBuild

This may speed up the build, but can take more RAM.

Combine any or all of the above.

============================================================

GENERAL NOTES

After upgrading Qt5 it is important to rebuild qt5ct too, if
it is installed, or some applications may not display or
function correctly.

There is a qt5-legacy (5.9.9) SlackBuild that is available
for older applications that do not run correctly with this
version.  However it will not coexist with this version.

Please report any problems about applications that don't
work correctly to the Qt5 maintainer or to the mailing list.

============================================================

NOTES ON OPTIONS

* Using ccache should speed up subsequent rebuilds, but may
  be slower for first time or one-off builds.

* Building the documentation and/or examples creates a
  significantly larger package.

============================================================

BUILDING WITHOUT WEBENGINE

Building without webengine can speed up compilation.

If you have no intention of using the browser code, which
includes a chunk of 3rd party Google Chromium source, then
it may make sense to skip it and save yourself about 2/3 of
the build time, and knocks about 3G off the needed space.

The package version has _nowebengine appended to it for
clarity.

* Successfully tested so far without webengine (VERY quick
  tests):

  QMPlay2
  qt5ct
  qbittorrent-qt5
  speedcrunch
  qca-qt5
  psi-plus
  sddm

============================================================

TROUBLESHOOTING

If Qt5 fails to build, it may be worth using the following
steps.

1 Uninstall the old Qt5 package
2 Log out of root
3 Log back in as root
4 Build and install the new package
5 Log out of root
6 Log back in as root
7 Upgrade all other packages that depend on Qt5

The reasoning behind all the log outs/ins, is because Qt5
installs /etc/profile.d/qt5.sh that sets QT5DIR and adds
QT5DIR/bin to your $PATH when you log in (there's a similar
file for csh.) Even though the old Qt5 is removepkg'd, those
settings are *still there* until you log out.

You can see with a test (assuming bash or a zsh type shell):

env | grep -i qt5

If that command is used before step 4, you shouldn't see
anything qt5 related in PATH and QT5DIR shouldn't exist.

