summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBill Hoffman <bill.hoffman@kitware.com>2004-04-28 13:51:06 (GMT)
committerBill Hoffman <bill.hoffman@kitware.com>2004-04-28 13:51:06 (GMT)
commitd76c9f8195b5f98f5fd2a99c88094192b9719288 (patch)
tree569b432eb7f45145ad09dc1bc90c29661261c4fa /Source
parentb2bddc9f0d81d79cc3839f20ad5475ffcb393876 (diff)
downloadCMake-d76c9f8195b5f98f5fd2a99c88094192b9719288.zip
CMake-d76c9f8195b5f98f5fd2a99c88094192b9719288.tar.gz
CMake-d76c9f8195b5f98f5fd2a99c88094192b9719288.tar.bz2
ENH: add a numeric EQUAL to the IF statment, very useful for variable arguments in MACROS
Diffstat (limited to 'Source')
-rw-r--r--Source/cmIfCommand.cxx11
-rw-r--r--Source/cmIfCommand.h4
2 files changed, 14 insertions, 1 deletions
diff --git a/Source/cmIfCommand.cxx b/Source/cmIfCommand.cxx
index cf925df..830e1ba 100644
--- a/Source/cmIfCommand.cxx
+++ b/Source/cmIfCommand.cxx
@@ -259,6 +259,17 @@ bool cmIfCommand::IsTrue(const std::vector<std::string> &args,
isValid = true;
}
+ if (args.size() == 3 && (args[1] == "EQUAL"))
+ {
+ def = cmIfCommand::GetVariableOrString(args[0].c_str(), makefile);
+ def2 = cmIfCommand::GetVariableOrString(args[2].c_str(), makefile);
+ if(atof(def) == atof(def2))
+ {
+ isTrue = false;
+ }
+ isValid = true;
+ }
+
if (args.size() == 3 && (args[1] == "STRLESS"))
{
def = cmIfCommand::GetVariableOrString(args[0].c_str(), makefile);
diff --git a/Source/cmIfCommand.h b/Source/cmIfCommand.h
index 05faac5..3dc72b9 100644
--- a/Source/cmIfCommand.h
+++ b/Source/cmIfCommand.h
@@ -137,8 +137,10 @@ public:
" IF(string LESS number)\n"
" IF(variable GREATER number)\n"
" IF(string GREATER number)\n"
+ " IF(variable EQUAL number)\n"
+ " IF(string EQUAL number)\n"
"True if the given string or variable's value is a valid number and "
- "the inequality is true.\n"
+ "the inequality or equality is true.\n"
" IF(variable STRLESS string)\n"
" IF(string STRLESS string)\n"
" IF(variable STRGREATER string)\n"