summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStephen Kelly <steveire@gmail.com>2014-05-15 09:49:02 (GMT)
committerStephen Kelly <steveire@gmail.com>2014-05-20 14:11:35 (GMT)
commitb6dedf034e33dfafcb804c01691a080701ee680a (patch)
tree0ab0da3fe7075804f3046f3a3438464ce042bcd6
parent8dd129dfbb8f8aeefa333a0bfa5f44d835b6913e (diff)
downloadCMake-b6dedf034e33dfafcb804c01691a080701ee680a.zip
CMake-b6dedf034e33dfafcb804c01691a080701ee680a.tar.gz
CMake-b6dedf034e33dfafcb804c01691a080701ee680a.tar.bz2
cmMakefile: Extract CheckNeeded{C,Cxx}Language methods.
-rw-r--r--Source/cmMakefile.cxx41
-rw-r--r--Source/cmMakefile.h5
2 files changed, 34 insertions, 12 deletions
diff --git a/Source/cmMakefile.cxx b/Source/cmMakefile.cxx
index 4317fbe..7bcbeb8 100644
--- a/Source/cmMakefile.cxx
+++ b/Source/cmMakefile.cxx
@@ -5121,13 +5121,10 @@ CompileFeaturesAvailable(const std::string& lang, std::string *error) const
}
//----------------------------------------------------------------------------
-bool cmMakefile::
-AddRequiredTargetCxxFeature(cmTarget *target,
- const std::string& feature) const
+void cmMakefile::CheckNeededCxxLanguage(const std::string& feature,
+ bool& needCxx98,
+ bool& needCxx11) const
{
- bool needCxx98 = false;
- bool needCxx11 = false;
-
if (const char *propCxx98 =
this->GetDefinition("CMAKE_CXX98_COMPILE_FEATURES"))
{
@@ -5142,6 +5139,17 @@ AddRequiredTargetCxxFeature(cmTarget *target,
cmSystemTools::ExpandListArgument(propCxx11, props);
needCxx11 = std::find(props.begin(), props.end(), feature) != props.end();
}
+}
+
+//----------------------------------------------------------------------------
+bool cmMakefile::
+AddRequiredTargetCxxFeature(cmTarget *target,
+ const std::string& feature) const
+{
+ bool needCxx98 = false;
+ bool needCxx11 = false;
+
+ this->CheckNeededCxxLanguage(feature, needCxx98, needCxx11);
const char *existingCxxStandard = target->GetProperty("CXX_STANDARD");
if (existingCxxStandard)
@@ -5192,13 +5200,11 @@ AddRequiredTargetCxxFeature(cmTarget *target,
}
//----------------------------------------------------------------------------
-bool cmMakefile::
-AddRequiredTargetCFeature(cmTarget *target, const std::string& feature) const
+void cmMakefile::CheckNeededCLanguage(const std::string& feature,
+ bool& needC90,
+ bool& needC99,
+ bool& needC11) const
{
- bool needC90 = false;
- bool needC99 = false;
- bool needC11 = false;
-
if (const char *propC90 =
this->GetDefinition("CMAKE_C90_COMPILE_FEATURES"))
{
@@ -5220,6 +5226,17 @@ AddRequiredTargetCFeature(cmTarget *target, const std::string& feature) const
cmSystemTools::ExpandListArgument(propC11, props);
needC11 = std::find(props.begin(), props.end(), feature) != props.end();
}
+}
+
+//----------------------------------------------------------------------------
+bool cmMakefile::
+AddRequiredTargetCFeature(cmTarget *target, const std::string& feature) const
+{
+ bool needC90 = false;
+ bool needC99 = false;
+ bool needC11 = false;
+
+ this->CheckNeededCLanguage(feature, needC90, needC99, needC11);
const char *existingCStandard = target->GetProperty("C_STANDARD");
if (existingCStandard)
diff --git a/Source/cmMakefile.h b/Source/cmMakefile.h
index be384e6..40e44a5 100644
--- a/Source/cmMakefile.h
+++ b/Source/cmMakefile.h
@@ -1110,6 +1110,11 @@ private:
bool AddRequiredTargetCxxFeature(cmTarget *target,
const std::string& feature) const;
+
+ void CheckNeededCLanguage(const std::string& feature, bool& needC90,
+ bool& needC99, bool& needC11) const;
+ void CheckNeededCxxLanguage(const std::string& feature, bool& needCxx98,
+ bool& needCxx11) const;
};
//----------------------------------------------------------------------------