forked from qt-creator/qt-creator
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:
@@ -37,6 +37,8 @@
|
||||
|
||||
#include <qmljs/qmljsmodelmanagerinterface.h>
|
||||
|
||||
#include <qtapplicationmanager/appmanagerconstants.h>
|
||||
|
||||
#include <qtsupport/qtcppkitinfo.h>
|
||||
#include <qtsupport/qtsupportconstants.h>
|
||||
|
||||
@@ -1473,6 +1475,37 @@ void CMakeBuildSystem::updateCMakeConfiguration(QString &errorMessage)
|
||||
project()->setExtraData(Android::Constants::UseAndroidBuildTargetDir,
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ const char DEPLOY_PACKAGE_STEP_ID[] = "ApplicationManagerPlugin.Deploy.DeployPac
|
||||
const char INSTALL_PACKAGE_STEP_ID[] = "ApplicationManagerPlugin.Deploy.InstallPackageStep";
|
||||
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_PACKAGE_DIR_VARIABLE[] = "AM_PACKAGE_DIR";
|
||||
|
||||
|
||||
Reference in New Issue
Block a user