Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-120515

QT_* paths unconditionnally set to defaults when qt.conf is present

    XMLWordPrintable

Details

    • Bug
    • Resolution: Unresolved
    • P2: Important
    • None
    • 6.6.1
    • Build tools: qmake
    • None
    • Windows

    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

       

       

       

       

       

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            qtbuildsystem Qt Build System Team
            jschueller Julien Schueller
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:

              Gerrit Reviews

                There are no open Gerrit changes