summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Reffett <creffett@gentoo.org>2013-01-01 19:25:58 +0000
committerChris Reffett <creffett@gentoo.org>2013-01-01 19:25:58 +0000
commit8f099f1b0003112d2d09980e6cd507bb957ca8ba (patch)
tree6d36addbdd3666e8f4497b2b958c04582f13f5bc /dev-util/cmake
parentAdd webkit-gtk-1.10's build space check to 1.8.3. (diff)
downloadgentoo-2-8f099f1b0003112d2d09980e6cd507bb957ca8ba.tar.gz
gentoo-2-8f099f1b0003112d2d09980e6cd507bb957ca8ba.tar.bz2
gentoo-2-8f099f1b0003112d2d09980e6cd507bb957ca8ba.zip
Revision bump. Add patch to fix stripping implicit include dirs, bug 444340. Add shell-script magic in ebuild to strip extra jobs values in MAKEOPTS (which causes build failures), bug 447040.
(Portage version: 2.2.0_alpha149/cvs/Linux x86_64, signed Manifest commit with key 42618354)
Diffstat (limited to 'dev-util/cmake')
-rw-r--r--dev-util/cmake/ChangeLog12
-rw-r--r--dev-util/cmake/cmake-2.8.10.2-r1.ebuild (renamed from dev-util/cmake/cmake-2.8.10.2.ebuild)7
-rw-r--r--dev-util/cmake/files/cmake-2.8.10.2-implicit-include.patch139
3 files changed, 153 insertions, 5 deletions
diff --git a/dev-util/cmake/ChangeLog b/dev-util/cmake/ChangeLog
index 373156f4bc5c..1ef0e52a34aa 100644
--- a/dev-util/cmake/ChangeLog
+++ b/dev-util/cmake/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for dev-util/cmake
-# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-util/cmake/ChangeLog,v 1.228 2012/11/27 22:07:55 creffett Exp $
+# Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-util/cmake/ChangeLog,v 1.229 2013/01/01 19:25:58 creffett Exp $
+
+*cmake-2.8.10.2-r1 (01 Jan 2013)
+
+ 01 Jan 2013; Chris Reffett <creffett@gentoo.org> +cmake-2.8.10.2-r1.ebuild,
+ +files/cmake-2.8.10.2-implicit-include.patch, -cmake-2.8.10.2.ebuild:
+ Revision bump. Add patch to fix stripping implicit include dirs, bug 444340.
+ Add shell-script magic in ebuild to strip extra jobs values in MAKEOPTS (which
+ causes build failures), bug 447040.
*cmake-2.8.10.2 (27 Nov 2012)
diff --git a/dev-util/cmake/cmake-2.8.10.2.ebuild b/dev-util/cmake/cmake-2.8.10.2-r1.ebuild
index 9dcbab2b7b81..0f26d5a35d11 100644
--- a/dev-util/cmake/cmake-2.8.10.2.ebuild
+++ b/dev-util/cmake/cmake-2.8.10.2-r1.ebuild
@@ -1,6 +1,6 @@
-# Copyright 1999-2012 Gentoo Foundation
+# Copyright 1999-2013 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-util/cmake/cmake-2.8.10.2.ebuild,v 1.1 2012/11/27 22:07:55 creffett Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-util/cmake/cmake-2.8.10.2-r1.ebuild,v 1.1 2013/01/01 19:25:58 creffett Exp $
EAPI=4
@@ -56,6 +56,7 @@ PATCHES=(
"${FILESDIR}"/${PN}-2.8.10-FindPythonLibs.patch
"${FILESDIR}"/${PN}-2.8.10-libform.patch
"${FILESDIR}"/${PN}-2.8.10-more-no_host_paths.patch
+ "${FILESDIR}"/${PN}-2.8.10.2-implicit-include.patch
)
cmake_src_bootstrap() {
@@ -63,7 +64,7 @@ cmake_src_bootstrap() {
# Because bootstrap does not know anything else.
echo ${MAKEOPTS} | egrep -o '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' > /dev/null
if [ $? -eq 0 ]; then
- par_arg=$(echo ${MAKEOPTS} | egrep -o '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' | egrep -o '[[:digit:]]+')
+ par_arg=$(echo ${MAKEOPTS} | egrep -o '(\-j|\-\-jobs)(=?|[[:space:]]*)[[:digit:]]+' | tail -n1 | egrep -o '[[:digit:]]+')
par_arg="--parallel=${par_arg}"
else
par_arg="--parallel=1"
diff --git a/dev-util/cmake/files/cmake-2.8.10.2-implicit-include.patch b/dev-util/cmake/files/cmake-2.8.10.2-implicit-include.patch
new file mode 100644
index 000000000000..f0ea5e814617
--- /dev/null
+++ b/dev-util/cmake/files/cmake-2.8.10.2-implicit-include.patch
@@ -0,0 +1,139 @@
+--- a/Source/cmLocalGenerator.cxx
++++ b/Source/cmLocalGenerator.cxx
+@@ -1329,7 +1329,9 @@ std::string cmLocalGenerator::GetIncludeFlags(
+ void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs,
+ cmGeneratorTarget* target,
+ const char* lang,
+- const char *config)
++ const char *config,
++ bool stripImplicitInclDirs
++ )
+ {
+ // Need to decide whether to automatically include the source and
+ // binary directories at the beginning of the include path.
+@@ -1404,18 +1406,21 @@ void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs,
+ return;
+ }
+
+- // Load implicit include directories for this language.
+- std::string impDirVar = "CMAKE_";
+- impDirVar += lang;
+- impDirVar += "_IMPLICIT_INCLUDE_DIRECTORIES";
+- if(const char* value = this->Makefile->GetDefinition(impDirVar.c_str()))
++ if (stripImplicitInclDirs)
+ {
+- std::vector<std::string> impDirVec;
+- cmSystemTools::ExpandListArgument(value, impDirVec);
+- for(std::vector<std::string>::const_iterator i = impDirVec.begin();
+- i != impDirVec.end(); ++i)
++ // Load implicit include directories for this language.
++ std::string impDirVar = "CMAKE_";
++ impDirVar += lang;
++ impDirVar += "_IMPLICIT_INCLUDE_DIRECTORIES";
++ if(const char* value = this->Makefile->GetDefinition(impDirVar.c_str()))
+ {
+- emitted.insert(*i);
++ std::vector<std::string> impDirVec;
++ cmSystemTools::ExpandListArgument(value, impDirVec);
++ for(std::vector<std::string>::const_iterator i = impDirVec.begin();
++ i != impDirVec.end(); ++i)
++ {
++ emitted.insert(*i);
++ }
+ }
+ }
+
+--- a/Source/cmLocalGenerator.h
++++ b/Source/cmLocalGenerator.h
+@@ -212,7 +212,8 @@ public:
+ /** Get the include flags for the current makefile and language. */
+ void GetIncludeDirectories(std::vector<std::string>& dirs,
+ cmGeneratorTarget* target,
+- const char* lang = "C", const char *config = 0);
++ const char* lang = "C", const char *config = 0,
++ bool stripImplicitInclDirs = true);
+
+ /** Compute the language used to compile the given source file. */
+ const char* GetSourceFileLanguage(const cmSourceFile& source);
+--- a/Source/cmQtAutomoc.cxx
++++ b/Source/cmQtAutomoc.cxx
+@@ -212,36 +212,11 @@ void cmQtAutomoc::SetupAutomocTarget(cmTarget* target)
+ }
+
+
+- const char* qtIncDir = 0;
+- const char* qtCoreIncDir = 0;
+-
+- // check whether ${QT_INCLUDE_DIR} is part of the implicit include dirs,
+- // see http://public.kitware.com/Bug/view.php?id=13667
+- bool qtIncludeDirMayHaveBeenRemoved = false;
+- if (makefile->IsSet("QT_INCLUDE_DIR"))
+- {
+- qtIncDir = makefile->GetDefinition("QT_INCLUDE_DIR");
+- std::string s =
+- makefile->GetSafeDefinition("CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES");
+- std::vector<std::string> implIncDirs;
+- cmSystemTools::ExpandListArgument(s, implIncDirs);
+- if (std::find(implIncDirs.begin(), implIncDirs.end(),std::string(qtIncDir))
+- != implIncDirs.end())
+- {
+- qtIncludeDirMayHaveBeenRemoved = true;
+- if (makefile->IsSet("QT_QTCORE_INCLUDE_DIR"))
+- {
+- qtCoreIncDir = makefile->GetDefinition("QT_QTCORE_INCLUDE_DIR");
+- }
+- }
+- }
+-
+- bool haveQtCoreIncDir = false;
+- bool haveQtIncDir = false;
+-
+ std::vector<std::string> includeDirs;
+ cmGeneratorTarget gtgt(target);
+- localGen->GetIncludeDirectories(includeDirs, &gtgt, "CXX");
++ // Get the include dirs for this target, without stripping the implicit
++ // include dirs off, see http://public.kitware.com/Bug/view.php?id=13667
++ localGen->GetIncludeDirectories(includeDirs, &gtgt, "CXX", 0, false);
+ std::string _moc_incs = "";
+ const char* sep = "";
+ for(std::vector<std::string>::const_iterator incDirIt = includeDirs.begin();
+@@ -251,37 +226,6 @@ void cmQtAutomoc::SetupAutomocTarget(cmTarget* target)
+ _moc_incs += sep;
+ sep = ";";
+ _moc_incs += *incDirIt;
+-
+- if (qtIncludeDirMayHaveBeenRemoved && qtCoreIncDir && qtIncDir) // #13667
+- {
+- if (*incDirIt == qtIncDir)
+- {
+- haveQtIncDir = true;
+- qtIncludeDirMayHaveBeenRemoved = false; // it's here, i.e. not removed
+- }
+- if (*incDirIt == qtCoreIncDir)
+- {
+- haveQtCoreIncDir = true;
+- }
+- }
+- }
+-
+- // Some projects (kdelibs, phonon) query the compiler for its default
+- // include search dirs, and add those to
+- // CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES.
+- // These may include e.g./usr/lib/qt/include . This is typically also part
+- // of ${QT_INCLUDES}. If this directory is then contained in the implicit
+- // include dirs, it is removed from the include dirs returned from the
+- // target above. So we add ${QT_INCLUDE_DIR} manually for moc if we detected
+- // that ${QT_QTCORE_INCLUDE_DIR} is among the include dirs (there shouldn't
+- // be a way to use Qt4 without using ${QT_QTCORE_INCLUDE_DIR} I think.
+- // See #13646 and #13667.
+- if (qtIncludeDirMayHaveBeenRemoved && qtCoreIncDir && qtIncDir
+- && (haveQtCoreIncDir == true) && (haveQtIncDir == false))
+- {
+- _moc_incs += sep;
+- sep = ";";
+- _moc_incs += qtIncDir;
+ }
+
+ const char* tmp = target->GetProperty("COMPILE_DEFINITIONS");
+--
+1.7.0