Răsfoiți Sursa

Xcode: Prepare schema generator for XCTest

Issue: #16961
Gregor Jasny 8 ani în urmă
părinte
comite
690cf2c1b2
2 a modificat fișierele cu 19 adăugiri și 20 ștergeri
  1. 16 18
      Source/cmXCodeScheme.cxx
  2. 3 2
      Source/cmXCodeScheme.h

+ 16 - 18
Source/cmXCodeScheme.cxx

@@ -15,8 +15,6 @@ cmXCodeScheme::cmXCodeScheme(cmXCodeObject* xcObj,
                              unsigned int xcVersion)
                              unsigned int xcVersion)
   : Target(xcObj)
   : Target(xcObj)
   , TargetName(xcObj->GetTarget()->GetName())
   , TargetName(xcObj->GetTarget()->GetName())
-  , BuildableName(xcObj->GetTarget()->GetFullName())
-  , TargetId(xcObj->GetId())
   , ConfigList(configList)
   , ConfigList(configList)
   , XcodeVersion(xcVersion)
   , XcodeVersion(xcVersion)
 {
 {
@@ -84,14 +82,7 @@ void cmXCodeScheme::WriteBuildAction(cmXMLWriter& xout,
   xout.Attribute("buildForArchiving", "YES");
   xout.Attribute("buildForArchiving", "YES");
   xout.Attribute("buildForAnalyzing", "YES");
   xout.Attribute("buildForAnalyzing", "YES");
 
 
-  xout.StartElement("BuildableReference");
-  xout.BreakAttributes();
-  xout.Attribute("BuildableIdentifier", "primary");
-  xout.Attribute("BlueprintIdentifier", this->TargetId);
-  xout.Attribute("BuildableName", this->BuildableName);
-  xout.Attribute("BlueprintName", this->TargetName);
-  xout.Attribute("ReferencedContainer", "container:" + container);
-  xout.EndElement();
+  WriteBuildableReference(xout, this->Target, container);
 
 
   xout.EndElement(); // BuildActionEntry
   xout.EndElement(); // BuildActionEntry
   xout.EndElement(); // BuildActionEntries
   xout.EndElement(); // BuildActionEntries
@@ -146,14 +137,7 @@ void cmXCodeScheme::WriteLaunchAction(cmXMLWriter& xout,
     xout.StartElement("MacroExpansion");
     xout.StartElement("MacroExpansion");
   }
   }
 
 
-  xout.StartElement("BuildableReference");
-  xout.BreakAttributes();
-  xout.Attribute("BuildableIdentifier", "primary");
-  xout.Attribute("BlueprintIdentifier", this->TargetId);
-  xout.Attribute("BuildableName", this->BuildableName);
-  xout.Attribute("BlueprintName", this->TargetName);
-  xout.Attribute("ReferencedContainer", "container:" + container);
-  xout.EndElement();
+  WriteBuildableReference(xout, this->Target, container);
 
 
   xout.EndElement(); // MacroExpansion
   xout.EndElement(); // MacroExpansion
 
 
@@ -195,6 +179,20 @@ void cmXCodeScheme::WriteArchiveAction(cmXMLWriter& xout,
   xout.EndElement();
   xout.EndElement();
 }
 }
 
 
+void cmXCodeScheme::WriteBuildableReference(cmXMLWriter& xout,
+                                            const cmXCodeObject* xcObj,
+                                            const std::string& container)
+{
+  xout.StartElement("BuildableReference");
+  xout.BreakAttributes();
+  xout.Attribute("BuildableIdentifier", "primary");
+  xout.Attribute("BlueprintIdentifier", xcObj->GetId());
+  xout.Attribute("BuildableName", xcObj->GetTarget()->GetFullName());
+  xout.Attribute("BlueprintName", xcObj->GetTarget()->GetName());
+  xout.Attribute("ReferencedContainer", "container:" + container);
+  xout.EndElement();
+}
+
 std::string cmXCodeScheme::WriteVersionString()
 std::string cmXCodeScheme::WriteVersionString()
 {
 {
   std::ostringstream v;
   std::ostringstream v;

+ 3 - 2
Source/cmXCodeScheme.h

@@ -26,8 +26,6 @@ public:
 private:
 private:
   const cmXCodeObject* const Target;
   const cmXCodeObject* const Target;
   const std::string& TargetName;
   const std::string& TargetName;
-  const std::string BuildableName;
-  const std::string& TargetId;
   const std::vector<std::string>& ConfigList;
   const std::vector<std::string>& ConfigList;
   const unsigned int XcodeVersion;
   const unsigned int XcodeVersion;
 
 
@@ -41,6 +39,9 @@ private:
   void WriteAnalyzeAction(cmXMLWriter& xout, std::string configuration);
   void WriteAnalyzeAction(cmXMLWriter& xout, std::string configuration);
   void WriteArchiveAction(cmXMLWriter& xout, std::string configuration);
   void WriteArchiveAction(cmXMLWriter& xout, std::string configuration);
 
 
+  void WriteBuildableReference(cmXMLWriter& xout, const cmXCodeObject* xcObj,
+                               const std::string& container);
+
   std::string WriteVersionString();
   std::string WriteVersionString();
   std::string FindConfiguration(const std::string& name);
   std::string FindConfiguration(const std::string& name);