summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2011-12-04 15:36:48 (GMT)
committerDavid Cole <david.cole@kitware.com>2012-02-22 11:31:49 (GMT)
commitedd5303949f9d0e1b4b11e83aecd34bfdb2700ce (patch)
treee7c4328884cba9f0c5b07fb3ed4c78d39ecbb02a /Source
parent6a1c5a356911d3b75e60ecad86d7538e6de888f9 (diff)
downloadCMake-edd5303949f9d0e1b4b11e83aecd34bfdb2700ce.zip
CMake-edd5303949f9d0e1b4b11e83aecd34bfdb2700ce.tar.gz
CMake-edd5303949f9d0e1b4b11e83aecd34bfdb2700ce.tar.bz2
Refactor GetIncludeFlags to take includes instead of fetching them
Diffstat (limited to 'Source')
-rw-r--r--Source/cmLocalGenerator.cxx15
-rw-r--r--Source/cmLocalGenerator.h4
-rw-r--r--Source/cmMakefileTargetGenerator.cxx6
-rw-r--r--Source/cmake.cxx6
4 files changed, 21 insertions, 10 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index ffbeb48..b02fc36 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -574,7 +574,11 @@ void cmLocalGenerator::AddCustomCommandToCreateObject(const char* ofname,
std::string flags;
flags += this->Makefile->GetSafeDefinition(varString.c_str());
flags += " ";
- flags += this->GetIncludeFlags(lang);
+ {
+ std::vector<std::string> includes;
+ this->GetIncludeDirectories(includes, lang);
+ flags += this->GetIncludeFlags(includes, lang);
+ }
flags += this->Makefile->GetDefineFlags();
// Construct the command lines.
@@ -1192,8 +1196,9 @@ cmLocalGenerator::ConvertToIncludeReference(std::string const& path)
}
//----------------------------------------------------------------------------
-const char* cmLocalGenerator::GetIncludeFlags(const char* lang,
- bool forResponseFile)
+const char* cmLocalGenerator::GetIncludeFlags(
+ const std::vector<std::string> &includes,
+ const char* lang, bool forResponseFile)
{
if(!lang)
{
@@ -1207,9 +1212,6 @@ const char* cmLocalGenerator::GetIncludeFlags(const char* lang,
}
cmOStringStream includeFlags;
- std::vector<std::string> includes;
- this->GetIncludeDirectories(includes, lang);
- std::vector<std::string>::iterator i;
std::string flagVar = "CMAKE_INCLUDE_FLAG_";
flagVar += lang;
@@ -1251,6 +1253,7 @@ const char* cmLocalGenerator::GetIncludeFlags(const char* lang,
#ifdef __APPLE__
emitted.insert("/System/Library/Frameworks");
#endif
+ std::vector<std::string>::const_iterator i;
for(i = includes.begin(); i != includes.end(); ++i)
{
if(this->Makefile->IsOn("APPLE")
diff --git a/Source/cmLocalGenerator.h b/Source/cmLocalGenerator.h
index 0c5b9d0..7e737ef 100644
--- a/Source/cmLocalGenerator.h
+++ b/Source/cmLocalGenerator.h
@@ -146,8 +146,8 @@ public:
///! Append flags to a string.
virtual void AppendFlags(std::string& flags, const char* newFlags);
///! Get the include flags for the current makefile and language
- const char* GetIncludeFlags(const char* lang,
- bool forResponseFile = false);
+ const char* GetIncludeFlags(const std::vector<std::string> &includes,
+ const char* lang, bool forResponseFile = false);
/**
* Encode a list of preprocessor definitions for the compiler
diff --git a/Source/cmMakefileTargetGenerator.cxx b/Source/cmMakefileTargetGenerator.cxx
index a3a832b..dd982fb 100644
--- a/Source/cmMakefileTargetGenerator.cxx
+++ b/Source/cmMakefileTargetGenerator.cxx
@@ -1829,8 +1829,12 @@ void cmMakefileTargetGenerator::AddIncludeFlags(std::string& flags,
responseVar += "_USE_RESPONSE_FILE_FOR_INCLUDES";
bool useResponseFile = this->Makefile->IsOn(responseVar.c_str());
+
+ std::vector<std::string> includes;
+ this->LocalGenerator->GetIncludeDirectories(includes, lang);
+
std::string includeFlags =
- this->LocalGenerator->GetIncludeFlags(lang, useResponseFile);
+ this->LocalGenerator->GetIncludeFlags(includes, lang, useResponseFile);
if(includeFlags.empty())
{
return;
diff --git a/Source/cmake.cxx b/Source/cmake.cxx
index cce5080..749caf5 100644
--- a/Source/cmake.cxx
+++ b/Source/cmake.cxx
@@ -605,7 +605,11 @@ bool cmake::FindPackage(const std::vector<std::string>& args)
mf->AddIncludeDirectory(dirIt->c_str(), false);
}
- std::string includeFlags = lg->GetIncludeFlags(language.c_str(), false);
+ std::vector<std::string> includeDirectories;
+ lg->GetIncludeDirectories(includeDirectories, language.c_str());
+ std::string includeFlags = lg->GetIncludeFlags(includeDirectories,
+ language.c_str(), false);
+
std::string definitions = mf->GetSafeDefinition("PACKAGE_DEFINITIONS");
printf("%s %s\n", includeFlags.c_str(), definitions.c_str());
}