mirror of
https://github.com/Kitware/CMake.git
synced 2026-01-08 14:50:10 -06:00
Xcode: Select executable target for execution in schema
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user