Details
-
Bug
-
Resolution: Unresolved
-
P2: Important
-
None
-
6.6.1
-
None
Description
on windows, the QT_* paths returned via qmake always follow the defaults,
even when INSTALL_*DIR are set at configure time.
When I set these to versioned names (in order to avoid conflict with files from the qt5 package):
cmake -DINSTALL_BINDIR=lib/qt6/bin ^ -DINSTALL_PUBLICBINDIR=bin ^ -DINSTALL_LIBEXECDIR=lib/qt6 ^ -DINSTALL_DOCDIR=share/doc/qt6 ^ -DINSTALL_ARCHDATADIR=lib/qt6 ^ -DINSTALL_DATADIR=share/qt6 ^ -DINSTALL_INCLUDEDIR=include/qt6 ^ -DINSTALL_MKSPECSDIR=lib/qt6/mkspecs ^ -DINSTALL_EXAMPLESDIR=share/doc/qt6/examples ^ -DINSTALL_DATADIR=share/qt6
then qmake -query returns wrong QT_HOST* folders (relatively to the prefix):
QT_INSTALL_PREFIX:C:/bld/qt6-main_1704357095921/_h_env/Library QT_INSTALL_ARCHDATA:C:/bld/qt6-main_1704357095921/_h_env/Library/lib/qt6 QT_INSTALL_DATA:C:/bld/qt6-main_1704357095921/_h_env/Library/share/qt6 QT_INSTALL_DOCS:C:/bld/qt6-main_1704357095921/_h_env/Library/share/doc/qt6 QT_INSTALL_HEADERS:C:/bld/qt6-main_1704357095921/_h_env/Library/include/qt6 QT_INSTALL_LIBS:C:/bld/qt6-main_1704357095921/_h_env/Library/lib QT_INSTALL_LIBEXECS:C:/bld/qt6-main_1704357095921/_h_env/Library/lib/qt6 QT_INSTALL_BINS:C:/bld/qt6-main_1704357095921/_h_env/Library/lib/qt6/bin QT_INSTALL_TESTS:C:/bld/qt6-main_1704357095921/_h_env/Library/tests QT_INSTALL_PLUGINS:C:/bld/qt6-main_1704357095921/_h_env/Library/lib/qt6/plugins QT_INSTALL_QML:C:/bld/qt6-main_1704357095921/_h_env/Library/lib/qt6/qml QT_INSTALL_TRANSLATIONS:C:/bld/qt6-main_1704357095921/_h_env/Library/share/qt6/translations QT_INSTALL_CONFIGURATION: QT_INSTALL_EXAMPLES:C:/bld/qt6-main_1704357095921/_h_env/Library/share/doc/qt6/examples QT_INSTALL_DEMOS:C:/bld/qt6-main_1704357095921/_h_env/Library/share/doc/qt6/examples QT_HOST_PREFIX:C:/bld/qt6-main_1704357095921/_h_env/Library QT_HOST_DATA:C:/bld/qt6-main_1704357095921/_h_env/Library QT_HOST_BINS:C:/bld/qt6-main_1704357095921/_h_env/Library/bin QT_HOST_LIBEXECS:C:/bld/qt6-main_1704357095921/_h_env/Library/bin QT_HOST_LIBS:C:/bld/qt6-main_1704357095921/_h_env/Library/lib
we can see QT_INSTALL* folders are ok though
it seems these are used to compute locations for moc, mkspecs etc, so it messes qmake builds
To workaround the problem it seems I can manually patch the defaults:
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp index a8934fa38c..523ac4f808 100644 --- a/qtbase/src/corelib/global/qlibraryinfo.cpp +++ b/qtbase/src/corelib/global/qlibraryinfo.cpp @@ -458,19 +458,19 @@ QLibraryInfoPrivate::LocationInfo QLibraryInfoPrivate::locationInfo(QLibraryInfo "Prefix", ".", "Documentation", "doc", // should be ${Data}/doc "Headers", "include", - "Libraries", "lib", + "Libraries", "Library/lib", #ifdef Q_OS_WIN - "LibraryExecutables", "bin", + "LibraryExecutables", "Library/lib/qt6", #else "LibraryExecutables", "libexec", // should be ${ArchData}/libexec #endif - "Binaries", "bin", + "Binaries", "Library/lib/qt6", "Plugins", "plugins", // should be ${ArchData}/plugins "QmlImports", "qml", // should be ${ArchData}/qml "ArchData", ".", - "Data", ".", + "Data", "Library/share/qt6", "Translations", "translations", // should be ${Data}/translations "Examples", "examples", "Tests", "tests"
then the QT_HOST* paths returned seem ok:
QT_HOST_PREFIX:C:/bld/qt6-main_1704299289811/_h_env/Library QT_HOST_DATA:C:/bld/qt6-main_1704299289811/_h_env/Library/share/qt6 QT_HOST_BINS:C:/bld/qt6-main_1704299289811/_h_env/Library/lib/qt6 QT_HOST_LIBEXECS:C:/bld/qt6-main_1704299289811/_h_env/Library/lib/qt6 QT_HOST_LIBS:C:/bld/qt6-main_1704299289811/_h_env/Library/lib