diff options
-rw-r--r-- | application-manager.pro | 6 | ||||
-rw-r--r-- | doc/doc.pro | 3 | ||||
-rw-r--r-- | examples/applicationmanager/applicationmanager.pro | 4 | ||||
-rw-r--r-- | qmake-features/am-config.prf | 2 | ||||
-rw-r--r-- | src/main-lib/main-lib.pro | 4 | ||||
-rw-r--r-- | src/main-lib/main.cpp | 8 | ||||
-rw-r--r-- | src/main-lib/windowframetimer.h | 4 | ||||
-rw-r--r-- | src/manager-lib/qmlinprocessruntime.h | 2 | ||||
-rw-r--r-- | src/monitor-lib/monitor-lib.pro | 3 | ||||
-rw-r--r-- | src/shared-main-lib/frametimer.h | 4 | ||||
-rw-r--r-- | src/shared-main-lib/gpustatus.h | 3 | ||||
-rw-r--r-- | src/shared-main-lib/shared-main-lib.pro | 12 | ||||
-rw-r--r-- | src/shared-main-lib/sharedmain.cpp | 11 | ||||
-rw-r--r-- | src/src.pro | 4 | ||||
-rw-r--r-- | src/tools/launcher-qml/launcher-qml.cpp | 12 | ||||
-rw-r--r-- | src/tools/testrunner/testrunner.pro | 2 | ||||
-rw-r--r-- | tests/qml/qml.pro | 4 |
17 files changed, 73 insertions, 15 deletions
diff --git a/application-manager.pro b/application-manager.pro index 38694938..b4b39fb9 100644 --- a/application-manager.pro +++ b/application-manager.pro @@ -22,11 +22,13 @@ else:contains(QT_BUILD_PARTS, "examples"):CONFIG += enable-examples load(configure) qtCompileTest(libarchive) qtCompileTest(libyaml) - !headless:qtCompileTest(touchemulation) + !headless:qtHaveModule(gui):qtCompileTest(touchemulation) } qtHaveModule(waylandcompositor):CONFIG += am_compatible_compositor +load(am-config) + force-single-process:force-multi-process:error("You cannot both specify force-single-process and force-multi-process") force-multi-process:!headless:!am_compatible_compositor:error("You forced multi-process mode, but the QtCompositor module is not available") @@ -34,8 +36,6 @@ if(linux|force-libcrypto) { !if(contains(QT_CONFIG,"openssl")|contains(QT_CONFIG,"openssl-linked")|contains(QT_CONFIG,"ssl")):error("Qt was built without OpenSSL support.") } -load(am-config) - !config_libyaml|no-system-libyaml { force-system-libyaml:error("Could not find a system installation for libyaml.") else:SUBDIRS += 3rdparty/libyaml/libyaml.pro diff --git a/doc/doc.pro b/doc/doc.pro index e2288769..bab88435 100644 --- a/doc/doc.pro +++ b/doc/doc.pro @@ -2,7 +2,8 @@ TEMPLATE = aux # setup the correct include paths for qdoc CONFIG += force_qt -QT *= core network quick +QT = core network +qtHaveModule(quick):QT *= quick # needed for the new clang based qdoc parser in Qt 5.11 !prefix_build:INCLUDEPATH *= $$[QT_INSTALL_HEADERS] diff --git a/examples/applicationmanager/applicationmanager.pro b/examples/applicationmanager/applicationmanager.pro index 8231c457..49cc2c82 100644 --- a/examples/applicationmanager/applicationmanager.pro +++ b/examples/applicationmanager/applicationmanager.pro @@ -1,3 +1,7 @@ +load(am-config) + +requires(!headless) + TEMPLATE = subdirs SUBDIRS = \ diff --git a/qmake-features/am-config.prf b/qmake-features/am-config.prf index 3ddfe8b2..113013e7 100644 --- a/qmake-features/am-config.prf +++ b/qmake-features/am-config.prf @@ -5,6 +5,8 @@ CONFIG *= no_private_qt_headers_warning hide_symbols CONFIG -= app_bundle qml_debug CONFIG += exceptions +!qtHaveModule(gui):CONFIG *= headless + DEFINES += QT_MESSAGELOGCONTEXT win32-msvc*:QMAKE_CXXFLAGS += /FS /wd4290 /DNOMINMAX /D_CRT_SECURE_NO_WARNINGS diff --git a/src/main-lib/main-lib.pro b/src/main-lib/main-lib.pro index 364812b7..826caf86 100644 --- a/src/main-lib/main-lib.pro +++ b/src/main-lib/main-lib.pro @@ -33,12 +33,16 @@ HEADERS += \ configuration.h \ main.h \ defaultconfiguration.h \ + +!headless:HEADERS += \ windowframetimer.h \ SOURCES += \ main.cpp \ configuration.cpp \ defaultconfiguration.cpp \ + +!headless:SOURCES += \ windowframetimer.cpp \ load(qt_module) diff --git a/src/main-lib/main.cpp b/src/main-lib/main.cpp index 7c65ae52..0ebc6211 100644 --- a/src/main-lib/main.cpp +++ b/src/main-lib/main.cpp @@ -128,6 +128,7 @@ # endif # include "touchemulation.h" # include "windowframetimer.h" +# include "gpustatus.h" #endif #include "configuration.h" @@ -141,7 +142,6 @@ // monitor-lib #include "cpustatus.h" -#include "gpustatus.h" #include "iostatus.h" #include "memorystatus.h" #include "monitormodel.h" @@ -627,8 +627,10 @@ void Main::setupQmlEngine(const QStringList &importPaths, const QString &quickCo // monitor-lib qmlRegisterType<CpuStatus>("QtApplicationManager", 2, 0, "CpuStatus"); +#if !defined(AM_HEADLESS) qmlRegisterType<WindowFrameTimer>("QtApplicationManager", 2, 0, "FrameTimer"); qmlRegisterType<GpuStatus>("QtApplicationManager", 2, 0, "GpuStatus"); +#endif qmlRegisterType<IoStatus>("QtApplicationManager", 2, 0, "IoStatus"); qmlRegisterType<MemoryStatus>("QtApplicationManager", 2, 0, "MemoryStatus"); qmlRegisterType<MonitorModel>("QtApplicationManager", 2, 0, "MonitorModel"); @@ -694,6 +696,9 @@ void Main::setupWindowManager(const QString &waylandSocketName, bool slowAnimati void Main::setupTouchEmulation(bool enableTouchEmulation) { +#if defined(AM_HEADLESS) + Q_UNUSED(enableTouchEmulation) +#else if (enableTouchEmulation) { if (TouchEmulation::isSupported()) { if (QTouchDevice::devices().isEmpty()) { @@ -709,6 +714,7 @@ void Main::setupTouchEmulation(bool enableTouchEmulation) "build time or the platform does not support it."; } } +#endif } void Main::loadQml(bool loadDummyData) Q_DECL_NOEXCEPT_EXPR(false) diff --git a/src/main-lib/windowframetimer.h b/src/main-lib/windowframetimer.h index e81d3386..098cacff 100644 --- a/src/main-lib/windowframetimer.h +++ b/src/main-lib/windowframetimer.h @@ -42,6 +42,8 @@ #pragma once +#if !defined(AM_HEADLESS) + #include <QtAppManSharedMain/frametimer.h> #include <QtAppManCommon/global.h> @@ -72,3 +74,5 @@ private: }; QT_END_NAMESPACE_AM + +#endif // !AM_HEADLESS diff --git a/src/manager-lib/qmlinprocessruntime.h b/src/manager-lib/qmlinprocessruntime.h index 8c0281dc..f2d57eb6 100644 --- a/src/manager-lib/qmlinprocessruntime.h +++ b/src/manager-lib/qmlinprocessruntime.h @@ -82,7 +82,9 @@ public: public slots: bool start() override; void stop(bool forceKill = false) override; +#if !defined(AM_HEADLESS) void stopIfNoVisibleSurfaces(); +#endif signals: void aboutToStop(); // used for the ApplicationInterface diff --git a/src/monitor-lib/monitor-lib.pro b/src/monitor-lib/monitor-lib.pro index 8d87e102..dc8fb5ae 100644 --- a/src/monitor-lib/monitor-lib.pro +++ b/src/monitor-lib/monitor-lib.pro @@ -4,7 +4,8 @@ MODULE = appman_monitor load(am-config) -QT = core gui +QT = core +!headless: QT *= gui QT_FOR_PRIVATE *= \ appman_common-private \ diff --git a/src/shared-main-lib/frametimer.h b/src/shared-main-lib/frametimer.h index b7a00d78..384f9a09 100644 --- a/src/shared-main-lib/frametimer.h +++ b/src/shared-main-lib/frametimer.h @@ -42,6 +42,8 @@ #pragma once +#if !defined(AM_HEADLESS) + #include <QElapsedTimer> #include <QObject> #include <QPointer> @@ -132,3 +134,5 @@ private: }; QT_END_NAMESPACE_AM + +#endif // !AM_HEADLESS diff --git a/src/shared-main-lib/gpustatus.h b/src/shared-main-lib/gpustatus.h index 9cc308b6..e7e23f7c 100644 --- a/src/shared-main-lib/gpustatus.h +++ b/src/shared-main-lib/gpustatus.h @@ -42,6 +42,8 @@ #pragma once +#if !defined(AM_HEADLESS) + #include <QtAppManCommon/global.h> #include <QtAppManMonitor/systemreader.h> @@ -78,3 +80,4 @@ private: QT_END_NAMESPACE_AM +#endif // !AM_HEADLESS diff --git a/src/shared-main-lib/shared-main-lib.pro b/src/shared-main-lib/shared-main-lib.pro index 964f0d0c..607dd701 100644 --- a/src/shared-main-lib/shared-main-lib.pro +++ b/src/shared-main-lib/shared-main-lib.pro @@ -16,8 +16,6 @@ HEADERS += \ sharedmain.h \ qmllogger.h \ cpustatus.h \ - frametimer.h \ - gpustatus.h \ iostatus.h \ memorystatus.h \ monitormodel.h \ @@ -26,10 +24,16 @@ SOURCES += \ sharedmain.cpp \ qmllogger.cpp \ cpustatus.cpp \ - frametimer.cpp \ - gpustatus.cpp \ iostatus.cpp \ memorystatus.cpp \ monitormodel.cpp \ +!headless:HEADERS += \ + frametimer.h \ + gpustatus.h \ + +!headless:SOURCES += \ + frametimer.cpp \ + gpustatus.cpp \ + load(qt_module) diff --git a/src/shared-main-lib/sharedmain.cpp b/src/shared-main-lib/sharedmain.cpp index 4a5b91b9..647eb91f 100644 --- a/src/shared-main-lib/sharedmain.cpp +++ b/src/shared-main-lib/sharedmain.cpp @@ -49,7 +49,6 @@ #include <QVariant> #include <QFileInfo> #include <QLibrary> -#include <QIcon> #include <QStandardPaths> #include <QQmlDebuggingEnabler> #include <QQmlComponent> @@ -59,6 +58,7 @@ #if !defined(AM_HEADLESS) # include <QGuiApplication> +# include <QIcon> # include <private/qopenglcontext_p.h> #endif @@ -123,8 +123,13 @@ int &SharedMain::preConstructor(int &argc) void SharedMain::setupIconTheme(const QStringList &themeSearchPaths, const QString &themeName) { +#if defined(AM_HEADLESS) + Q_UNUSED(themeSearchPaths) + Q_UNUSED(themeName) +#else QIcon::setThemeSearchPaths(themeSearchPaths); QIcon::setThemeName(themeName); +#endif } void SharedMain::setupQmlDebugging(bool qmlDebugging) @@ -158,7 +163,9 @@ void SharedMain::setupLogging(bool verbose, const QStringList &loggingRules, con void SharedMain::setupOpenGL(const QVariantMap &openGLConfiguration) { -#if !defined(AM_HEADLESS) +#if defined(AM_HEADLESS) + Q_UNUSED(openGLConfiguration) +#else QString profileName = openGLConfiguration.value(qSL("desktopProfile")).toString(); int majorVersion = openGLConfiguration.value(qSL("esMajorVersion"), -1).toInt(); int minorVersion = openGLConfiguration.value(qSL("esMinorVersion"), -1).toInt(); diff --git a/src/src.pro b/src/src.pro index c1b427ee..63e95d48 100644 --- a/src/src.pro +++ b/src/src.pro @@ -104,7 +104,9 @@ SUBDIRS = \ qtHaveModule(qml):qtHaveModule(dbus):SUBDIRS += \ launcher_lib \ - # This tool links against everything to extract the Qml type information + + # This tool links against everything to extract the Qml type information + qtHaveModule(qml):qtHaveModule(dbus):!headless:SUBDIRS += \ tools_dumpqmltypes \ multi-process:qtHaveModule(qml):qtHaveModule(dbus):SUBDIRS += \ diff --git a/src/tools/launcher-qml/launcher-qml.cpp b/src/tools/launcher-qml/launcher-qml.cpp index ff52ea11..9ff121a7 100644 --- a/src/tools/launcher-qml/launcher-qml.cpp +++ b/src/tools/launcher-qml/launcher-qml.cpp @@ -94,8 +94,10 @@ // shared-main-lib #include "cpustatus.h" -#include "frametimer.h" -#include "gpustatus.h" +#if !defined(AM_HEADLESS) +# include "frametimer.h" +# include "gpustatus.h" +#endif #include "iostatus.h" #include "memorystatus.h" #include "monitormodel.h" @@ -185,16 +187,20 @@ Controller::Controller(LauncherMain *a, bool quickLaunched, const QString &direc // monitor-lib qmlRegisterType<CpuStatus>("QtApplicationManager", 2, 0, "CpuStatus"); +#if !defined(AM_HEADLESS) qmlRegisterType<FrameTimer>("QtApplicationManager", 2, 0, "FrameTimer"); qmlRegisterType<GpuStatus>("QtApplicationManager", 2, 0, "GpuStatus"); +#endif qmlRegisterType<IoStatus>("QtApplicationManager", 2, 0, "IoStatus"); qmlRegisterType<MemoryStatus>("QtApplicationManager", 2, 0, "MemoryStatus"); qmlRegisterType<MonitorModel>("QtApplicationManager", 2, 0, "MonitorModel"); // monitor-lib qmlRegisterType<CpuStatus>("QtApplicationManager", 1, 0, "CpuStatus"); +#if !defined(AM_HEADLESS) qmlRegisterType<FrameTimer>("QtApplicationManager", 1, 0, "FrameTimer"); qmlRegisterType<GpuStatus>("QtApplicationManager", 1, 0, "GpuStatus"); +#endif qmlRegisterType<IoStatus>("QtApplicationManager", 1, 0, "IoStatus"); qmlRegisterType<MemoryStatus>("QtApplicationManager", 1, 0, "MemoryStatus"); qmlRegisterType<MonitorModel>("QtApplicationManager", 1, 0, "MonitorModel"); @@ -369,6 +375,7 @@ void Controller::startApplication(const QString &baseDir, const QString &qmlFile LauncherMain::instance(), &LauncherMain::setSlowAnimations); } +#if !defined(AM_HEADLESS) // Going through the LauncherMain instance here is a bit weird, and should be refactored // sometime. Having the flag there makes sense though, because this class can also be used for // custom launchers. @@ -379,6 +386,7 @@ void Controller::startApplication(const QString &baseDir, const QString &qmlFile // we need to catch all show events to apply the slow-animations QCoreApplication::instance()->installEventFilter(this); +#endif QStringList startupPluginFiles = variantToStringList(m_configuration.value(qSL("plugins")).toMap().value(qSL("startup"))); auto startupPlugins = loadPlugins<StartupInterface>("startup", startupPluginFiles); diff --git a/src/tools/testrunner/testrunner.pro b/src/tools/testrunner/testrunner.pro index aa4817bd..c097dba8 100644 --- a/src/tools/testrunner/testrunner.pro +++ b/src/tools/testrunner/testrunner.pro @@ -1,5 +1,7 @@ include(../appman/appman.pro) +requires(!headless) + TARGET = appman-qmltestrunner DEFINES += AM_TESTRUNNER diff --git a/tests/qml/qml.pro b/tests/qml/qml.pro index f38d31cf..8a0cd59f 100644 --- a/tests/qml/qml.pro +++ b/tests/qml/qml.pro @@ -1,3 +1,7 @@ +load(am-config) + +requires(!headless) + TEMPLATE = subdirs SUBDIRS = \ simple \ |