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

forwarding module pris are unnecessarily created for non-prefix builds

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P2: Important
    • 5.0.2
    • 5.0.0
    • None
    • Windows 7 64 bits and Visual Studio 2012
    • 6654a05fcad565a302e205e7f7deaa0b2757082d,4c34b418b89681d1228ab24749f4462bf0054d56,04478614c1f21de8ff9abb7fe9dc64c672065695

    Description

      Hi,

      I've built Qt 5.0 for win32-msvc2012 into D:/dev/qt-everywhere-opensource-src-5.0.0/
      Then, because I want to distribute this binaries to a few friends, I moved it to another location and created a qt.conf in the qbase\bin folder so that qmake and other binaries know where to look for their stuff.

      Here is my qt.conf (in qtbase\bin)

      [Paths]
      Prefix=..
      Documentation=doc
      Headers=include
      Libraries=lib
      Binaries=bin
      Plugins=plugins
      Qml2Imports=qml
      Imports=imports
      Data=.
      ArchData=.
      Translations=translations

      Basically saying to use qtbase as root folder.

      Then I did a qmake -query and it looked fine, I could see my changes were taken into account. But then, when I did a basic qmake, I ended up with the error

      D:/dev/git-repo/ant/ThirdParty/Qt-5.0/msvc2012-x64-sse4.2/mkspecs/modules/qt_lib_axbase.pri:8: WARNING: Include file D:/dev/qt-everywhere-opensource-src-5.0.0/qtbase/mkspecs/modules-nst/qt_lib_axbase.pri not found

      So it means my new location (D:/dev/git-repo/ant/ThirdParty/Qt-5.0/msvc2012-x64-sse4.2) is still trying to read something from the old location (D:/dev/qt-everywhere-opensource-src-5.0.0)

      And when I opended qt_lib_axbase.pri, I saw an horrible thing, hardcoded paths to the old location:

      QT_MODULE_BIN_BASE = D:/dev/qt-everywhere-opensource-src-5.0.0/qtbase/bin
      QT_MODULE_INCLUDE_BASE = D:/dev/qt-everywhere-opensource-src-5.0.0/qtbase/include
      QT_MODULE_IMPORT_BASE = D:/dev/qt-everywhere-opensource-src-5.0.0/qtbase/imports
      QT_MODULE_QML_BASE = D:/dev/qt-everywhere-opensource-src-5.0.0/qtbase/qml
      QT_MODULE_LIB_BASE = D:/dev/qt-everywhere-opensource-src-5.0.0/qtbase/lib
      QT_MODULE_LIBEXEC_BASE = D:/dev/qt-everywhere-opensource-src-5.0.0/qtbase/libexec
      QT_MODULE_PLUGIN_BASE = D:/dev/qt-everywhere-opensource-src-5.0.0/qtbase/plugins
      include(D:/dev/qt-everywhere-opensource-src-5.0.0/qtbase/mkspecs/modules-inst/qt_lib_axbase.pri)

      The expected behavior is a way to avoid/override any of these hard coded paths, using qt.conf and a property for mkspec/modules/features.

      I really see no reason why we could not move Qt to another location, wasn't that the point of qt.conf? Is there a workaround using qt.conf? Because I could not find it (by the way the documentation is a bit light).

      Attachments

        For Gerrit Dashboard: QTBUG-28827
        # Subject Branch Project Status CR V

        Activity

          People

            buddenha Oswald Buddenhagen
            mpalomas Michaƫl Palomas
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes