[Interest] Qt 5.12.3 build generates absolute library paths in .prl files

Michal Klocek michal.klocek at qt.io
Wed May 8 11:55:50 CEST 2019


Hi

see https://codereview.qt-project.org/#/c/212562/
and for some discussions  https://bugreports.qt.io/browse/QTBUG-72903

Br

Michal

On 5/8/19 10:52 AM, Simon Holmberg wrote:
> I'm not well versed in qmake, nor could I find much information about 
> the .prl files that qmake generates along with its library outputs. But 
> as I've understood it, they are generated so that future linking against 
> the Qt libraries (when using qmake) will know which additional library 
> dependencies are needed.
> 
> This has apparently been working fine in the past for us, where a .prl 
> file would look like this:
> 
>     [...]
>     QMAKE_PRL_VERSION = 5.10.1
>     QMAKE_PRL_LIBS = -lmpr -lnetapi32 -luserenv -lversion -lws2_32
>     -lkernel32 -luser32 -lshell32 -luuid -lole32 -ladvapi32 -lwinmm
>     -L$$[QT_INSTALL_LIBS] $$[QT_INSTALL_LIBS]\\qtpcre2.lib
> 
> 
> This is all fine and dandy. However, after attempting to upgrade to 
> 5.12.3, the generated .prl's now look like this for us:
> 
>     [...]
>     QMAKE_PRL_VERSION = 5.12.3
>     QMAKE_PRL_LIBS =
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\mpr.lib
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\netapi32.lib
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\userenv.lib
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\version.lib
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\ws2_32.lib
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\kernel32.lib
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\user32.lib
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\shell32.lib
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\uuid.lib
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\ole32.lib
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\advapi32.lib
>     C:\\Needy\\cache\\3rdparty\\WinSDK\\WinSDK-10.0.17134.0.1.1.1.1452640\\Win64\\10\\Lib\\10.0.17134.0\\um\\x64\\winmm.lib
>     $$[QT_INSTALL_LIBS]/qtpcre2.lib
> 
> 
> All library paths are now absolute paths! Why is this? Is there some 
> compilation flag I can use to disable this behaviour?
> This is causing us great pain in building PyQt when linking with our 
> local build of Qt, since the libraries needed to build are in completely 
> different locations on our build machines.
> This article mentions 
> <https://doc.qt.io/qt-5/qmake-advanced-usage.html#library-dependencies> 
> the .prl files not being portable between platforms, but surely they're 
> intended to be between machines?
> 
> Thanks!
> 
> 
> 
> 
> 
> **Simon HolmbergI Graduate Tools Programmer**
> 
> *AVALANCHE STUDIOS*
> *Malmö*I *Stockholm**I New York*
> 
> _______________________________________________
> Interest mailing list
> Interest at qt-project.org
> https://lists.qt-project.org/listinfo/interest
> 


More information about the Interest mailing list