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

Running different builds generates different Makefiles, some .pri files are included or excluded

    XMLWordPrintable

Details

    • Suggestion
    • Resolution: Invalid
    • Not Evaluated
    • None
    • 5.5.0
    • Build tools: qmake
    • None
    • Qt5.5.0, unix, windows.

    Description

      Run multiple multiprocessing builds of Qt and observe that Makefiles are different, .pri files are included or missing from the same Makefile.
      Also some modules, that don't use modules like gui or widgets are including in their Makefiles the mkspecs/modules/qt_lib_gui.pri or mkspecs/modules/qt_lib_widgets.

      Tested in QtCreator observed that all mkspecs/modules/.pri or /mkspecs/modules-inst/.pri are included in Makefile.
      After that in the same Makefile of a module, are included only a list of them , depending on which .pro file was parsed before with qmake.

      In the command line the behavior is different, are included only a part of .pri files, in the order of what file was parsed with qmake before the current module.

      Example:
      In QtCreator for qbase/concurrent Makefile has following .pri files

      mkspecs/qconfig.pri \
      mkspecs/modules/qt_lib_3dcore.pri \
      mkspecs/modules/qt_lib_3dcore_private.pri \
      mkspecs/modules/qt_lib_3dinput.pri \
      mkspecs/modules/qt_lib_3dinput_private.pri \
      mkspecs/modules/qt_lib_3dquick.pri \
      mkspecs/modules/qt_lib_3dquick_private.pri \
      mkspecs/modules/qt_lib_3dquickrenderer.pri \
      mkspecs/modules/qt_lib_3dquickrenderer_private.pri \
      mkspecs/modules/qt_lib_3drenderer.pri \
      mkspecs/modules/qt_lib_3drenderer_private.pri \
      mkspecs/modules/qt_lib_bluetooth.pri \
      mkspecs/modules/qt_lib_bluetooth_private.pri \
      mkspecs/modules/qt_lib_bootstrap_private.pri \
      mkspecs/modules/qt_lib_clucene_private.pri \
      mkspecs/modules/qt_lib_concurrent.pri \
      mkspecs/modules/qt_lib_concurrent_private.pri \
      mkspecs/modules/qt_lib_core.pri \
      mkspecs/modules/qt_lib_core_private.pri \
      mkspecs/modules/qt_lib_dbus.pri \
      mkspecs/modules/qt_lib_dbus_private.pri \
      mkspecs/modules/qt_lib_declarative.pri \
      mkspecs/modules/qt_lib_declarative_private.pri \
      mkspecs/modules/qt_lib_designer.pri \
      mkspecs/modules/qt_lib_designer_private.pri \
      mkspecs/modules/qt_lib_designercomponents_private.pri \
      mkspecs/modules/qt_lib_enginio.pri \
      mkspecs/modules/qt_lib_enginio_private.pri \
      mkspecs/modules/qt_lib_gui.pri \
      mkspecs/modules/qt_lib_gui_private.pri \
      mkspecs/modules/qt_lib_help.pri \
      mkspecs/modules/qt_lib_help_private.pri \
      mkspecs/modules/qt_lib_location.pri \
      mkspecs/modules/qt_lib_location_private.pri \
      mkspecs/modules/qt_lib_multimedia.pri \
      mkspecs/modules/qt_lib_multimedia_private.pri \
      mkspecs/modules/qt_lib_multimediawidgets.pri \
      mkspecs/modules/qt_lib_multimediawidgets_private.pri \
      mkspecs/modules/qt_lib_network.pri \
      mkspecs/modules/qt_lib_network_private.pri \
      mkspecs/modules/qt_lib_nfc.pri \
      mkspecs/modules/qt_lib_nfc_private.pri \
      mkspecs/modules/qt_lib_opengl.pri \
      mkspecs/modules/qt_lib_opengl_private.pri \
      mkspecs/modules/qt_lib_openglextensions.pri \
      mkspecs/modules/qt_lib_openglextensions_private.pri \
      mkspecs/modules/qt_lib_platformsupport_private.pri \
      mkspecs/modules/qt_lib_positioning.pri \
      mkspecs/modules/qt_lib_positioning_private.pri \
      mkspecs/modules/qt_lib_printsupport.pri \
      mkspecs/modules/qt_lib_printsupport_private.pri \
      mkspecs/modules/qt_lib_qml.pri \
      mkspecs/modules/qt_lib_qml_private.pri \
      mkspecs/modules/qt_lib_qmldevtools_private.pri \
      mkspecs/modules/qt_lib_qmltest.pri \
      mkspecs/modules/qt_lib_qmltest_private.pri \
      mkspecs/modules/qt_lib_qtmultimediaquicktools_private.pri \
      mkspecs/modules/qt_lib_quick.pri \
      mkspecs/modules/qt_lib_quick_private.pri \
      mkspecs/modules/qt_lib_quickparticles_private.pri \
      mkspecs/modules/qt_lib_quickwidgets.pri \
      mkspecs/modules/qt_lib_quickwidgets_private.pri \
      mkspecs/modules/qt_lib_script.pri \
      mkspecs/modules/qt_lib_script_private.pri \
      mkspecs/modules/qt_lib_scripttools.pri \
      mkspecs/modules/qt_lib_scripttools_private.pri \
      mkspecs/modules/qt_lib_sensors.pri \
      mkspecs/modules/qt_lib_sensors_private.pri \
      mkspecs/modules/qt_lib_serialport.pri \
      mkspecs/modules/qt_lib_serialport_private.pri \
      mkspecs/modules/qt_lib_sql.pri \
      mkspecs/modules/qt_lib_sql_private.pri \
      mkspecs/modules/qt_lib_svg.pri \
      mkspecs/modules/qt_lib_svg_private.pri \
      mkspecs/modules/qt_lib_testlib.pri \
      mkspecs/modules/qt_lib_testlib_private.pri \
      mkspecs/modules/qt_lib_uiplugin.pri \
      mkspecs/modules/qt_lib_uitools.pri \
      mkspecs/modules/qt_lib_uitools_private.pri \
      mkspecs/modules/qt_lib_webchannel.pri \
      mkspecs/modules/qt_lib_webchannel_private.pri \
      mkspecs/modules/qt_lib_webengine.pri \
      mkspecs/modules/qt_lib_webengine_private.pri \
      mkspecs/modules/qt_lib_webenginecore.pri \
      mkspecs/modules/qt_lib_webenginecore_private.pri \
      mkspecs/modules/qt_lib_webenginewidgets.pri \
      mkspecs/modules/qt_lib_webenginewidgets_private.pri \
      mkspecs/modules/qt_lib_webkit.pri \
      mkspecs/modules/qt_lib_webkit_private.pri \
      mkspecs/modules/qt_lib_webkitwidgets.pri \
      mkspecs/modules/qt_lib_webkitwidgets_private.pri \
      mkspecs/modules/qt_lib_websockets.pri \
      mkspecs/modules/qt_lib_websockets_private.pri \
      mkspecs/modules/qt_lib_webview_private.pri \
      mkspecs/modules/qt_lib_widgets.pri \
      mkspecs/modules/qt_lib_widgets_private.pri \
      mkspecs/modules/qt_lib_x11extras.pri \
      mkspecs/modules/qt_lib_x11extras_private.pri \
      mkspecs/modules/qt_lib_xcb_qpa_lib_private.pri \
      mkspecs/modules/qt_lib_xml.pri \
      mkspecs/modules/qt_lib_xml_private.pri \
      mkspecs/modules/qt_lib_xmlpatterns.pri \
      mkspecs/modules/qt_lib_xmlpatterns_private.pri \

      and
      ../../mkspecs/modules/qt_tool_syncqt.pri \
      ../../mkspecs/modules-inst/qt_lib_bootstrap_private.pri \
      ../../mkspecs/modules/qt_lib_bootstrap_private.pri \
      ../../mkspecs/modules/qt_tool_moc.pri \
      ../../mkspecs/modules/qt_tool_rcc.pri \
      ../../mkspecs/modules-inst/qt_lib_core.pri \
      ../../mkspecs/modules-inst/qt_lib_core_private.pri \
      ../../mkspecs/modules/qt_lib_core.pri \
      ../../mkspecs/modules/qt_tool_qlalr.pri \
      ../../mkspecs/modules-inst/qt_lib_network.pri \
      ../../mkspecs/modules-inst/qt_lib_network_private.pri \
      ../../mkspecs/modules/qt_lib_network.pri \
      ../../mkspecs/modules-inst/qt_lib_sql.pri \
      ../../mkspecs/modules-inst/qt_lib_sql_private.pri \
      ../../mkspecs/modules/qt_lib_sql.pri \
      ../../mkspecs/modules-inst/qt_lib_xml.pri \
      ../../mkspecs/modules-inst/qt_lib_xml_private.pri \
      ../../mkspecs/modules/qt_lib_xml.pri \
      ../../mkspecs/modules-inst/qt_lib_testlib.pri \
      ../../mkspecs/modules-inst/qt_lib_testlib_private.pri \
      ../../mkspecs/modules/qt_lib_testlib.pri \
      ../../mkspecs/modules-inst/qt_lib_dbus.pri \
      ../../mkspecs/modules-inst/qt_lib_dbus_private.pri \
      ../../mkspecs/modules/qt_lib_dbus.pri \
      ../../mkspecs/modules/qt_tool_qdbusxml2cpp.pri \
      ../../mkspecs/modules/qt_tool_qdbuscpp2xml.pri \

      on the command line qtbase/concurrent
      ../../mkspecs/qconfig.pri \
      ../../mkspecs/modules-inst/qt_lib_bootstrap_private.pri \
      ../../mkspecs/modules/qt_lib_bootstrap_private.pri \
      ../../mkspecs/modules-inst/qt_lib_core.pri \
      ../../mkspecs/modules-inst/qt_lib_core_private.pri \
      ../../mkspecs/modules/qt_lib_core.pri \
      ../../mkspecs/modules-inst/qt_lib_dbus.pri \
      ../../mkspecs/modules-inst/qt_lib_dbus_private.pri \
      ../../mkspecs/modules/qt_lib_dbus.pri \
      ../../mkspecs/modules-inst/qt_lib_gui.pri \
      ../../mkspecs/modules-inst/qt_lib_gui_private.pri \
      ../../mkspecs/modules/qt_lib_gui.pri \
      ../../mkspecs/modules-inst/qt_lib_network.pri \
      ../../mkspecs/modules-inst/qt_lib_network_private.pri \
      ../../mkspecs/modules/qt_lib_network.pri \
      ../../mkspecs/modules-inst/qt_lib_sql.pri \
      ../../mkspecs/modules-inst/qt_lib_sql_private.pri \
      ../../mkspecs/modules/qt_lib_sql.pri \
      ../../mkspecs/modules-inst/qt_lib_testlib.pri \
      ../../mkspecs/modules-inst/qt_lib_testlib_private.pri \
      ../../mkspecs/modules/qt_lib_testlib.pri \
      ../../mkspecs/modules-inst/qt_lib_widgets.pri \
      ../../mkspecs/modules-inst/qt_lib_widgets_private.pri \
      ../../mkspecs/modules/qt_lib_widgets.pri \
      ../../mkspecs/modules-inst/qt_lib_xml.pri \
      ../../mkspecs/modules-inst/qt_lib_xml_private.pri \
      ../../mkspecs/modules/qt_lib_xml.pri \
      ../../mkspecs/modules/qt_tool_moc.pri \
      ../../mkspecs/modules/qt_tool_qdbuscpp2xml.pri \
      ../../mkspecs/modules/qt_tool_qdbusxml2cpp.pri \
      ../../mkspecs/modules/qt_tool_qlalr.pri \
      ../../mkspecs/modules/qt_tool_rcc.pri \
      ../../mkspecs/modules/qt_tool_syncqt.pri \
      ../../mkspecs/modules/qt_tool_uic.pri \

      With differences when multiprocessing is applied, some .pri are included , others not.
      It was used a shadow build on QtCreator and a -prefix for command line build.

      I think there must be a uniform way of including the .pri files inside of Makefiles, or based on dependencies or they must be included all from modules and modules-inst, or maybe there is another way of solving it.

      Attachments

        Issue Links

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

          Activity

            People

              buddenha Oswald Buddenhagen
              ioanabac Ioana Baciu
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes