[Cmake-commits] [cmake-commits] king committed cmInstallTargetGenerator.cxx 1.66 1.67

cmake-commits at cmake.org cmake-commits at cmake.org
Tue Nov 25 16:50:50 EST 2008


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

Modified Files:
	cmInstallTargetGenerator.cxx 
Log Message:
BUG: Do not map install_name of imported targets

When we install a target on Mac, we generate a call to install_name_tool to fix
install_name entries in the target for shared libraries it links.  This change
makes the step ignore entries for imported targets since their install_name
will not change and cmTarget cannot produce a mapping for them.  This fixes the
error

  GetLibraryNamesInternal called on imported target: kdelibs

seen by kde folks.


Index: cmInstallTargetGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/cmInstallTargetGenerator.cxx,v
retrieving revision 1.66
retrieving revision 1.67
diff -C 2 -d -r1.66 -r1.67
*** cmInstallTargetGenerator.cxx	3 Oct 2008 14:11:47 -0000	1.66
--- cmInstallTargetGenerator.cxx	25 Nov 2008 21:50:48 -0000	1.67
***************
*** 490,497 ****
          j != sharedLibs.end(); ++j)
        {
        // If the build tree and install tree use different path
        // components of the install_name field then we need to create a
        // mapping to be applied after installation.
-       cmTarget* tgt = *j;
        std::string for_build = tgt->GetInstallNameDirForBuildTree(config);
        std::string for_install = tgt->GetInstallNameDirForInstallTree(config);
--- 490,504 ----
          j != sharedLibs.end(); ++j)
        {
+       cmTarget* tgt = *j;
+ 
+       // The install_name of an imported target does not change.
+       if(tgt->IsImported())
+         {
+         continue;
+         }
+ 
        // If the build tree and install tree use different path
        // components of the install_name field then we need to create a
        // mapping to be applied after installation.
        std::string for_build = tgt->GetInstallNameDirForBuildTree(config);
        std::string for_install = tgt->GetInstallNameDirForInstallTree(config);



More information about the Cmake-commits mailing list