summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--application-manager.pro6
-rw-r--r--doc/doc.pro3
-rw-r--r--examples/applicationmanager/applicationmanager.pro4
-rw-r--r--qmake-features/am-config.prf2
-rw-r--r--src/main-lib/main-lib.pro4
-rw-r--r--src/main-lib/main.cpp8
-rw-r--r--src/main-lib/windowframetimer.h4
-rw-r--r--src/manager-lib/qmlinprocessruntime.h2
-rw-r--r--src/monitor-lib/monitor-lib.pro3
-rw-r--r--src/shared-main-lib/frametimer.h4
-rw-r--r--src/shared-main-lib/gpustatus.h3
-rw-r--r--src/shared-main-lib/shared-main-lib.pro12
-rw-r--r--src/shared-main-lib/sharedmain.cpp11
-rw-r--r--src/src.pro4
-rw-r--r--src/tools/launcher-qml/launcher-qml.cpp12
-rw-r--r--src/tools/testrunner/testrunner.pro2
-rw-r--r--tests/qml/qml.pro4
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 \