From 1673e66047e22ec4ad7298c9bf38662e3bab5e32 Mon Sep 17 00:00:00 2001 From: Edward Welbourne Date: Wed, 7 Nov 2018 15:20:47 +0100 Subject: [PATCH] Re-order the sub-dirs to catch real culprits before things they break A failure in testlib is apt to imply misleading failures elsewhere, so catch those first. Likewise, broken tools or corelib break everything. Put the rest of the list in alphabetic order. Restructure auto.pro to use conditional SUBDIRS += (in the right order) instead of setting SUBDIRS to a full list and then doing conditional SUBDIRS -= for most entries. This more closely matches the way the generated cmake config does things, although it still doesn't regenerate cleanly. Change-Id: Idc15326c3534eb4fdce55394269f2dfbc17fcd99 Reviewed-by: Alexandru Croitor --- tests/auto/.prev_CMakeLists.txt | 41 ++++++++++++++++++++ tests/auto/CMakeLists.txt | 55 ++++++++++++++------------ tests/auto/auto.pro | 68 ++++++++++++++------------------- 3 files changed, 100 insertions(+), 64 deletions(-) create mode 100644 tests/auto/.prev_CMakeLists.txt diff --git a/tests/auto/.prev_CMakeLists.txt b/tests/auto/.prev_CMakeLists.txt new file mode 100644 index 0000000000..6bbd881af3 --- /dev/null +++ b/tests/auto/.prev_CMakeLists.txt @@ -0,0 +1,41 @@ +# Generated from auto.pro. + +add_subdirectory(testlib) +add_subdirectory(other) +if(UIKIT) + add_subdirectory(corelib) +endif() +if(TARGET Qt::Gui) + add_subdirectory(gui) +endif() +if(QT_FEATURE_process AND NOT CMAKE_CROSSCOMPILING) + add_subdirectory(tools) +endif() +if(NOT CMAKE_CROSSCOMPILING) + add_subdirectory(cmake) + add_subdirectory(installed_cmake) +endif() +if(TARGET Qt::Concurrent) + add_subdirectory(concurrent) +endif() +if((((TARGET Qt::DBus AND NOT CMAKE_CROSSCOMPILING AND NOT boot2qt) AND (system("dbus-send --session --type=signal / local.AutotestCheck.Hello >_ss_QMAKE_SYSTEM_NULL_DEVICE 2>&1"))))) + add_subdirectory(dbus) +endif() +if(TARGET Qt::Network AND NOT WINRT) + add_subdirectory(network) +endif() +if(TARGET Qt::OpenGL AND NOT WINRT) + add_subdirectory(opengl) +endif() +if(TARGET Qt::PrintSupport) + add_subdirectory(printsupport) +endif() +if(TARGET Qt::Sql) + add_subdirectory(sql) +endif() +if(TARGET Qt::Widgets) + add_subdirectory(widgets) +endif() +if(TARGET Qt::Xml) + add_subdirectory(xml) +endif() diff --git a/tests/auto/CMakeLists.txt b/tests/auto/CMakeLists.txt index 480f986830..703459bb9d 100644 --- a/tests/auto/CMakeLists.txt +++ b/tests/auto/CMakeLists.txt @@ -1,6 +1,27 @@ -# Generated from auto.pro. +# special case begin +# Order by dependency [*], then alphabetic. [*] If bugs in part A of +# our source would break tests of part B, then test A before B. +# Build only corelib and gui tests when targeting uikit (iOS), +# because the script can't handle the SUBDIRS assignment well. +if (UIKIT) + add_subdirectory(corelib) + if (TARGET Qt::Gui) + add_subdirectory(gui) + endif() + return() +endif() + +add_subdirectory(testlib) +if (NOT CMAKE_CROSSCOMPILE AND QT_FEATURE_process) + add_subdirectory(tools) +endif() add_subdirectory(corelib) +# add_subdirectory(cmake) ## FIXME: Does this still make sense in this form? +if (TARGET Qt::Concurrent) + add_subdirectory(concurrent) +endif() + if (QT_FEATURE_dbus) set(run_dbus_tests ON) if(NOT CMAKE_CROSSCOMPILING AND TARGET Qt::DBus) @@ -24,43 +45,29 @@ if (QT_FEATURE_dbus) add_subdirectory(dbus) endif() endif() + if (TARGET Qt::Gui) add_subdirectory(gui) endif() - -# special case begin -# Build only corelib and gui tests when targeting uikit (iOS), -# because the script can't handle the SUBDIRS assignment well. -if (UIKIT) - return() -endif() -# special case end - if (TARGET Qt::Network AND NOT WINRT) add_subdirectory(network) endif() if (TARGET Qt::OpenGL AND NOT WINRT) add_subdirectory(opengl) endif() +if (TARGET Qt::PrintSupport) + add_subdirectory(printsupport) +endif() if (TARGET Qt::Sql) add_subdirectory(sql) endif() -add_subdirectory(testlib) -if (NOT CMAKE_CROSSCOMPILE AND QT_FEATURE_process) - add_subdirectory(tools) +if (TARGET Qt::Widgets) + add_subdirectory(widgets) endif() if (TARGET Qt::Xml) add_subdirectory(xml) endif() -if (TARGET Qt::Concurrent) - add_subdirectory(concurrent) -endif() -add_subdirectory(other) -if (TARGET Qt::Widgets) - add_subdirectory(widgets) -endif() -if (TARGET Qt::PrintSupport) - add_subdirectory(printsupport) -endif() -# add_subdirectory(cmake) ## FIXME: Does this still make sense in this form? # add_subdirectory(installed_cmake) ## FIXME: Does this still make sense in this form? +add_subdirectory(other) + +# special case end diff --git a/tests/auto/auto.pro b/tests/auto/auto.pro index c9d1da8649..04725c16b5 100644 --- a/tests/auto/auto.pro +++ b/tests/auto/auto.pro @@ -4,51 +4,39 @@ TEMPLATE = subdirs # b88acae7a8e773c307e44f84da037d01d19e60f7 in qt5. boot2qt:qtConfig(private_tests): return() -SUBDIRS += \ - corelib \ - dbus \ - gui \ - network \ - opengl \ - sql \ - testlib \ - tools \ - xml \ - concurrent \ - other \ - widgets \ - printsupport \ - cmake \ - installed_cmake +uikit { + SUBDIRS = corelib + qtHaveModule(gui): SUBDIRS += gui + return() +} -installed_cmake.depends = cmake - -uikit: SUBDIRS = corelib gui - -cross_compile: SUBDIRS -= tools cmake installed_cmake -else:!qtConfig(process): SUBDIRS -= tools -winrt|!qtHaveModule(opengl): SUBDIRS -= opengl -!qtHaveModule(gui): SUBDIRS -= gui -!qtHaveModule(widgets): SUBDIRS -= widgets -!qtHaveModule(printsupport): SUBDIRS -= printsupport -!qtHaveModule(concurrent): SUBDIRS -= concurrent -winrt|!qtHaveModule(network): SUBDIRS -= network -!qtHaveModule(dbus): SUBDIRS -= dbus -!qtHaveModule(xml): SUBDIRS -= xml -!qtHaveModule(sql): SUBDIRS -= sql - -# Disable the QtDBus tests if we can't connect to the session bus -!cross_compile:qtHaveModule(dbus) { - !system("dbus-send --session --type=signal / local.AutotestCheck.Hello >$$QMAKE_SYSTEM_NULL_DEVICE 2>&1") { +# Order by dependency [*], then alphabetic. [*] If bugs in part A of +# our source would break tests of part B, then test A before B. +SUBDIRS += testlib +qtConfig(process):!cross_compile: SUBDIRS += tools +SUBDIRS += corelib +!cross_compile: SUBDIRS += cmake +qtHaveModule(concurrent): SUBDIRS += concurrent +# QTBUG-63915: boot2qt fails dbus +qtHaveModule(dbus):!cross_compile:!boot2qt { + # Disable the QtDBus tests if we can't connect to the session bus + system("dbus-send --session --type=signal / local.AutotestCheck.Hello >$$QMAKE_SYSTEM_NULL_DEVICE 2>&1") { + SUBDIRS += dbus + } else { qtConfig(dbus-linked): \ error("QtDBus is enabled but session bus is not available. Please check the installation.") else: \ warning("QtDBus is enabled with runtime support, but session bus is not available. Skipping QtDBus tests.") - SUBDIRS -= dbus } } +qtHaveModule(gui): SUBDIRS += gui +qtHaveModule(network):!winrt: SUBDIRS += network +qtHaveModule(opengl):!winrt: SUBDIRS += opengl +qtHaveModule(printsupport): SUBDIRS += printsupport +qtHaveModule(sql): SUBDIRS += sql +qtHaveModule(widgets): SUBDIRS += widgets +qtHaveModule(xml): SUBDIRS += xml +!cross_compile: SUBDIRS += installed_cmake +SUBDIRS += other -# QTBUG-63915 -boot2qt: { - SUBDIRS -= dbus -} +installed_cmake.depends = cmake