[cmake-commits] king committed cmLocalGenerator.cxx 1.211 1.212

cmake-commits at cmake.org cmake-commits at cmake.org
Wed Apr 18 09:56:08 EDT 2007


Update of /cvsroot/CMake/CMake/Source
In directory public:/mounts/ram/cvs-serv26270

Modified Files:
	cmLocalGenerator.cxx 
Log Message:
BUG: Fix ComputeLinkInformation.  When using a loader_flag link item the full per-configuration path should be used.  The fullPathLibs returned should refer to the import library if it was used.  Since the full paths are used for dependencies the executable used with loader_flag should be returned also.


Index: cmLocalGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmLocalGenerator.cxx,v
retrieving revision 1.211
retrieving revision 1.212
diff -u -d -r1.211 -r1.212
--- cmLocalGenerator.cxx	18 Apr 2007 04:04:56 -0000	1.211
+++ cmLocalGenerator.cxx	18 Apr 2007 13:56:06 -0000	1.212
@@ -1712,25 +1712,30 @@
                       impexe))
         {
         // This is a CMake target.  Ask the target for its real name.
-        // Pass the full path to the target file but purposely leave
-        // off the per-configuration subdirectory.  The link directory
-        // ordering knows how to deal with this.
-        std::string linkItem = tgt->GetDirectory(0, implib);
-        linkItem += "/";
-        linkItem += tgt->GetFullName(config, implib);
+        std::string linkItem;
         if(impexe && loader_flag)
           {
           // This link item is an executable that may provide symbols
           // used by this target.  A special flag is needed on this
           // platform.  Add it now.
-          linkItem = loader_flag +
-            this->Convert(linkItem.c_str(), NONE, SHELL, false);
+          std::string exe = tgt->GetFullPath(config, implib);
+          linkItem += loader_flag;
+          linkItem += this->Convert(exe.c_str(), NONE, SHELL, false);
+          }
+        else
+          {
+          // Pass the full path to the target file but purposely leave
+          // off the per-configuration subdirectory.  The link directory
+          // ordering knows how to deal with this.
+          linkItem += tgt->GetDirectory(0, implib);
+          linkItem += "/";
+          linkItem += tgt->GetFullName(config, implib);
           }
         linkLibraries.push_back(linkItem);
         // For full path, use the true location.
         if(fullPathLibs)
           {
-          fullPathLibs->push_back(tgt->GetFullPath(config));
+          fullPathLibs->push_back(tgt->GetFullPath(config, implib));
           }
         }
       else



More information about the Cmake-commits mailing list