Appman: Initial CMake integration

* Detection of packages created using CMake API
* Run target for all detected packages
* Special CMake package step for installable packages
* Run/Debug of builtin apps
* Package/Install/Run/Debug of installable packages
* Works locally and with Remote Linux

Change-Id: Ic297ba04f20caf0a5383ed016d759e654864a065
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
This commit is contained in:
Dominik Holland
2023-12-20 10:38:09 +01:00
parent 5e1993e0ae
commit 3916a0637a
16 changed files with 370 additions and 12 deletions

View File

@@ -18,6 +18,9 @@
#include <utils/algorithm.h>
#include <utils/filesystemwatcher.h>
#include <qtsupport/baseqtversion.h>
#include <qtsupport/qtkitaspect.h>
using namespace ProjectExplorer;
using namespace Utils;
@@ -59,7 +62,13 @@ QList<RunConfigurationCreationInfo> AppManagerRunConfigurationFactory::available
QObject::connect(&d->fileSystemWatcher, &FileSystemWatcher::fileChanged, target->project(), &Project::displayNameChanged, Qt::UniqueConnection);
const auto buildTargets = TargetInformation::readFromProject(target);
const auto result = Utils::transform(buildTargets, [this](const TargetInformation &ti) {
auto result = Utils::transform(buildTargets, [this, target](const TargetInformation &ti) {
QVariantMap settings;
// ti.buildKey is currently our app id
settings.insert("id", ti.buildKey);
target->setNamedSettings("runConfigurationSettings", settings);
RunConfigurationCreationInfo rci;
rci.factory = this;
rci.buildKey = ti.buildKey;
@@ -72,6 +81,7 @@ QList<RunConfigurationCreationInfo> AppManagerRunConfigurationFactory::available
}
return rci;
});
return result;
}