[Cmake-commits] CMake branch, next, updated. v2.8.10.2-2231-g1cacc38

Brad King brad.king at kitware.com
Tue Feb 19 17:05:48 EST 2013


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  1cacc3898dc3ceb60806e138cb0cf22506ae3846 (commit)
       via  b0051404510e8570b16615ed927a88d07c0ff4e8 (commit)
       via  781ea6d1ca03a11a40a92363e99637a6f20a6a69 (commit)
      from  0ee16e34954c40ddd1ce93faad94400e81490ebd (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=1cacc3898dc3ceb60806e138cb0cf22506ae3846
commit 1cacc3898dc3ceb60806e138cb0cf22506ae3846
Merge: 0ee16e3 b005140
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Feb 19 17:05:45 2013 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Tue Feb 19 17:05:45 2013 -0500

    Merge topic 'xcode-target-depends' into next
    
    b005140 Xcode: Each target dependency edge needs a unique object (#13935)
    781ea6d Xcode: Drop check for circular target dependencies


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=b0051404510e8570b16615ed927a88d07c0ff4e8
commit b0051404510e8570b16615ed927a88d07c0ff4e8
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Feb 19 16:13:51 2013 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Feb 19 16:45:58 2013 -0500

    Xcode: Each target dependency edge needs a unique object (#13935)
    
    Generate a unique PBXTargetDependency and PBXContainerItemProxy for
    every edge in the dependency graph as required by the Xcode format.
    Xcode only accidentally loads project files that re-use the same
    PBXTargetDependency for every edge leading to a single target.  If one
    is removed by hand in the IDE then Xcode may crash due to dangling
    references from the others.
    
    Since cmGlobalXCodeGenerator::AddDependTarget is called exactly once for
    every edge in the target dependency graph we do not need to keep track
    of which edges have been visited to avoid generating duplicates.

diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index fb8eafc..d836290 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -2517,29 +2517,25 @@ std::string cmGlobalXCodeGenerator::GetOrCreateId(const char* name,
 void cmGlobalXCodeGenerator::AddDependTarget(cmXCodeObject* target,
                                              cmXCodeObject* dependTarget)
 {
-  cmXCodeObject* targetdep = dependTarget->GetPBXTargetDependency();
-  if(!targetdep)
-    {
-    cmXCodeObject* container =
-      this->CreateObject(cmXCodeObject::PBXContainerItemProxy);
-    container->SetComment("PBXContainerItemProxy");
-    container->AddAttribute("containerPortal",
-                            this->CreateObjectReference(this->RootObject));
-    container->AddAttribute("proxyType", this->CreateString("1"));
-    container->AddAttribute("remoteGlobalIDString",
-                            this->CreateObjectReference(dependTarget));
-    container->AddAttribute("remoteInfo",
-                            this->CreateString(
-                              dependTarget->GetTarget()->GetName()));
-    targetdep =
-      this->CreateObject(cmXCodeObject::PBXTargetDependency);
-    targetdep->SetComment("PBXTargetDependency");
-    targetdep->AddAttribute("target",
-                            this->CreateObjectReference(dependTarget));
-    targetdep->AddAttribute("targetProxy",
-                            this->CreateObjectReference(container));
-    dependTarget->SetPBXTargetDependency(targetdep);
-    }
+  // This is called once for every edge in the target dependency graph.
+  cmXCodeObject* container =
+    this->CreateObject(cmXCodeObject::PBXContainerItemProxy);
+  container->SetComment("PBXContainerItemProxy");
+  container->AddAttribute("containerPortal",
+                          this->CreateObjectReference(this->RootObject));
+  container->AddAttribute("proxyType", this->CreateString("1"));
+  container->AddAttribute("remoteGlobalIDString",
+                          this->CreateObjectReference(dependTarget));
+  container->AddAttribute("remoteInfo",
+                          this->CreateString(
+                            dependTarget->GetTarget()->GetName()));
+  cmXCodeObject* targetdep =
+    this->CreateObject(cmXCodeObject::PBXTargetDependency);
+  targetdep->SetComment("PBXTargetDependency");
+  targetdep->AddAttribute("target",
+                          this->CreateObjectReference(dependTarget));
+  targetdep->AddAttribute("targetProxy",
+                          this->CreateObjectReference(container));
 
   cmXCodeObject* depends = target->GetObject("dependencies");
   if(!depends)
diff --git a/Source/cmXCodeObject.cxx b/Source/cmXCodeObject.cxx
index de150ee..6abf6bf 100644
--- a/Source/cmXCodeObject.cxx
+++ b/Source/cmXCodeObject.cxx
@@ -38,7 +38,6 @@ cmXCodeObject::~cmXCodeObject()
 cmXCodeObject::cmXCodeObject(PBXType ptype, Type type)
 {
   this->Version = 15;
-  this->PBXTargetDependencyValue = 0;
   this->Target = 0;
   this->Object =0;
 
diff --git a/Source/cmXCodeObject.h b/Source/cmXCodeObject.h
index bb2d5b2..b89f78c 100644
--- a/Source/cmXCodeObject.h
+++ b/Source/cmXCodeObject.h
@@ -120,14 +120,6 @@ public:
       return 0;
     }
 
-  cmXCodeObject* GetPBXTargetDependency()
-    {
-      return this->PBXTargetDependencyValue;
-    }
-  void SetPBXTargetDependency(cmXCodeObject* d)
-    {
-      this->PBXTargetDependencyValue = d;
-    }
   void CopyAttributes(cmXCodeObject* );
 
   void AddDependLibrary(const char* configName,
@@ -170,7 +162,6 @@ protected:
   cmStdString Comment;
   cmStdString String;
   cmXCodeObject* Object;
-  cmXCodeObject* PBXTargetDependencyValue;
   std::vector<cmXCodeObject*> List;
   std::map<cmStdString, StringVec> DependLibraries;
   std::map<cmStdString, StringVec> DependTargets;

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=781ea6d1ca03a11a40a92363e99637a6f20a6a69
commit 781ea6d1ca03a11a40a92363e99637a6f20a6a69
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Feb 19 16:02:29 2013 -0500
Commit:     Brad King <brad.king at kitware.com>
CommitDate: Tue Feb 19 16:06:38 2013 -0500

    Xcode: Drop check for circular target dependencies
    
    The modern cmComputeTargetDepends guarantees there will by no cycles.
    Drop the Xcode generator's check which only handled length 1 and 2
    cycles anyway.

diff --git a/Source/cmGlobalXCodeGenerator.cxx b/Source/cmGlobalXCodeGenerator.cxx
index 9600771..fb8eafc 100644
--- a/Source/cmGlobalXCodeGenerator.cxx
+++ b/Source/cmGlobalXCodeGenerator.cxx
@@ -2517,24 +2517,6 @@ std::string cmGlobalXCodeGenerator::GetOrCreateId(const char* name,
 void cmGlobalXCodeGenerator::AddDependTarget(cmXCodeObject* target,
                                              cmXCodeObject* dependTarget)
 {
-  // make sure a target does not depend on itself
-  if(target == dependTarget)
-    {
-    return;
-    }
-  // now avoid circular references if dependTarget already
-  // depends on target then skip it.  Circular references crashes
-  // xcode
-  cmXCodeObject* dependTargetDepends =
-    dependTarget->GetObject("dependencies");
-  if(dependTargetDepends)
-    {
-    if(dependTargetDepends->HasObject(target->GetPBXTargetDependency()))
-      {
-      return;
-      }
-    }
-
   cmXCodeObject* targetdep = dependTarget->GetPBXTargetDependency();
   if(!targetdep)
     {

-----------------------------------------------------------------------

Summary of changes:
 Source/cmGlobalXCodeGenerator.cxx |   60 +++++++++++-------------------------
 Source/cmXCodeObject.cxx          |    1 -
 Source/cmXCodeObject.h            |    9 -----
 3 files changed, 19 insertions(+), 51 deletions(-)


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list