summaryrefslogtreecommitdiffstats
path: root/Source/cmLocalGenerator.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmLocalGenerator.cxx')
-rw-r--r--Source/cmLocalGenerator.cxx47
1 files changed, 26 insertions, 21 deletions
diff --git a/Source/cmLocalGenerator.cxx b/Source/cmLocalGenerator.cxx
index 9174e26..edf80e6 100644
--- a/Source/cmLocalGenerator.cxx
+++ b/Source/cmLocalGenerator.cxx
@@ -1253,6 +1253,12 @@ std::string cmLocalGenerator::GetIncludeFlags(
sysIncludeFlag = this->Makefile->GetDefinition(sysFlagVar.c_str());
}
+ std::string fwSearchFlagVar = "CMAKE_";
+ fwSearchFlagVar += lang;
+ fwSearchFlagVar += "_FRAMEWORK_SEARCH_FLAG";
+ const char* fwSearchFlag =
+ this->Makefile->GetDefinition(fwSearchFlagVar.c_str());
+
bool flagUsed = false;
std::set<cmStdString> emitted;
#ifdef __APPLE__
@@ -1261,7 +1267,7 @@ std::string cmLocalGenerator::GetIncludeFlags(
std::vector<std::string>::const_iterator i;
for(i = includes.begin(); i != includes.end(); ++i)
{
- if(this->Makefile->IsOn("APPLE")
+ if(fwSearchFlag && *fwSearchFlag && this->Makefile->IsOn("APPLE")
&& cmSystemTools::IsPathToFramework(i->c_str()))
{
std::string frameworkDir = *i;
@@ -1271,8 +1277,8 @@ std::string cmLocalGenerator::GetIncludeFlags(
{
OutputFormat format = forResponseFile? RESPONSE : SHELL;
includeFlags
- << "-F" << this->Convert(frameworkDir.c_str(),
- START_OUTPUT, format, true)
+ << fwSearchFlag << this->Convert(frameworkDir.c_str(),
+ START_OUTPUT, format, true)
<< " ";
}
continue;
@@ -1406,13 +1412,6 @@ void cmLocalGenerator::GetIncludeDirectories(std::vector<std::string>& dirs,
includeBinaryDir = true;
}
- // CMake versions below 2.0 would add the source tree to the -I path
- // automatically. Preserve compatibility.
- if(this->NeedBackwardsCompatibility(1,9))
- {
- includeSourceDir = true;
- }
-
// Hack for VTK 4.0 - 4.4 which depend on the old behavior but do
// not set the backwards compatibility level automatically.
const char* vtkSourceDir =
@@ -1770,13 +1769,21 @@ void cmLocalGenerator::OutputLinkLibraries(std::string& linkLibraries,
}
// Append the framework search path flags.
- std::vector<std::string> const& fwDirs = cli.GetFrameworkPaths();
- for(std::vector<std::string>::const_iterator fdi = fwDirs.begin();
- fdi != fwDirs.end(); ++fdi)
+ std::string fwSearchFlagVar = "CMAKE_";
+ fwSearchFlagVar += linkLanguage;
+ fwSearchFlagVar += "_FRAMEWORK_SEARCH_FLAG";
+ const char* fwSearchFlag =
+ this->Makefile->GetDefinition(fwSearchFlagVar.c_str());
+ if(fwSearchFlag && *fwSearchFlag)
{
- frameworkPath += "-F";
- frameworkPath += this->Convert(fdi->c_str(), NONE, SHELL, false);
- frameworkPath += " ";
+ std::vector<std::string> const& fwDirs = cli.GetFrameworkPaths();
+ for(std::vector<std::string>::const_iterator fdi = fwDirs.begin();
+ fdi != fwDirs.end(); ++fdi)
+ {
+ frameworkPath += fwSearchFlag;
+ frameworkPath += this->Convert(fdi->c_str(), NONE, SHELL, false);
+ frameworkPath += " ";
+ }
}
// Append the library search path flags.
@@ -3057,7 +3064,7 @@ cmLocalGenerator
// Decide whether this language wants to replace the source
// extension with the object extension. For CMake 2.4
// compatibility do this by default.
- bool replaceExt = this->NeedBackwardsCompatibility(2, 4);
+ bool replaceExt = this->NeedBackwardsCompatibility_2_4();
if(!replaceExt)
{
if(const char* lang = source.GetLanguage())
@@ -3304,9 +3311,7 @@ unsigned int cmLocalGenerator::GetBackwardsCompatibility()
}
//----------------------------------------------------------------------------
-bool cmLocalGenerator::NeedBackwardsCompatibility(unsigned int major,
- unsigned int minor,
- unsigned int patch)
+bool cmLocalGenerator::NeedBackwardsCompatibility_2_4()
{
// Check the policy to decide whether to pay attention to this
// variable.
@@ -3334,7 +3339,7 @@ bool cmLocalGenerator::NeedBackwardsCompatibility(unsigned int major,
// equal to or lower than the given version.
unsigned int actual_compat = this->GetBackwardsCompatibility();
return (actual_compat &&
- actual_compat <= CMake_VERSION_ENCODE(major, minor, patch));
+ actual_compat <= CMake_VERSION_ENCODE(2, 4, 255));
}
//----------------------------------------------------------------------------