[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--