Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Best configuration and platform to compile most interoperable Linux Qt with good font rendering



  • Hi there!
    Is it known which system and which options are best to create a build of Qt allowing you to create Qt based binaries with best interoperability across different set of past, present and future Linuxes?
    Until now I was able to create build with Qt 5.11.1 for amd64 arch on Debian 7, but with Qt 5.12.1 I can't build on Debian 7 and Debian 8 because new xkdcommon dependencies.
    My build options for 5.11.1 was:
    ./configure -commercial -confirm-license -I /Dependencies/openssl/include/ -L /Dependencies/openssl/lib/ -I /opt/cprocsp/include/cpcsp -L /opt/cprocsp/lib/amd64/ -prefix /Dependencies/Qt -release -qt-zlib -qt-libpng -qt-libjpeg -qt-pcre -qt-xcb -qt-xkbcommon-x11 -no-opengl -no-gtk -no-icu -static -nomake examples -nomake tests -openssl-linked
    The best way to create interoperable binary as I understand is to use static build of Qt with minimal dependencies on build system libraries.
    But I have found that some libraries can be vital for the result. Thus compiling without libfontconfig works but produce ugly fonts like that:
    0_1552493069956_860fabc9-714b-4f76-8ccf-c92fa1255eea-image.png
    compiling with libfontconfig allow much better looking font renedering:
    0_1552493163338_d8eed210-e5bc-4290-b8a7-1db008d75a96-image.png

    So my questions:

    1. Is there a way to get good font rendering without linking to libfontconfig?
    2. Is there a recommended set of options for building most system independent Qt bundle?

  • Lifetime Qt Champion

    Hi,

    It's not a new dependency. It was bundled before. Now all minimal supported distributions provide that library hence it has been removed.

    As for your question, then you should build all the dependencies you want to control and bundle them with Qt.

    You will likely have to modify your custom version rpath to ensure they are found before the system versions.


Log in to reply