diff --git a/dev-util/cmake/ChangeLog b/dev-util/cmake/ChangeLog --- a/dev-util/cmake/ChangeLog +++ b/dev-util/cmake/ChangeLog @@ -2,6 +2,14 @@ # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2 # $Header: /var/cvsroot/gentoo-x86/dev-util/cmake/ChangeLog,v 1.144 2010/09/11 15:13:49 armin76 Exp $ + 17 Sep 2010; Nathan Phillip Brink (ohnobinki) + cmake-2.8.1-r2.ebuild, + +files/cmake-2.8.1-portage-multilib-lib32.patch: + Add a patch to cmake which enables kde-base/kdelibs to compile on systems + where /usr/lib is neither a symlink to /usr/lib64 or /usr/lib32. This adds + a FIND_LIBRARY_USE_LIB32_PATHS global property which is an analog to the + FIND_LIBRARY_USE_LIB64_PATHS property. + 11 Sep 2010; Raúl Porcel cmake-2.8.1-r2.ebuild: ia64/s390/sh/sparc stable wrt #325845 diff --git a/dev-util/cmake/Manifest b/dev-util/cmake/Manifest --- a/dev-util/cmake/Manifest +++ b/dev-util/cmake/Manifest @@ -1,3 +1,6 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + AUX 50cmake-gentoo.el 244 RMD160 effb4416a5170ed7c99ea74084f2598e2482fdf0 SHA1 c34102f3343980275169144b40af6ec69a87d7fc SHA256 6010e6df84aa23050fcbc490ae2b22802ede0870ff2e96c43fe541e97e0d6c00 AUX cmake-2.6.0-interix.patch 1657 RMD160 fe2e9675da5b66c041d8ae5f1c667cf605494674 SHA1 d21fa5346a939411d579ab308005f7867f012975 SHA256 944401813cd66fdefc68935778fc3fe2328f17a2f00d559dac8add63bb37faf7 AUX cmake-2.6.3-darwin-bundle.patch 952 RMD160 157295c7080e3fa5a1414c6f7efba4877049c5e7 SHA1 595740c64fd64e93763d7b1f59d341f9f8117482 SHA256 5429d3d7ba0d2bf2528b4cbf2bd36d3c83a051c064faa9c308d9adfeee334bca @@ -10,6 +13,7 @@ AUX cmake-2.8.1-FindBoost.patch 714 RMD1 AUX cmake-2.8.1-libform.patch 1818 RMD160 ca954dfe966cd73836ef9e01ffe8f0eda85f2f91 SHA1 8f8e9a0002b4a95cea7dcfc36c2df16c47008bec SHA256 3b4ee03c7733b3fb468c5d4c6b139358be751b2398b56ca4ecdbf8a86b1f1ed5 AUX cmake-2.8.1-more-no_host_paths.patch 2981 RMD160 fea9f1d96d8c29f55e424389fb4f2471dfe514d8 SHA1 90fdc2ad69aeb54530d1faf4867e40c233caf084 SHA256 0c3fbe76684851ee444be92a99f91e5a5e8dfef02d7426722e10025aeca03412 AUX cmake-2.8.1-mpi.patch 857 RMD160 d41e4dd445b1a79d0a82619a8ad7371e80d937a8 SHA1 0192124d023953d35cb5fb0da148c914525099e6 SHA256 64092fbf637bfe625cf58abe93844aab2e75ba22a00e5ffdb05188961b7f51d7 +AUX cmake-2.8.1-portage-multilib-lib32.patch 7180 RMD160 7eb40ee142a9018c1fa1249e2b3a147eb6b13bde SHA1 b745f34145e93c09a9dc0b99e03e933d3235dbf8 SHA256 9fb6fa1b7ee1b7f7836408d609403b8fa8f8151f0680315e6c6b5b1340e29e4d AUX cmake-FindJNI.patch 2020 RMD160 4fcb9714de65eb146a2696cd6613357684515b2d SHA1 c463daa6e7d3a1d7065607f97993b5da3486e7e1 SHA256 c5390550c192aea18415087ed891f7e5192b2a385c9c72f4cda0c19b13f6bfbb AUX cmake-FindPythonInterp.patch 498 RMD160 a4113724d0c2bdb53e7c947790d8a7e337759c84 SHA1 abd7754549fef5aae515361acd6a509c98227bf5 SHA256 8c3d4dc1898eae4adaa392b556286076594470277bc7c1bddbe2a28213fff7c0 AUX cmake-FindPythonLibs.patch 546 RMD160 429021001f1b464d8321703052890a34141a34ec SHA1 e5d62feab16058f123e1399e0504a50f50ee5a88 SHA256 86a5e78ff4e62cf8987401255197f7ba4ae70d00c257df3048372c5dcc035bdd @@ -17,6 +21,13 @@ AUX cmake.vim 217 RMD160 3ac23077646d31e DIST cmake-2.6.4.tar.gz 3285371 RMD160 e4217067537f76e52317514cb5bb0cf38733d16a SHA1 c7e295683e061c2ed19773a1f0444972f75db092 SHA256 9cdd2152e37b05d0d40d334a1bb2dfc0250021797360f971c6ea3d457ac9fdf2 DIST cmake-2.8.1.tar.gz 3605611 RMD160 38b0876597def32a535d5305fb8f706ff29beabe SHA1 fb93c8766a3bd71f2a824291717700c118d29be5 SHA256 4b65b819c00874c34196640411f6f9e877abf23733ba0ef68f73b4fafd3b3022 EBUILD cmake-2.6.4-r3.ebuild 3476 RMD160 e20f6f85b5291ced7e3ee53ff933a0da704b8f14 SHA1 72bb72aeea2261d1c5c5642018234803c35c32c5 SHA256 1c4a2f60dffb72d1134932b580e46d07a7784420a0c786f204d4b71dbfd928f0 -EBUILD cmake-2.8.1-r2.ebuild 4280 RMD160 21636bcf357ae6916086f9080e72a34b0dae0470 SHA1 2fe97a4b03a7a10e4e61b60b51d5df15ee12e43a SHA256 e9a1455b178c92869f1901dd41b5b7dc04af6e3dda43d4521b2f7ba0d110cf60 -MISC ChangeLog 22268 RMD160 b82eb02cdec9651f80133a5fffb60cbd47e8f685 SHA1 94ee1050e03df0786f21a953125b013e024e62b6 SHA256 72cda74eda7fe611ad56c29fda05d5192ce832e9654e76936944a5b2d8d591ce +EBUILD cmake-2.8.1-r2.ebuild 4336 RMD160 623a69ea9675131696dbc7e3efa7d3cf90030bb7 SHA1 818a56805e04a15f6df6b2d9d0186704a77c5763 SHA256 28a1ba850b1231d6b76eac6174e77174e7d719f54a3fdef2d0ce4133cd8a9120 +MISC ChangeLog 22693 RMD160 f34ef9f228c873b6aa4f1042a69785f80db9098a SHA1 17983af1e88b884329d0c19f0f675a1d7e486bac SHA256 370fc55436b6bea989adb2fe214c385067359395ec943297ce66298e616e31eb MISC metadata.xml 157 RMD160 09fb7b798f3f68127626e97c69e5215a0513ecbb SHA1 d5ffebb2f4248fc8f65ab21c3af6e4f5dbf8bf6e SHA256 01f6fa4357ce08e8b0f7900a51fa78c7f060fefc7c7da98acaec1e283dd59892 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.14 (GNU/Linux) + +iEYEARECAAYFAkyTeoYACgkQni8M22OVw8An8QCglPg+nQuRA2McpNH4FTjYIJ3b +Z+gAn2I7vQenJKkg1nMMADIXC2LOwvvJ +=zuwN +-----END PGP SIGNATURE----- diff --git a/dev-util/cmake/cmake-2.8.1-r2.ebuild b/dev-util/cmake/cmake-2.8.1-r2.ebuild --- a/dev-util/cmake/cmake-2.8.1-r2.ebuild +++ b/dev-util/cmake/cmake-2.8.1-r2.ebuild @@ -54,6 +54,7 @@ PATCHES=( "${FILESDIR}"/${PN}-2.8.1-FindBoost.patch "${FILESDIR}"/${PN}-2.8.1-libform.patch "${FILESDIR}"/${PN}-2.8.1-mpi.patch + "${FILESDIR}"/${PN}-2.8.1-portage-multilib-lib32.patch ) src_prepare() { diff --git a/dev-util/cmake/files/cmake-2.8.1-portage-multilib-lib32.patch b/dev-util/cmake/files/cmake-2.8.1-portage-multilib-lib32.patch new file mode 100644 --- /dev/null +++ b/dev-util/cmake/files/cmake-2.8.1-portage-multilib-lib32.patch @@ -0,0 +1,210 @@ +Author: Nathan Phillip Brink +Date: 2010/09/17 +Purpose: Add a global FIND_LIBRARY_USE_LIB32_PATHS property which is + an analog to the existing FIND_LIBRARY_USE_LIB64_PATHS + property. This fixes kde-base/kdelib's ability to find + automoc4 using FIND_PACKAGE's NO_MODULE mode on systems where + /usr/lib is neither a symlink to /usr/lib64 or /usr/lib32. + +--- a/Modules/Platform/Linux.cmake Thu Sep 16 23:47:47 2010 -0400 ++++ b/Modules/Platform/Linux.cmake Fri Sep 17 00:02:46 2010 -0400 +@@ -52,3 +52,9 @@ + IF(EXISTS "/etc/debian_version") + SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS FALSE) + ENDIF(EXISTS "/etc/debian_version") ++ ++# Gentoo's multilib project uses lib32 paths for 32-bit stuff. ++# Some crazy users don't even have /usr/lib as a symlink to /usr/lib32. ++IF(EXISTS "/etc/gentoo-release") ++ SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS TRUE) ++ENDIF(EXISTS "/etc/gentoo-release") + +--- a/Modules/Platform/UnixPaths.cmake Thu Sep 16 23:47:47 2010 -0400 ++++ b/Modules/Platform/UnixPaths.cmake Fri Sep 17 00:02:46 2010 -0400 +@@ -83,3 +83,5 @@ + + # Enable use of lib64 search path variants by default. + SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS TRUE) ++# Disable use of lib32 search path variants by default. ++SET_PROPERTY(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS FALSE) + +--- a/Source/cmFindLibraryCommand.cxx Thu Sep 16 23:47:47 2010 -0400 ++++ b/Source/cmFindLibraryCommand.cxx Fri Sep 17 00:02:46 2010 -0400 +@@ -92,6 +92,12 @@ + // add special 64 bit paths if this is a 64 bit compile. + this->AddLib64Paths(); + } ++ if(this->Makefile->GetCMakeInstance() ++ ->GetPropertyAsBool("FIND_LIBRARY_USE_LIB32_PATHS")) ++ { ++ // add special 32 bit paths if this is a 32 bit compile. ++ this->AddLib32Paths(); ++ } + + std::string library = this->FindLibrary(); + if(library != "") +@@ -205,6 +211,58 @@ + } + } + ++void cmFindLibraryCommand::AddLib32Paths() ++{ ++ if(!this->Makefile->GetLocalGenerator()->GetGlobalGenerator()-> ++ GetLanguageEnabled("C")) ++ { ++ return; ++ } ++ std::string voidsize = ++ this->Makefile->GetSafeDefinition("CMAKE_SIZEOF_VOID_P"); ++ int size = atoi(voidsize.c_str()); ++ if(size != 4) ++ { ++ return; ++ } ++ std::vector path32; ++ bool found32 = false; ++ for(std::vector::iterator i = this->SearchPaths.begin(); ++ i != this->SearchPaths.end(); ++i) ++ { ++ std::string s = *i; ++ std::string s2 = *i; ++ cmSystemTools::ReplaceString(s, "lib/", "lib32/"); ++ // try to replace lib with lib32 and see if it is there, ++ // then prepend it to the path ++ // Note that all paths have trailing slashes. ++ if((s != *i) && cmSystemTools::FileIsDirectory(s.c_str())) ++ { ++ path32.push_back(s); ++ found32 = true; ++ } ++ // now just add a 32 to the path name and if it is there, ++ // add it to the path ++ s2 += "32/"; ++ if(cmSystemTools::FileIsDirectory(s2.c_str())) ++ { ++ found32 = true; ++ path32.push_back(s2); ++ } ++ // now add the original unchanged path ++ if(cmSystemTools::FileIsDirectory(i->c_str())) ++ { ++ path32.push_back(*i); ++ } ++ } ++ // now replace the SearchPaths with the 32 bit converted path ++ // if any 32 bit paths were discovered ++ if(found32) ++ { ++ this->SearchPaths = path32; ++ } ++} ++ + //---------------------------------------------------------------------------- + std::string cmFindLibraryCommand::FindLibrary() + { +diff -r e70d3882a969 -r aefd3ae00585 Source/cmFindLibraryCommand.h +--- a/Source/cmFindLibraryCommand.h Thu Sep 16 23:47:47 2010 -0400 ++++ b/Source/cmFindLibraryCommand.h Fri Sep 17 00:02:46 2010 -0400 +@@ -63,6 +63,7 @@ + protected: + void AddArchitecturePaths(const char* suffix); + void AddLib64Paths(); ++ void AddLib32Paths(); + std::string FindLibrary(); + private: + std::string FindNormalLibrary(); +diff -r e70d3882a969 -r aefd3ae00585 Source/cmFindPackageCommand.cxx +--- a/Source/cmFindPackageCommand.cxx Thu Sep 16 23:47:47 2010 -0400 ++++ b/Source/cmFindPackageCommand.cxx Fri Sep 17 00:02:46 2010 -0400 +@@ -66,6 +66,7 @@ + this->NoModule = false; + this->DebugMode = false; + this->UseLib64Paths = false; ++ this->UseLib32Paths = false; + this->PolicyScope = true; + this->VersionMajor = 0; + this->VersionMinor = 0; +@@ -336,6 +337,13 @@ + { + this->UseLib64Paths = true; + } ++ // Lookup whether lib32 paths should beu sed. ++ if(this->Makefile->PlatformIs32Bit() && ++ this->Makefile->GetCMakeInstance() ++ ->GetPropertyAsBool("FIND_LIBRARY_USE_LIB32_PATHS")) ++ { ++ this->UseLib32Paths = true; ++ } + + // Find the current root path mode. + this->SelectDefaultRootPathMode(); +@@ -2002,6 +2010,10 @@ + { + common.push_back("lib64"); + } ++ if(this->UseLib32Paths) ++ { ++ common.push_back("lib32"); ++ } + common.push_back("lib"); + common.push_back("share"); + +diff -r e70d3882a969 -r aefd3ae00585 Source/cmFindPackageCommand.h +--- a/Source/cmFindPackageCommand.h Thu Sep 16 23:47:47 2010 -0400 ++++ b/Source/cmFindPackageCommand.h Fri Sep 17 00:02:46 2010 -0400 +@@ -133,6 +133,7 @@ + bool NoBuilds; + bool DebugMode; + bool UseLib64Paths; ++ bool UseLib32Paths; + bool PolicyScope; + std::vector Names; + std::vector Configs; +diff -r e70d3882a969 -r aefd3ae00585 Source/cmake.cxx +--- a/Source/cmake.cxx Thu Sep 16 23:47:47 2010 -0400 ++++ b/Source/cmake.cxx Fri Sep 17 00:02:46 2010 -0400 +@@ -3341,6 +3341,13 @@ + "directories called lib in the search path when building 64-bit " + "binaries."); + cm->DefineProperty ++ ("FIND_LIBRARY_USE_LIB32_PATHS", cmProperty::GLOBAL, ++ "Whether FIND_LIBRARY should automatically search lib32 directories.", ++ "FIND_LIBRARY_USE_LIB32_PATHS is a boolean specifying whether the" ++ " FIND_LIBRARY command should automatically search the lib32 variant of" ++ " directories called lib in the search path when building 32-bit" ++ " binaries."); ++ cm->DefineProperty + ("FIND_LIBRARY_USE_OPENBSD_VERSIONING", cmProperty::GLOBAL, + "Whether FIND_LIBRARY should find OpenBSD-style shared libraries.", + "This property is a boolean specifying whether the FIND_LIBRARY " + +--- a/Source/cmMakefile.cxx Fri Sep 17 00:02:46 2010 -0400 ++++ b/Source/cmMakefile.cxx Fri Sep 17 00:18:21 2010 -0400 +@@ -2011,6 +2011,15 @@ + return false; + } + ++bool cmMakefile::PlatformIs32Bit() const ++{ ++ if(const char* sizeof_dptr = this->GetDefinition("CMAKE_SIZEOF_VOID_P")) ++ { ++ return atoi(sizeof_dptr) == 4; ++ } ++ return false; ++} ++ + bool cmMakefile::CanIWriteThisFile(const char* fileName) + { + if ( !this->IsOn("CMAKE_DISABLE_SOURCE_CHANGES") ) +diff -r aefd3ae00585 -r ce173f631972 Source/cmMakefile.h +--- a/Source/cmMakefile.h Fri Sep 17 00:02:46 2010 -0400 ++++ b/Source/cmMakefile.h Fri Sep 17 00:18:21 2010 -0400 +@@ -585,6 +585,8 @@ + + /** Return whether the target platform is 64-bit. */ + bool PlatformIs64Bit() const; ++ /** Return whether the target platform is 32-bit. */ ++ bool PlatformIs32Bit() const; + + /** + * Get a list of preprocessor define flags.