diff --git a/src/plugins/ios/iosconstants.h b/src/plugins/ios/iosconstants.h index 540896e0e68..9731960bdeb 100644 --- a/src/plugins/ios/iosconstants.h +++ b/src/plugins/ios/iosconstants.h @@ -44,6 +44,9 @@ const char IOS_SIMULATOR_DEVICE_ID[] = "iOS Simulator Device "; const char IOS_PRESET_BUILD_STEP_ID[] = "Ios.IosPresetBuildStep"; const char IOS_DSYM_BUILD_STEP_ID[] = "Ios.IosDsymBuildStep"; +const char IosTarget[] = "IosTarget"; // QString +const char IosBuildDir[] = "IosBuildDir"; // QString + const quint16 IOS_DEVICE_PORT_START = 30000; const quint16 IOS_DEVICE_PORT_END = 31000; const quint16 IOS_SIMULATOR_PORT_START = 30000; diff --git a/src/plugins/ios/iosrunconfiguration.cpp b/src/plugins/ios/iosrunconfiguration.cpp index 2790734e583..4f1ade7c42c 100644 --- a/src/plugins/ios/iosrunconfiguration.cpp +++ b/src/plugins/ios/iosrunconfiguration.cpp @@ -34,13 +34,11 @@ #include #include #include +#include +#include #include #include -#include -#include -#include - #include #include @@ -62,7 +60,6 @@ #include using namespace ProjectExplorer; -using namespace QmakeProjectManager; using namespace Utils; namespace Ios { @@ -160,11 +157,9 @@ void IosRunConfiguration::updateEnabledState() QString IosRunConfiguration::applicationName() const { Project *project = target()->project(); - if (auto pro = dynamic_cast(project->findNodeForBuildKey(buildKey()))) { - TargetInformation ti = pro->targetInformation(); - if (ti.valid) - return ti.target; - } + if (ProjectNode *node = project->findNodeForBuildKey(buildKey())) + return node->data(Constants::IosTarget).toString(); + return QString(); } @@ -179,12 +174,8 @@ FileName IosRunConfiguration::bundleDirectory() const } if (BuildConfiguration *bc = target()->activeBuildConfiguration()) { Project *project = target()->project(); - auto pro = dynamic_cast(project->findNodeForBuildKey(buildKey())); - if (pro) { - TargetInformation ti = pro->targetInformation(); - if (ti.valid) - res = ti.buildDir; - } + if (ProjectNode *node = project->findNodeForBuildKey(buildKey())) + res = FileName::fromString(node->data(Constants::IosBuildDir).toString()); if (res.isEmpty()) res = bc->buildDirectory(); switch (bc->buildType()) { @@ -400,7 +391,6 @@ IosRunConfigurationFactory::IosRunConfigurationFactory() registerRunConfiguration("Qt4ProjectManager.IosRunConfiguration:"); addSupportedTargetDeviceType(Constants::IOS_DEVICE_TYPE); addSupportedTargetDeviceType(Constants::IOS_SIMULATOR_TYPE); - addSupportedProjectType(QmakeProjectManager::Constants::QMAKEPROJECT_ID); } } // namespace Internal diff --git a/src/plugins/qmakeprojectmanager/qmakenodes.cpp b/src/plugins/qmakeprojectmanager/qmakenodes.cpp index cc10b3d5e08..957c76e8109 100644 --- a/src/plugins/qmakeprojectmanager/qmakenodes.cpp +++ b/src/plugins/qmakeprojectmanager/qmakenodes.cpp @@ -36,6 +36,7 @@ #include #include +#include #include #include @@ -292,6 +293,18 @@ QVariant QmakeProFileNode::data(Core::Id role) const if (role == Android::Constants::AndroidTargets) return {}; + if (role == Ios::Constants::IosTarget) { + const TargetInformation info = targetInformation(); + if (info.valid) + return info.target; + } + + if (role == Ios::Constants::IosBuildDir) { + const TargetInformation info = targetInformation(); + if (info.valid) + return info.buildDir.toString(); + } + QTC_CHECK(false); return {}; }