Skip to content
Snippets Groups Projects
Commit f4977d05 authored by Gregor Jasny's avatar Gregor Jasny
Browse files

Xcode: Select executable target for execution in schema

parent 7202db5d
Branches
No related tags found
No related merge requests found
......@@ -13,7 +13,8 @@
cmXCodeScheme::cmXCodeScheme(cmXCodeObject* xcObj,
const std::vector<std::string>& configList,
unsigned int xcVersion)
: TargetName(xcObj->GetTarget()->GetName())
: Target(xcObj)
, TargetName(xcObj->GetTarget()->GetName())
, TargetId(xcObj->GetId())
, ConfigList(configList)
, XcodeVersion(xcVersion)
......@@ -135,7 +136,14 @@ void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout,
xout.Attribute("debugServiceExtension", "internal");
xout.Attribute("allowLocationSimulation", "YES");
xout.StartElement("MacroExpansion");
if (IsExecutable(this->Target)) {
xout.StartElement("BuildableProductRunnable");
xout.BreakAttributes();
xout.Attribute("runnableDebuggingMode", "0");
} else {
xout.StartElement("MacroExpansion");
}
xout.StartElement("BuildableReference");
xout.BreakAttributes();
......@@ -205,3 +213,14 @@ std::string cmXCodeScheme::FindConfiguration(const std::string& name)
return name;
}
bool cmXCodeScheme::IsExecutable(const cmXCodeObject* target)
{
cmGeneratorTarget* gt = target->GetTarget();
if (!gt) {
cmSystemTools::Error("Error no target on xobject\n");
return false;
}
return gt->GetType() == cmStateEnums::EXECUTABLE;
}
......@@ -24,6 +24,7 @@ public:
const std::string& container);
private:
const cmXCodeObject* const Target;
const std::string& TargetName;
const std::string& TargetId;
const std::vector<std::string>& ConfigList;
......@@ -41,6 +42,8 @@ private:
std::string WriteVersionString();
std::string FindConfiguration(const std::string& name);
static bool IsExecutable(const cmXCodeObject* target);
};
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment