summaryrefslogtreecommitdiffstats
path: root/Source/cmElseCommand.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmElseCommand.cxx')
-rw-r--r--Source/cmElseCommand.cxx56
1 files changed, 56 insertions, 0 deletions
diff --git a/Source/cmElseCommand.cxx b/Source/cmElseCommand.cxx
index 046fa88..5451004 100644
--- a/Source/cmElseCommand.cxx
+++ b/Source/cmElseCommand.cxx
@@ -86,6 +86,62 @@ bool cmElseCommand::InitialPass(std::vector<std::string> const& args)
}
}
+ if (args.size() == 3 && (args[1] == "LESS"))
+ {
+ def = m_Makefile->GetDefinition(args[0].c_str());
+ def2 = m_Makefile->GetDefinition(args[2].c_str());
+ if (!def)
+ {
+ def = args[0].c_str();
+ }
+ if (!def2)
+ {
+ def2 = args[2].c_str();
+ }
+ if(atof(def) < atof(def2))
+ {
+ f = new cmIfFunctionBlocker();
+ }
+ }
+
+ if (args.size() == 3 && (args[1] == "GREATER"))
+ {
+ def = m_Makefile->GetDefinition(args[0].c_str());
+ def2 = m_Makefile->GetDefinition(args[2].c_str());
+ if (!def)
+ {
+ def = args[0].c_str();
+ }
+ if (!def2)
+ {
+ def2 = args[2].c_str();
+ }
+ if(atof(def) > atof(def2))
+ {
+ f = new cmIfFunctionBlocker();
+ }
+ }
+
+ if (args.size() == 3 && (args[1] == "STRLESS"))
+ {
+ def = m_Makefile->GetDefinition(args[0].c_str());
+ def2 = m_Makefile->GetDefinition(args[2].c_str());
+ if(strcmp(def,def2) < 0)
+ {
+ f = new cmIfFunctionBlocker();
+ }
+ }
+
+ if (args.size() == 3 && (args[1] == "STRGREATER"))
+ {
+ def = m_Makefile->GetDefinition(args[0].c_str());
+ def2 = m_Makefile->GetDefinition(args[2].c_str());
+ if(strcmp(def,def2) > 0)
+ {
+ f = new cmIfFunctionBlocker();
+ }
+ }
+
if (args.size() == 3 && (args[1] == "MATCHES"))
{
def = m_Makefile->GetDefinition(args[0].c_str());