diff options
Diffstat (limited to 'Source')
-rw-r--r-- | Source/CMakeVersion.cmake | 2 | ||||
-rw-r--r-- | Source/QtDialog/QCMakeCacheView.cxx | 2 | ||||
-rw-r--r-- | Source/cmGeneratorExpression.cxx | 24 | ||||
-rw-r--r-- | Source/cmLocalGenerator.cxx | 37 |
4 files changed, 48 insertions, 17 deletions
diff --git a/Source/CMakeVersion.cmake b/Source/CMakeVersion.cmake index 02b6477..27e313a 100644 --- a/Source/CMakeVersion.cmake +++ b/Source/CMakeVersion.cmake @@ -2,5 +2,5 @@ set(CMake_VERSION_MAJOR 2) set(CMake_VERSION_MINOR 8) set(CMake_VERSION_PATCH 10) -set(CMake_VERSION_TWEAK 20130319) +set(CMake_VERSION_TWEAK 20130325) #set(CMake_VERSION_RC 1) diff --git a/Source/QtDialog/QCMakeCacheView.cxx b/Source/QtDialog/QCMakeCacheView.cxx index 031350b..6006758 100644 --- a/Source/QtDialog/QCMakeCacheView.cxx +++ b/Source/QtDialog/QCMakeCacheView.cxx @@ -491,7 +491,7 @@ QCMakePropertyList QCMakeCacheModel::properties() const // go to the next in the tree while(!idxs.isEmpty() && ( -#if QT_VERSION < QT_VERSION_CHECK(5, 0, 3) +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) && QT_VERSION < QT_VERSION_CHECK(5, 1, 0) (idxs.last().row()+1) >= rowCount(idxs.last().parent()) || #endif !idxs.last().sibling(idxs.last().row()+1, 0).isValid())) diff --git a/Source/cmGeneratorExpression.cxx b/Source/cmGeneratorExpression.cxx index 3f59129..ab8bd13 100644 --- a/Source/cmGeneratorExpression.cxx +++ b/Source/cmGeneratorExpression.cxx @@ -236,9 +236,29 @@ static std::string stripExportInterface(const std::string &input, std::string::size_type pos = 0; std::string::size_type lastPos = pos; - while((pos = input.find("$<BUILD_INTERFACE:", lastPos)) != input.npos - || (pos = input.find("$<INSTALL_INTERFACE:", lastPos)) != input.npos) + while (true) { + std::string::size_type bPos = input.find("$<BUILD_INTERFACE:", lastPos); + std::string::size_type iPos = input.find("$<INSTALL_INTERFACE:", lastPos); + + if (bPos == std::string::npos && iPos == std::string::npos) + { + break; + } + + if (bPos == std::string::npos) + { + pos = iPos; + } + else if (iPos == std::string::npos) + { + pos = bPos; + } + else + { + pos = (bPos < iPos) ? bPos : iPos; + } + result += input.substr(lastPos, pos - lastPos); const bool gotInstallInterface = input[pos + 2] == 'I'; pos += gotInstallInterface ? sizeof("$<INSTALL_INTERFACE:") - 1 diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx index dc39fdc..ee5b9d8 100644 --- a/Source/cmLocalGenerator.cxx +++ b/Source/cmLocalGenerator.cxx @@ -1407,20 +1407,22 @@ void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs, return; } - if (stripImplicitInclDirs) - { - // 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())) - { - std::vector<std::string> impDirVec; - cmSystemTools::ExpandListArgument(value, impDirVec); - for(std::vector<std::string>::const_iterator i = impDirVec.begin(); - i != impDirVec.end(); ++i) + std::vector<std::string> implicitDirs; + // 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())) + { + 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); + if (!stripImplicitInclDirs) { - emitted.insert(*i); + implicitDirs.push_back(*i); } } } @@ -1463,6 +1465,15 @@ void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs, dirs.push_back(*i); } } + + for(std::vector<std::string>::const_iterator i = implicitDirs.begin(); + i != implicitDirs.end(); ++i) + { + if(std::find(includes.begin(), includes.end(), *i) != includes.end()) + { + dirs.push_back(*i); + } + } } void cmLocalGenerator::GetTargetFlags(std::string& linkLibs, |