CMake: Expose information about Appman packages as Project extraData

Change-Id: I54c449f5bc7211271cecbef05045dd1490066bd6
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Dominik Holland
2023-12-20 10:35:51 +01:00
parent f0fefbef06
commit e33d6fe5dc
2 changed files with 35 additions and 0 deletions

View File

@@ -37,6 +37,8 @@
#include <qmljs/qmljsmodelmanagerinterface.h> #include <qmljs/qmljsmodelmanagerinterface.h>
#include <qtapplicationmanager/appmanagerconstants.h>
#include <qtsupport/qtcppkitinfo.h> #include <qtsupport/qtcppkitinfo.h>
#include <qtsupport/qtsupportconstants.h> #include <qtsupport/qtsupportconstants.h>
@@ -1473,6 +1475,37 @@ void CMakeBuildSystem::updateCMakeConfiguration(QString &errorMessage)
project()->setExtraData(Android::Constants::UseAndroidBuildTargetDir, project()->setExtraData(Android::Constants::UseAndroidBuildTargetDir,
QVariant::fromValue(useAndroidTargetBuildDir)); QVariant::fromValue(useAndroidTargetBuildDir));
QVariantList packageTargets;
for (const CMakeBuildTarget &buildTarget : buildTargets()) {
bool isBuiltinPackage = false;
bool isInstallablePackage = false;
for (const ProjectExplorer::FolderNode::LocationInfo &bs : buildTarget.backtrace) {
if (bs.displayName == "qt6_am_create_builtin_package")
isBuiltinPackage = true;
else if (bs.displayName == "qt6_am_create_installable_package")
isInstallablePackage = true;
}
if (!isBuiltinPackage && !isInstallablePackage)
continue;
QVariantMap packageTarget;
for (const FilePath &sourceFile : buildTarget.sourceFiles) {
if (sourceFile.fileName() == "info.yaml") {
packageTarget.insert("manifestFilePath", QVariant::fromValue(sourceFile.absoluteFilePath()));
packageTarget.insert("cmakeTarget", buildTarget.title);
packageTarget.insert("isBuiltinPackage", isBuiltinPackage);
for (const FilePath &osf : buildTarget.sourceFiles) {
if (osf.fileName().endsWith(".ampkg.rule")) {
packageTarget.insert("packageFilePath", QVariant::fromValue(osf.absoluteFilePath().chopped(5)));
}
}
}
}
packageTargets.append(packageTarget);
}
project()->setExtraData(AppManager::Constants::APPMAN_PACKAGE_TARGETS, packageTargets);
setConfigurationFromCMake(cmakeConfig); setConfigurationFromCMake(cmakeConfig);
} }

View File

@@ -21,6 +21,8 @@ const char DEPLOY_PACKAGE_STEP_ID[] = "ApplicationManagerPlugin.Deploy.DeployPac
const char INSTALL_PACKAGE_STEP_ID[] = "ApplicationManagerPlugin.Deploy.InstallPackageStep"; const char INSTALL_PACKAGE_STEP_ID[] = "ApplicationManagerPlugin.Deploy.InstallPackageStep";
const char RUNCONFIGURATION_ID[] = "ApplicationManagerPlugin.Run.Configuration"; const char RUNCONFIGURATION_ID[] = "ApplicationManagerPlugin.Run.Configuration";
const char APPMAN_PACKAGE_TARGETS[] = "ApplicationmanagerPackageTargets";
const char QMAKE_AM_MANIFEST_VARIABLE[] = "AM_MANIFEST"; const char QMAKE_AM_MANIFEST_VARIABLE[] = "AM_MANIFEST";
const char QMAKE_AM_PACKAGE_DIR_VARIABLE[] = "AM_PACKAGE_DIR"; const char QMAKE_AM_PACKAGE_DIR_VARIABLE[] = "AM_PACKAGE_DIR";