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  d4d9baba5b38b855502f4c0bd6fda5b5f8eebdd1 (commit)
       via  604afbf9de2926f88d0e2a9b1538a221d4c5ff86 (commit)
      from  7ac4f0ef2f2ab32f72f55bba1b2b947bb44fd9d9 (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=d4d9baba5b38b855502f4c0bd6fda5b5f8eebdd1
commit d4d9baba5b38b855502f4c0bd6fda5b5f8eebdd1
Merge: 7ac4f0e 604afbf
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Thu Dec 1 16:23:43 2011 -0500
Commit:     CMake Topic Stage <kwro...@kitware.com>
CommitDate: Thu Dec 1 16:23:43 2011 -0500

    Merge topic 'refactor-versioned-lib-names' into next
    
    604afbf cmTarget: Create helper method for versioned library names


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=604afbf9de2926f88d0e2a9b1538a221d4c5ff86
commit 604afbf9de2926f88d0e2a9b1538a221d4c5ff86
Author:     Brad King <brad.k...@kitware.com>
AuthorDate: Tue Apr 21 08:29:53 2009 -0400
Commit:     Brad King <brad.k...@kitware.com>
CommitDate: Thu Dec 1 16:21:25 2011 -0500

    cmTarget: Create helper method for versioned library names
    
    Replace the duplicate logic for the realName and soName of versioned
    shared libraries with calls to a new ComputeVersionedName method.

diff --git a/Source/cmTarget.cxx b/Source/cmTarget.cxx
index d021990..014c38f 100644
--- a/Source/cmTarget.cxx
+++ b/Source/cmTarget.cxx
@@ -131,6 +131,7 @@ cmTarget::cmTarget()
   this->LinkLibrariesAnalyzed = false;
   this->HaveInstallRule = false;
   this->DLLPlatform = false;
+  this->IsApple = false;
   this->IsImportedTarget = false;
 }
 
@@ -1207,6 +1208,9 @@ void cmTarget::SetMakefile(cmMakefile* mf)
                        this->Makefile->IsOn("CYGWIN") ||
                        this->Makefile->IsOn("MINGW"));
 
+  // Check whether we are targeting an Apple platform.
+  this->IsApple = this->Makefile->IsOn("APPLE");
+
   // Setup default property values.
   this->SetPropertyDefault("INSTALL_NAME_DIR", "");
   this->SetPropertyDefault("INSTALL_RPATH", "");
@@ -3348,7 +3352,11 @@ void cmTarget::GetLibraryNames(std::string& name,
     // the library version as the soversion.
     soversion = version;
     }
-  bool isApple = this->Makefile->IsOn("APPLE");
+  if(!version && soversion)
+    {
+    // Use the soversion as the library version.
+    version = soversion;
+    }
 
   // Get the components of the library name.
   std::string prefix;
@@ -3360,47 +3368,12 @@ void cmTarget::GetLibraryNames(std::string& name,
   name = prefix+base+suffix;
 
   // The library's soname.
-  if(isApple)
-    {
-    soName = prefix+base;
-    }
-  else
-    {
-    soName = name;
-    }
-  if(soversion)
-    {
-    soName += ".";
-    soName += soversion;
-    }
-  if(isApple)
-    {
-    soName += suffix;
-    }
+  this->ComputeVersionedName(soName, prefix, base, suffix,
+                             name, soversion);
 
   // The library's real name on disk.
-  if(isApple)
-    {
-    realName = prefix+base;
-    }
-  else
-    {
-  realName = name;
-    }
-  if(version)
-    {
-    realName += ".";
-    realName += version;
-    }
-  else if(soversion)
-    {
-    realName += ".";
-    realName += soversion;
-    }
-  if(isApple)
-    {
-    realName += suffix;
-    }
+  this->ComputeVersionedName(realName, prefix, base, suffix,
+                             name, version);
 
   // The import library name.
   if(this->GetType() == cmTarget::SHARED_LIBRARY ||
@@ -3418,6 +3391,23 @@ void cmTarget::GetLibraryNames(std::string& name,
 }
 
 //----------------------------------------------------------------------------
+void cmTarget::ComputeVersionedName(std::string& vName,
+                                    std::string const& prefix,
+                                    std::string const& base,
+                                    std::string const& suffix,
+                                    std::string const& name,
+                                    const char* version)
+{
+  vName = this->IsApple? (prefix+base) : name;
+  if(version)
+    {
+    vName += ".";
+    vName += version;
+    }
+  vName += this->IsApple? suffix : std::string();
+}
+
+//----------------------------------------------------------------------------
 void cmTarget::GetExecutableNames(std::string& name,
                                   std::string& realName,
                                   std::string& impName,
diff --git a/Source/cmTarget.h b/Source/cmTarget.h
index 0abdddb..9ef64f5 100644
--- a/Source/cmTarget.h
+++ b/Source/cmTarget.h
@@ -557,6 +557,7 @@ private:
   cmPropertyMap Properties;
   LinkLibraryVectorType OriginalLinkLibraries;
   bool DLLPlatform;
+  bool IsApple;
   bool IsImportedTarget;
 
   // Cache target output paths for each configuration.
@@ -595,6 +596,12 @@ private:
   cmTargetInternalPointer Internal;
 
   void ConstructSourceFileFlags();
+  void ComputeVersionedName(std::string& vName,
+                            std::string const& prefix,
+                            std::string const& base,
+                            std::string const& suffix,
+                            std::string const& name,
+                            const char* version);
 };
 
 typedef std::map<cmStdString,cmTarget> cmTargets;

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

Summary of changes:
 Source/cmTarget.cxx |   70 ++++++++++++++++++++++-----------------------------
 Source/cmTarget.h   |    7 +++++
 2 files changed, 37 insertions(+), 40 deletions(-)


hooks/post-receive
-- 
CMake
_______________________________________________
Cmake-commits mailing list
Cmake-commits@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-commits

Reply via email to