Details
-
Suggestion
-
Resolution: Invalid
-
Not Evaluated
-
None
-
5.5.0
-
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
- relates to
-
QTBUG-53393 parallel static builds break due to premature plugin registration
- Closed