浏览代码

ENH: xcode almost working for simple exe, but not yet

Bill Hoffman 21 年之前
父节点
当前提交
b9982e4b60
共有 2 个文件被更改,包括 6 次插入3 次删除
  1. 3 3
      Source/cmGlobalXCodeGenerator.cxx
  2. 3 0
      Source/cmXCodeObject.cxx

+ 3 - 3
Source/cmGlobalXCodeGenerator.cxx

@@ -188,15 +188,15 @@ void cmGlobalXCodeGenerator::CreateXCodeTargets(cmLocalGenerator* gen,
       target->AddAttribute("name", this->CreateString(l->first.c_str()));
       target->AddAttribute("productName",this->CreateString(l->first.c_str()));
       cmXCodeObject* fileRef = this->CreateObject(cmXCodeObject::PBXFileReference);
-      fileRef->AddAttribute("explicitFileType", this->CreateString("compiled.mach-o.executable"));
+      fileRef->AddAttribute("explicitFileType", this->CreateString("\"compiled.mach-o.executable\""));
       fileRef->AddAttribute("includedInIndex", this->CreateString("0"));
       fileRef->AddAttribute("path", this->CreateString(l->first.c_str()));
       fileRef->AddAttribute("refType", this->CreateString("3"));
       fileRef->AddAttribute("sourceTree", this->CreateString("BUILT_PRODUCTS_DIR"));
       cmXCodeObject* fileRefPtr = this->CreateObject(cmXCodeObject::OBJECT_REF);
-      fileRefPtr->AddObject(fileRef);
+      fileRefPtr->SetObject(fileRef);
       target->AddAttribute("productReference", fileRefPtr);
-      target->AddAttribute("productReference", this->CreateString("com.apple.product-type.tool"));
+      target->AddAttribute("productType", this->CreateString("\"com.apple.product-type.tool\""));
       }
     else if (l->second.GetType() == cmTarget::UTILITY)
       {

+ 3 - 0
Source/cmXCodeObject.cxx

@@ -1,4 +1,6 @@
 #include "cmXCodeObject.h"
+#include "cmSystemTools.h"
+
 const char* cmXCodeObject::PBXTypeNames[] = {
     "PBXGroup", "PBXBuildStyle", "PBXProject", "PBXHeadersBuildPhase", 
     "PBXSourcesBuildPhase", "PBXFrameworksBuildPhase", "PBXNativeTarget",
@@ -17,6 +19,7 @@ cmXCodeObject::cmXCodeObject(PBXType ptype, Type type)
   str << (void*)this;
   str << (void*)this;
   m_Id = str.str();
+  cmSystemTools::ReplaceString(m_Id, "0x", "");
   m_Type = type;
   if(m_Type == OBJECT)
     {