소스 검색

Split link information processing into two steps.

The first step can be ported to use the generator expression API,
while the second can not. This is for compatibility with CMP0003.
Stephen Kelly 13 년 전
부모
커밋
d5cf644ac2
1개의 변경된 파일12개의 추가작업 그리고 2개의 파일을 삭제
  1. 12 2
      Source/cmTarget.cxx

+ 12 - 2
Source/cmTarget.cxx

@@ -4707,14 +4707,24 @@ void cmTarget::ComputeLinkImplementation(const char* config,
       {
       continue;
       }
-
     if(li->second == cmTarget::GENERAL || li->second == linkType)
       {
       // The entry is meant for this configuration.
       impl.Libraries.push_back(item);
       }
-    else
+    }
+
+  LinkLibraryVectorType const& oldllibs = this->GetOriginalLinkLibraries();
+  for(cmTarget::LinkLibraryVectorType::const_iterator li = oldllibs.begin();
+      li != oldllibs.end(); ++li)
+    {
+    if(li->second != cmTarget::GENERAL && li->second != linkType)
       {
+      std::string item = this->CheckCMP0004(li->first);
+      if(item == this->GetName() || item.empty())
+        {
+        continue;
+        }
       // Support OLD behavior for CMP0003.
       impl.WrongConfigLibraries.push_back(item);
       }