refact: restructure project

1. adjust project structure;
2. use config.h to locate app-launch-helper binary.
This commit is contained in:
black-desk
2023-08-07 14:25:22 +08:00
committed by Comix
parent fe284e78b6
commit 4687265e65
30 changed files with 208 additions and 155 deletions

31
src/dbus/CMakeLists.txt Normal file
View File

@ -0,0 +1,31 @@
add_library(dde_am_dbus OBJECT)
file(
GLOB_RECURSE dde_am_dbus_SOURCE
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp
${CMAKE_CURRENT_SOURCE_DIR}/*.h
)
qt_add_dbus_adaptor(dde_am_dbus_SOURCE ${PROJECT_SOURCE_DIR}/api/dbus/org.desktopspec.ApplicationManager1.xml dbus/applicationmanager1service.h ApplicationManager1Service)
qt_add_dbus_adaptor(dde_am_dbus_SOURCE ${PROJECT_SOURCE_DIR}/api/dbus/org.desktopspec.ApplicationManager1.Application.xml dbus/applicationservice.h ApplicationService)
qt_add_dbus_adaptor(dde_am_dbus_SOURCE ${PROJECT_SOURCE_DIR}/api/dbus/org.desktopspec.ApplicationManager1.Instance.xml dbus/instanceservice.h InstanceService)
qt_add_dbus_adaptor(dde_am_dbus_SOURCE ${PROJECT_SOURCE_DIR}/api/dbus/org.desktopspec.JobManager1.xml dbus/jobmanager1service.h JobManager1Service)
qt_add_dbus_adaptor(dde_am_dbus_SOURCE ${PROJECT_SOURCE_DIR}/api/dbus/org.desktopspec.JobManager1.Job.xml dbus/jobservice.h JobService)
target_sources(dde_am_dbus PRIVATE
${dde_am_dbus_SOURCE}
)
target_link_libraries(
dde_am_dbus PUBLIC
Qt${QT_VERSION_MAJOR}::Core
Qt${QT_VERSION_MAJOR}::DBus
Qt${QT_VERSION_MAJOR}::Concurrent
)
target_include_directories(
dde_am_dbus PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/..
${CMAKE_CURRENT_BINARY_DIR}/..
)

View File

@ -1,8 +1,8 @@
// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#include "applicationmanager1service.h"
#include "applicationmanager1adaptor.h"
#include "dbus/applicationmanager1service.h"
#include "dbus/applicationmanager1adaptor.h"
#include <QFile>
#include <unistd.h>

View File

@ -12,9 +12,9 @@
#include <QScopedPointer>
#include <memory>
#include <QMap>
#include "jobmanager1service.h"
#include "applicationservice.h"
#include "applicationadaptor.h"
#include "dbus/jobmanager1service.h"
#include "dbus/applicationservice.h"
#include "dbus/applicationadaptor.h"
#include "identifier.h"
class ApplicationManager1Service final : public QObject

View File

@ -2,9 +2,9 @@
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#include "applicationservice.h"
#include "dbus/applicationservice.h"
#include "applicationmanager1service.h"
#include "instanceadaptor.h"
#include "dbus/instanceadaptor.h"
#include "pwd.h"
#include <QUuid>
#include <QStringList>
@ -162,7 +162,7 @@ QDBusObjectPath ApplicationService::Launch(QString action, QStringList fields, Q
auto instanceRandomUUID = QUuid::createUuid().toString(QUuid::Id128);
tmp.push_front(QString{R"(--unitName=DDE-%1@%2.service)"}.arg(this->id(), instanceRandomUUID));
QProcess process;
process.start(ApplicationLauncherBinary, tmp);
process.start(getApplicationLauncherBinary(), tmp);
process.waitForFinished();
auto exitCode = process.exitCode();
if (exitCode != 0) {
@ -318,6 +318,10 @@ LaunchTask ApplicationService::unescapeExec(const QString &str, const QStringLis
}
case 'u': {
execList.removeAt(location);
if (fields.empty()) {
task.command.append(execList);
break;
}
if (fields.count() > 1) {
qDebug() << R"(fields count is greater than one, %u will only take first element.)";
}

View File

@ -14,11 +14,11 @@
#include <QUuid>
#include <QTextStream>
#include <QFile>
#include "instanceservice.h"
#include "dbus/instanceservice.h"
#include "global.h"
#include "desktopentry.h"
#include "desktopicons.h"
#include "jobmanager1service.h"
#include "dbus/jobmanager1service.h"
class ApplicationService : public QObject
{
@ -102,7 +102,7 @@ private:
bool m_isPersistence;
ApplicationManager1Service *m_parent{nullptr};
QDBusObjectPath m_applicationPath;
QString m_launcher{ApplicationLauncherBinary};
QString m_launcher{getApplicationLauncherBinary()};
union DesktopSource
{
template <typename T, std::enable_if_t<std::is_same_v<T, DesktopFile>, bool> = true>

View File

@ -2,7 +2,7 @@
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#include "instanceservice.h"
#include "dbus/instanceservice.h"
InstanceService::InstanceService(QString instanceId, QString application, QString systemdUnitPath)
: m_instanceId(std::move(instanceId))

View File

@ -2,8 +2,8 @@
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#include "jobmanager1service.h"
#include "jobmanager1adaptor.h"
#include "dbus/jobmanager1service.h"
#include "dbus/jobmanager1adaptor.h"
LaunchTask::LaunchTask()
{

View File

@ -15,7 +15,7 @@
#include <QFuture>
#include <QUuid>
#include "global.h"
#include "jobadaptor.h"
#include "dbus/jobadaptor.h"
class ApplicationManager1Service;

View File

@ -2,7 +2,7 @@
//
// SPDX-License-Identifier: LGPL-3.0-or-later
#include "jobservice.h"
#include "dbus/jobservice.h"
JobService::JobService(const QFuture<QVariantList> &job)
: m_job(job)