Skip to content

Commit 9d6d744

Browse files
committed
Make Mapplauncherd support optional
It's worth revisiting if this makes sense to keep as a dependency with some repeatable benchmarks where a quantifiable difference may or may not be observed when running this on a watch. If this is to be removed cmake/FindMapplauncherd_qt*.cmake additionally should also be gone.
1 parent 8aa3368 commit 9d6d744

File tree

3 files changed

+25
-4
lines changed

3 files changed

+25
-4
lines changed

CMakeLists.txt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ find_package(ECM REQUIRED NO_MODULE)
99
set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
1010

1111
option(WITH_ASTEROIDAPP "Build the AsteroidApp class" ON)
12+
option(WITH_MAPPLAUNCHERD "Build the AsteroidApp class with Mapplauncherd booster support" ON)
1213
option(WITH_CMAKE_MODULES "Install AsteroidOS CMake modules" ON)
1314

1415
include(FeatureSummary)
@@ -22,7 +23,9 @@ set(ASTEROID_MODULES_INSTALL_DIR ${CMAKE_INSTALL_DATADIR}/asteroidapp/cmake)
2223
find_package(Qt6 ${QT_MIN_VERSION} COMPONENTS DBus Qml Quick Svg ShaderTools REQUIRED)
2324
if (WITH_ASTEROIDAPP)
2425
find_package(Mlite6 MODULE REQUIRED)
25-
find_package(Mapplauncherd_qt6 MODULE REQUIRED)
26+
if (WITH_MAPPLAUNCHERD)
27+
find_package(Mapplauncherd_qt6 MODULE REQUIRED)
28+
endif()
2629
endif()
2730

2831
ecm_find_qmlmodule(QtQuick.VirtualKeyboard 2.1)

src/app/CMakeLists.txt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,13 @@ target_link_libraries(asteroidapp
99
Qt6::Quick
1010
PRIVATE
1111
Mlite6::Mlite6
12-
Mapplauncherd_qt6::Mapplauncherd_qt6)
12+
$<$<BOOL:${WITH_MAPPLAUNCHERD}>:Mapplauncherd_qt6::Mapplauncherd_qt6>)
1313

1414
set_target_properties(asteroidapp PROPERTIES
1515
EXPORT_NAME AsteroidApp
1616
SOVERSION ${PROJECT_VERSION_MAJOR}
17-
VERSION ${PROJECT_VERSION})
17+
VERSION ${PROJECT_VERSION}
18+
COMPILE_DEFINITIONS $<$<BOOL:${WITH_MAPPLAUNCHERD}>:WITH_MAPPLAUNCHERD=1>)
1819

1920
target_include_directories(asteroidapp PUBLIC
2021
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
@@ -34,9 +35,12 @@ install(FILES asteroidapp.prf
3435
DESTINATION ${CMAKE_INSTALL_LIBDIR}/mkspecs/features
3536
COMPONENT Devel)
3637

38+
if (WITH_MAPPLAUNCHERD)
39+
set(ASTEROIDAPP_PKGCONF_DEPS "qdeclarative6-boostable")
40+
endif()
3741
ecm_generate_pkgconfig_file(
3842
BASE_NAME asteroidapp
39-
DEPS qdeclarative6-boostable
43+
DEPS ${ASTEROIDAPP_PKGCONF_DEPS}
4044
FILENAME_VAR asteroidapp
4145
DESCRIPTION ${PROJECT_DESCRIPTION}
4246
INSTALL)

src/app/asteroidapp.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <QFileInfo>
3434
#include <MDesktopEntry>
3535
#include <QTranslator>
36+
#if WITH_MAPPLAUNCHERD
3637
#include <mdeclarativecache/MDeclarativeCache>
3738

3839
static QString applicationPath()
@@ -47,11 +48,16 @@ static QString applicationPath()
4748
return QCoreApplication::applicationFilePath();
4849
}
4950
}
51+
#endif
5052

5153
namespace AsteroidApp {
5254
QString appName()
5355
{
56+
#if WITH_MAPPLAUNCHERD
5457
QFileInfo exe = QFileInfo(applicationPath());
58+
#else
59+
QFileInfo exe = QFileInfo(QCoreApplication::applicationFilePath());
60+
#endif
5561
return exe.baseName();
5662
}
5763

@@ -60,7 +66,11 @@ namespace AsteroidApp {
6066
static QGuiApplication *app = NULL;
6167

6268
if (app == NULL) {
69+
#if WITH_MAPPLAUNCHERD
6370
app = MDeclarativeCache::qApplication(argc, argv);
71+
#else
72+
app = new QGuiApplication(argc, argv);
73+
#endif
6474

6575
app->setOrganizationName(appName());
6676
app->setOrganizationDomain(appName());
@@ -78,7 +88,11 @@ namespace AsteroidApp {
7888

7989
QQuickView *createView()
8090
{
91+
#if WITH_MAPPLAUNCHERD
8192
QQuickView *view = MDeclarativeCache::qQuickView();
93+
#else
94+
QQuickView *view = new QQuickView;
95+
#endif
8296
MDesktopEntry entry("/usr/share/applications/" + appName() + ".desktop");
8397
if (entry.isValid()) {
8498
view->setTitle(entry.name());

0 commit comments

Comments
 (0)