[Cmake] liblib under linux (patch) - really attached

Petr Ferschmann petr at ferschmann . cz
09 Jul 2003 18:28:42 +0200


--=-eft2L7fhfMgaWbBr8fmn
Content-Type: multipart/mixed; boundary="=-kus4T5hGjYGgVz7JGziC"


--=-kus4T5hGjYGgVz7JGziC
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable


Hello,

Sorry I forgot to attach the patches.

Here it is.

--=20
                                  Petr "Fers" Ferschmann

 -=3D[  petr at ferschmann . cz  ]=3D=3D[ http://petr . ferschmann . cz/ ]=3D-
-=3D[ Koukni na http://www . postcard . cz/ ]=3D=3D[ +420 604/781 009 ]=3D-

GPG Fingerprint:
[83B0 6378 7A9D D993 035E  60BD FEEC F665 D2C8 1B9A]


--=-kus4T5hGjYGgVz7JGziC
Content-Disposition: attachment; filename=kerio.diff
Content-Transfer-Encoding: quoted-printable
Content-Type: text/x-patch; name=kerio.diff; charset=iso-8859-2

diff -u -3 -p -r1.82 cmLocalUnixMakefileGenerator.cxx
--- cmLocalUnixMakefileGenerator.cxx	23 Jun 2003 18:10:12 -0000	1.82
+++ cmLocalUnixMakefileGenerator.cxx	9 Jul 2003 12:57:57 -0000
@@ -321,6 +321,20 @@ std::string cmLocalUnixMakefileGenerator
 }
 #endif
=20
+std::string cmLocalUnixMakefileGenerator::AddPrefixToLib(const char *prefi=
x, const char *suffix, const char *n)
+{
+  /* if the library name already contains prefix don't add it again */
+	std::string name;
+	if (prefix !=3D NULL &&=20
+		strlen(n) > strlen(prefix) &&
+		strncmp(prefix,n, strlen(prefix)) !=3D 0) {
+		name +=3D prefix;
+	}
+	name +=3D n;
+	name +=3D suffix?suffix:"";
+	return name;
+}
+
 std::string cmLocalUnixMakefileGenerator::GetFullTargetName(const char* n,
                                                             const cmTarget=
& t)
 {
@@ -360,10 +374,8 @@ std::string cmLocalUnixMakefileGenerator
     {
     targetSuffix =3D this->GetSafeDefinition(suffixVar);
     }
-  std::string name =3D targetPrefix?targetPrefix:"";
-  name +=3D n;
-  name +=3D targetSuffix?targetSuffix:"";
-  return name;
+
+  return this->AddPrefixToLib(targetPrefix, targetSuffix, n);
 }
=20
 // Output the rules for any targets
@@ -872,12 +889,10 @@ void cmLocalUnixMakefileGenerator::Outpu
                                                      )
 {
   // create the library name
-  std::string targetNameBase =3D prefix;
-  targetNameBase +=3D name;
+  std::string targetNameBase =3D this->AddPrefixToLib(prefix, "", name);
  =20
-  std::string targetName =3D prefix;
-  targetName +=3D name;
-  targetName +=3D  suffix;
+  std::string targetName =3D this->AddPrefixToLib(prefix, suffix, name);
+
   // create the target full path name
   std::string targetFullPath =3D m_LibraryOutputPath + targetName;
   std::string targetBaseFullPath =3D m_LibraryOutputPath + targetNameBase;
 void cmLocalUnixMakefileGenerator::OutputSharedLibraryRule(std::ostream& f=
out, =20
@@ -1398,21 +1414,21 @@ void cmLocalUnixMakefileGenerator::Outpu
         std::string libpath =3D cacheValue;
         if(libType && std::string(libType) =3D=3D "SHARED")
           {
-          library =3D this->GetSafeDefinition("CMAKE_SHARED_LIBRARY_PREFIX=
");
-          library +=3D *lib;
-          library +=3D this->GetSafeDefinition("CMAKE_SHARED_LIBRARY_SUFFI=
X");
+			  library =3D this->AddPrefixToLib(this->GetSafeDefinition("CMAKE_SHARE=
D_LIBRARY_PREFIX"),
+										   this->GetSafeDefinition("CMAKE_SHARED_LIBRARY_SUFFIX"),
+										   lib->c_str());
           }
         else if(libType && std::string(libType) =3D=3D "MODULE")
           {
-          library =3D this->GetSafeDefinition("CMAKE_SHARED_MODULE_PREFIX"=
);
-          library +=3D *lib;
-          library +=3D this->GetSafeDefinition("CMAKE_SHARED_MODULE_SUFFIX=
");
+			  library =3D this->AddPrefixToLib(this->GetSafeDefinition("CMAKE_SHARE=
D_MODULE_PREFIX"),
+										   this->GetSafeDefinition("CMAKE_SHARED_MODULE_SUFFIX"),
+										   lib->c_str());
           }
         else if(libType && std::string(libType) =3D=3D "STATIC")
           {
-          library =3D this->GetSafeDefinition("CMAKE_STATIC_LIBRARY_PREFIX=
");
-          library +=3D *lib;
-          library +=3D this->GetSafeDefinition("CMAKE_STATIC_LIBRARY_SUFFI=
X");
+			  library =3D this->AddPrefixToLib(this->GetSafeDefinition("CMAKE_STATI=
C_LIBRARY_PREFIX"),
+										   this->GetSafeDefinition("CMAKE_STATIC_LIBRARY_SUFFIX"),
+										   lib->c_str());
           }
         else
           {
@@ -1565,22 +1581,23 @@ void cmLocalUnixMakefileGenerator::Outpu
     const char* libType =3D m_Makefile->GetDefinition(ltname.c_str());
     if(libType && std::string(libType) =3D=3D "SHARED")
       {
-      libpath +=3D this->GetSafeDefinition("CMAKE_SHARED_LIBRARY_PREFIX");
-      libpath +=3D name;
-      libpath +=3D this->GetSafeDefinition("CMAKE_SHARED_LIBRARY_SUFFIX");
+		  libpath +=3D this->AddPrefixToLib(this->GetSafeDefinition("CMAKE_SHARE=
D_LIBRARY_PREFIX"),=20
+							   this->GetSafeDefinition("CMAKE_SHARED_LIBRARY_SUFFIX"),
+							   name);
       }
     else if (libType && std::string(libType) =3D=3D "MODULE")
       {
-      libpath +=3D this->GetSafeDefinition("CMAKE_SHARED_MODULE_PREFIX");
-      libpath +=3D name;
-      libpath +=3D this->GetSafeDefinition("CMAKE_SHARED_MODULE_SUFFIX");
+		  libpath +=3D this->AddPrefixToLib(this->GetSafeDefinition("CMAKE_SHARE=
D_MODULE_PREFIX"),=20
+							   this->GetSafeDefinition("CMAKE_SHARED_MODULE_SUFFIX"),
+							   name);
       }
     else if (libType && std::string(libType) =3D=3D "STATIC")
       {
-      libpath +=3D this->GetSafeDefinition("CMAKE_STATIC_LIBRARY_PREFIX");
-      libpath +=3D name;
-      libpath +=3D this->GetSafeDefinition("CMAKE_STATIC_LIBRARY_SUFFIX");
-      }
+		  libpath +=3D this->AddPrefixToLib(this->GetSafeDefinition("CMAKE_STATI=
C_LIBRARY_PREFIX"),=20
+							   this->GetSafeDefinition("CMAKE_STATIC_LIBRARY_SUFFIX"),
+							   name);
+
+	      }
     fout << cmSystemTools::ConvertToOutputPath(libpath.c_str()) << " ";
     }
 }
diff -u -3 -p -r1.9 cmLocalUnixMakefileGenerator.h
--- cmLocalUnixMakefileGenerator.h	3 Jun 2003 14:30:23 -0000	1.9
+++ cmLocalUnixMakefileGenerator.h	9 Jul 2003 12:57:57 -0000
@@ -203,6 +203,9 @@ protected:
  =20
   /** Get the full name of the target's file, without path.  */
   std::string GetFullTargetName(const char* n, const cmTarget& t);
+
+  /** Adds prefix to library only if it don't contain it already (so libra=
ry is not named liblibname)*/
+  std::string AddPrefixToLib(const char *prefix, const char *suffix, const=
 char *libname);
 protected:
   int m_MakefileVariableSize;
   std::map<cmStdString, cmStdString> m_MakeVariableMap;

--=-kus4T5hGjYGgVz7JGziC
Content-Disposition: attachment; filename=kerio2.diff
Content-Transfer-Encoding: quoted-printable
Content-Type: text/x-patch; name=kerio2.diff; charset=iso-8859-2

diff -u -3 -p -r1.82 cmLocalUnixMakefileGenerator.cxx
--- cmLocalUnixMakefileGenerator.cxx	23 Jun 2003 18:10:12 -0000	1.82
+++ cmLocalUnixMakefileGenerator.cxx	9 Jul 2003 12:57:57 -0000
@@ -640,7 +652,12 @@ void cmLocalUnixMakefileGenerator::Outpu
         {
         librariesLinked +=3D libLinkFlag;
         }
-      librariesLinked +=3D lib->first;
+
+	  if (lib->first.length() > 3 && strncmp(lib->first.c_str(), "lib", 3) =
=3D=3D 0) {
+		  librariesLinked +=3D lib->first.substr(3, std::string::npos);
+	  } else {
+		  librariesLinked +=3D lib->first;
+	  }
       if(linkSuffix.size() && !hasSuffix.find(lib->first))
         {
         librariesLinked +=3D linkSuffix;

--=-kus4T5hGjYGgVz7JGziC--

--=-eft2L7fhfMgaWbBr8fmn
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: Toto je =?iso-8859-2?Q?digit=E1ln=EC?=
	=?ISO-8859-1?Q?_podepsan=E1?= =?iso-8859-2?Q?_=E8=E1st?=
	=?ISO-8859-1?Q?_zpr=E1vy?=

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQA/DEK5KTvcB3Rwi3URAqvjAJ9cfTJnThHH/PkiJ5i8m2OOIOhWAgCdGbkJ
CxD8V+9WaGZG0HDoyTej+ZQ=
=qdEV
-----END PGP SIGNATURE-----

--=-eft2L7fhfMgaWbBr8fmn--