Details
-
Bug
-
Resolution: Done
-
P1: Critical
-
5.13.2
-
None
-
-
99e43db7cea1c838993c151d2d40fc2874a94256 (qt/qtbase/5.13) 13c19db171ffaebb748e521f75a59f96c44cedca (qt/qtbase/5.12)
Description
After upgrading our Qt build to 5.13.2, it fails to detect the conan provided xkbcommon library. It looks like the tested path is wrong and contains the "-lxkbcommon" fragment. The CI build breaks there, locally it works, because it falls back to the system wide installed xkbcommon.
looking for library xkbcommon Trying source 0 (type pkgConfig) of library xkbcommon ... + /usr/bin/pkg-config --exists --silence-errors xkbcommon '>=' 0.5.0 + /usr/bin/pkg-config --modversion xkbcommon '>=' 0.5.0 > 0.9.1 + /usr/bin/pkg-config --libs-only-L xkbcommon '>=' 0.5.0 > -L/home/cajus/.conan/data/xkbcommon/0.9.1/bje/stable/package/6756a33adbba20e4647edf250d8e244a9b00ac56/lib + /usr/bin/pkg-config --libs-only-l xkbcommon '>=' 0.5.0 > -lxkbcommon + /usr/bin/pkg-config --static --libs xkbcommon '>=' 0.5.0 > -L/home/cajus/.conan/data/xkbcommon/0.9.1/bje/stable/package/6756a33adbba20e4647edf250d8e244a9b00ac56/lib -lxkbcommon Library path "/home/cajus/.conan/data/xkbcommon/0.9.1/bje/stable/package/6756a33adbba20e4647edf250d8e244a9b00ac56/lib -lxkbcommon " is invalid. => source produced no result.
Reverting a change from 5.13.1 to 5.13.2 makes it build again:
diff -Naur a/qtbase/mkspecs/features/qt_configure.prf b/qtbase/mkspecs/features/qt_configure.prf --- a/qtbase/mkspecs/features/qt_configure.prf 2019-10-25 09:16:48.000000000 +0200 +++ b/qtbase/mkspecs/features/qt_configure.prf 2019-10-31 12:29:20.005452793 +0100 @@ -825,7 +825,9 @@ !qtConfResolveLibs($${1}.libs, $$libs): \ return(false) contains($${1}.libs, ".*\\.$${QMAKE_EXTENSION_STATICLIB}$") { - qtRunLoggedCommand("$$pkg_config --static --libs $$args", libs)|return(false) + qtRunLoggedCommand("$$pkg_config --static --libs-only-L $$args", libpaths)|return(false) + qtRunLoggedCommand("$$pkg_config --static --libs-only-l $$args", libs)|return(false) + eval(libs = $$libpaths $$libs) !qtConfResolveLibs($${1}.libs, $$libs): \ return(false) }