Add additional <= and >= comparison operators
This adds the LESS_EQUAL, GREATER_EQUAL, and associated STR and VERSION equivalents to use the combined <= and >= functionality.
This commit is contained in:
parent
93b705a396
commit
02d177c9cc
|
@ -30,10 +30,12 @@ else and endif clause is optional. Long expressions can be used and
|
||||||
there is a traditional order of precedence. Parenthetical expressions
|
there is a traditional order of precedence. Parenthetical expressions
|
||||||
are evaluated first followed by unary tests such as ``EXISTS``,
|
are evaluated first followed by unary tests such as ``EXISTS``,
|
||||||
``COMMAND``, and ``DEFINED``. Then any binary tests such as
|
``COMMAND``, and ``DEFINED``. Then any binary tests such as
|
||||||
``EQUAL``, ``LESS``, ``GREATER``, ``STRLESS``, ``STRGREATER``,
|
``EQUAL``, ``LESS``, ``LESS_EQUAL, ``GREATER``, ``GREATER_EQUAL``,
|
||||||
``STREQUAL``, and ``MATCHES`` will be evaluated. Then boolean ``NOT``
|
``STREQUAL``, ``STRLESS``, ``STRLESS_EQUAL``, ``STRGREATER``,
|
||||||
operators and finally boolean ``AND`` and then ``OR`` operators will
|
``STRGREATER_EQUAL``, ``VERSION_EQUAL``, ``VERSION_LESS``,
|
||||||
be evaluated.
|
``VERSION_LESS_EQUAL``, ``VERSION_GREATER``, ``VERSION_GREATER_EQUAL``,
|
||||||
|
and ``MATCHES`` will be evaluated. Then boolean ``NOT`` operators and
|
||||||
|
finally boolean ``AND`` and then ``OR`` operators will be evaluated.
|
||||||
|
|
||||||
Possible expressions are:
|
Possible expressions are:
|
||||||
|
|
||||||
|
@ -115,6 +117,14 @@ Possible expressions are:
|
||||||
True if the given string or variable's value is a valid number and equal
|
True if the given string or variable's value is a valid number and equal
|
||||||
to that on the right.
|
to that on the right.
|
||||||
|
|
||||||
|
``if(<variable|string> LESS_EQUAL <variable|string>)``
|
||||||
|
True if the given string or variable's value is a valid number and less
|
||||||
|
than or equal to that on the right.
|
||||||
|
|
||||||
|
``if(<variable|string> GREATER_EQUAL <variable|string>)``
|
||||||
|
True if the given string or variable's value is a valid number and greater
|
||||||
|
than or equal to that on the right.
|
||||||
|
|
||||||
``if(<variable|string> STRLESS <variable|string>)``
|
``if(<variable|string> STRLESS <variable|string>)``
|
||||||
True if the given string or variable's value is lexicographically less
|
True if the given string or variable's value is lexicographically less
|
||||||
than the string or variable on the right.
|
than the string or variable on the right.
|
||||||
|
@ -127,15 +137,31 @@ Possible expressions are:
|
||||||
True if the given string or variable's value is lexicographically equal
|
True if the given string or variable's value is lexicographically equal
|
||||||
to the string or variable on the right.
|
to the string or variable on the right.
|
||||||
|
|
||||||
|
``if(<variable|string> STRLESS_EQUAL <variable|string>)``
|
||||||
|
True if the given string or variable's value is lexicographically less
|
||||||
|
than or equal to the string or variable on the right.
|
||||||
|
|
||||||
|
``if(<variable|string> STRGREATER_EQUAL <variable|string>)``
|
||||||
|
True if the given string or variable's value is lexicographically greater
|
||||||
|
than or equal to the string or variable on the right.
|
||||||
|
|
||||||
``if(<variable|string> VERSION_LESS <variable|string>)``
|
``if(<variable|string> VERSION_LESS <variable|string>)``
|
||||||
Component-wise integer version number comparison (version format is
|
Component-wise integer version number comparison (version format is
|
||||||
``major[.minor[.patch[.tweak]]]``).
|
``major[.minor[.patch[.tweak]]]``).
|
||||||
|
|
||||||
|
``if(<variable|string> VERSION_GREATER <variable|string>)``
|
||||||
|
Component-wise integer version number comparison (version format is
|
||||||
|
``major[.minor[.patch[.tweak]]]``).
|
||||||
|
|
||||||
``if(<variable|string> VERSION_EQUAL <variable|string>)``
|
``if(<variable|string> VERSION_EQUAL <variable|string>)``
|
||||||
Component-wise integer version number comparison (version format is
|
Component-wise integer version number comparison (version format is
|
||||||
``major[.minor[.patch[.tweak]]]``).
|
``major[.minor[.patch[.tweak]]]``).
|
||||||
|
|
||||||
``if(<variable|string> VERSION_GREATER <variable|string>)``
|
``if(<variable|string> VERSION_LESS_EQUAL <variable|string>)``
|
||||||
|
Component-wise integer version number comparison (version format is
|
||||||
|
``major[.minor[.patch[.tweak]]]``).
|
||||||
|
|
||||||
|
``if(<variable|string> VERSION_GREATER_EQUAL <variable|string>)``
|
||||||
Component-wise integer version number comparison (version format is
|
Component-wise integer version number comparison (version format is
|
||||||
``major[.minor[.patch[.tweak]]]``).
|
``major[.minor[.patch[.tweak]]]``).
|
||||||
|
|
||||||
|
@ -186,20 +212,21 @@ above-documented signature accepts ``<variable|string>``:
|
||||||
* If the left hand argument to ``MATCHES`` is missing it returns false
|
* If the left hand argument to ``MATCHES`` is missing it returns false
|
||||||
without error
|
without error
|
||||||
|
|
||||||
* Both left and right hand arguments to ``LESS``, ``GREATER``, and
|
* Both left and right hand arguments to ``LESS``, ``GREATER``, ``EQUAL``,
|
||||||
``EQUAL`` are independently tested to see if they are defined
|
``LESS_EQUAL``, and ``GREATER_EQUAL``, are independently tested to see if
|
||||||
variables, if so their defined values are used otherwise the original
|
they are defined variables, if so their defined values are used otherwise
|
||||||
value is used.
|
the original value is used.
|
||||||
|
|
||||||
* Both left and right hand arguments to ``STRLESS``, ``STREQUAL``, and
|
* Both left and right hand arguments to ``STRLESS``, ``STRGREATER``,
|
||||||
``STRGREATER`` are independently tested to see if they are defined
|
``STREQUAL``, ``STRLESS_EQUAL``, and ``STRGREATER_EQUAL`` are independently
|
||||||
variables, if so their defined values are used otherwise the original
|
tested to see if they are defined variables, if so their defined values are
|
||||||
value is used.
|
used otherwise the original value is used.
|
||||||
|
|
||||||
* Both left and right hand arguments to ``VERSION_LESS``,
|
* Both left and right hand arguments to ``VERSION_LESS``,
|
||||||
``VERSION_EQUAL``, and ``VERSION_GREATER`` are independently tested
|
``VERSION_GREATER``, ``VERSION_EQUAL``, ``VERSION_LESS_EQUAL``, and
|
||||||
to see if they are defined variables, if so their defined values are
|
``VERSION_GREATER_EQUAL`` are independently tested to see if they are defined
|
||||||
used otherwise the original value is used.
|
variables, if so their defined values are used otherwise the original value
|
||||||
|
is used.
|
||||||
|
|
||||||
* The right hand argument to ``NOT`` is tested to see if it is a boolean
|
* The right hand argument to ``NOT`` is tested to see if it is a boolean
|
||||||
constant, if so the value is used, otherwise it is assumed to be a
|
constant, if so the value is used, otherwise it is assumed to be a
|
||||||
|
|
|
@ -197,10 +197,12 @@ Comparison
|
||||||
|
|
||||||
::
|
::
|
||||||
|
|
||||||
string(COMPARE EQUAL <string1> <string2> <output variable>)
|
|
||||||
string(COMPARE NOTEQUAL <string1> <string2> <output variable>)
|
|
||||||
string(COMPARE LESS <string1> <string2> <output variable>)
|
string(COMPARE LESS <string1> <string2> <output variable>)
|
||||||
string(COMPARE GREATER <string1> <string2> <output variable>)
|
string(COMPARE GREATER <string1> <string2> <output variable>)
|
||||||
|
string(COMPARE EQUAL <string1> <string2> <output variable>)
|
||||||
|
string(COMPARE NOTEQUAL <string1> <string2> <output variable>)
|
||||||
|
string(COMPARE LESS_EQUAL <string1> <string2> <output variable>)
|
||||||
|
string(COMPARE GREATER_EQUAL <string1> <string2> <output variable>)
|
||||||
|
|
||||||
Compare the strings and store true or false in the output variable.
|
Compare the strings and store true or false in the output variable.
|
||||||
|
|
||||||
|
|
|
@ -66,12 +66,16 @@ Available logical expressions are:
|
||||||
``1`` if the CMake-id of the C compiler matches ``comp``, otherwise ``0``.
|
``1`` if the CMake-id of the C compiler matches ``comp``, otherwise ``0``.
|
||||||
``$<CXX_COMPILER_ID:comp>``
|
``$<CXX_COMPILER_ID:comp>``
|
||||||
``1`` if the CMake-id of the CXX compiler matches ``comp``, otherwise ``0``.
|
``1`` if the CMake-id of the CXX compiler matches ``comp``, otherwise ``0``.
|
||||||
``$<VERSION_GREATER:v1,v2>``
|
|
||||||
``1`` if ``v1`` is a version greater than ``v2``, else ``0``.
|
|
||||||
``$<VERSION_LESS:v1,v2>``
|
``$<VERSION_LESS:v1,v2>``
|
||||||
``1`` if ``v1`` is a version less than ``v2``, else ``0``.
|
``1`` if ``v1`` is a version less than ``v2``, else ``0``.
|
||||||
|
``$<VERSION_GREATER:v1,v2>``
|
||||||
|
``1`` if ``v1`` is a version greater than ``v2``, else ``0``.
|
||||||
``$<VERSION_EQUAL:v1,v2>``
|
``$<VERSION_EQUAL:v1,v2>``
|
||||||
``1`` if ``v1`` is the same version as ``v2``, else ``0``.
|
``1`` if ``v1`` is the same version as ``v2``, else ``0``.
|
||||||
|
``$<VERSION_LESS_EQUAL:v1,v2>``
|
||||||
|
``1`` if ``v1`` is a version less than or equal to ``v2``, else ``0``.
|
||||||
|
``$<VERSION_GREATER_EQUAL:v1,v2>``
|
||||||
|
``1`` if ``v1`` is a version greater than or equal to ``v2``, else ``0``.
|
||||||
``$<C_COMPILER_VERSION:ver>``
|
``$<C_COMPILER_VERSION:ver>``
|
||||||
``1`` if the version of the C compiler matches ``ver``, otherwise ``0``.
|
``1`` if the version of the C compiler matches ``ver``, otherwise ``0``.
|
||||||
``$<CXX_COMPILER_VERSION:ver>``
|
``$<CXX_COMPILER_VERSION:ver>``
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
add-extra-boolean-comparisons
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
* The :command:`if` command gained new boolean comparison operations
|
||||||
|
``LESS_EQUAL``, ``GREATER_EQUAL``, ``STRLESS_EQUAL``, ``STRGREATER_EQUAL``,
|
||||||
|
``VERSION_LESS_EQUAL``, and ``VERSION_GREATER_EQUAL``.
|
|
@ -26,11 +26,11 @@ Individual component values are also available in variables:
|
||||||
* :variable:`CMAKE_PATCH_VERSION`
|
* :variable:`CMAKE_PATCH_VERSION`
|
||||||
* :variable:`CMAKE_TWEAK_VERSION`
|
* :variable:`CMAKE_TWEAK_VERSION`
|
||||||
|
|
||||||
Use the :command:`if` command ``VERSION_LESS``, ``VERSION_EQUAL``, or
|
Use the :command:`if` command ``VERSION_LESS``, ``VERSION_GREATER``,
|
||||||
``VERSION_GREATER`` operators to compare version string values against
|
``VERSION_EQUAL``, ``VERSION_LESS_EQUAL``, or ``VERSION_GREATER_EQUAL``
|
||||||
``CMAKE_VERSION`` using a component-wise test. Version component
|
operators to compare version string values against ``CMAKE_VERSION`` using a
|
||||||
values may be 10 or larger so do not attempt to compare version
|
component-wise test. Version component values may be 10 or larger so do not
|
||||||
strings as floating-point numbers.
|
attempt to compare version strings as floating-point numbers.
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
|
|
||||||
|
|
|
@ -366,11 +366,8 @@ bool cmCTest::ShouldCompressTestOutput()
|
||||||
if (!this->ComputedCompressTestOutput) {
|
if (!this->ComputedCompressTestOutput) {
|
||||||
std::string cdashVersion = this->GetCDashVersion();
|
std::string cdashVersion = this->GetCDashVersion();
|
||||||
// version >= 1.6?
|
// version >= 1.6?
|
||||||
bool cdashSupportsGzip =
|
bool cdashSupportsGzip = cmSystemTools::VersionCompare(
|
||||||
cmSystemTools::VersionCompare(cmSystemTools::OP_GREATER,
|
cmSystemTools::OP_GREATER_EQUAL, cdashVersion.c_str(), "1.6");
|
||||||
cdashVersion.c_str(), "1.6") ||
|
|
||||||
cmSystemTools::VersionCompare(cmSystemTools::OP_EQUAL,
|
|
||||||
cdashVersion.c_str(), "1.6");
|
|
||||||
this->CompressTestOutput &= cdashSupportsGzip;
|
this->CompressTestOutput &= cdashSupportsGzip;
|
||||||
this->ComputedCompressTestOutput = true;
|
this->ComputedCompressTestOutput = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,12 +21,14 @@ static std::string const keyDEFINED = "DEFINED";
|
||||||
static std::string const keyEQUAL = "EQUAL";
|
static std::string const keyEQUAL = "EQUAL";
|
||||||
static std::string const keyEXISTS = "EXISTS";
|
static std::string const keyEXISTS = "EXISTS";
|
||||||
static std::string const keyGREATER = "GREATER";
|
static std::string const keyGREATER = "GREATER";
|
||||||
|
static std::string const keyGREATER_EQUAL = "GREATER_EQUAL";
|
||||||
static std::string const keyIN_LIST = "IN_LIST";
|
static std::string const keyIN_LIST = "IN_LIST";
|
||||||
static std::string const keyIS_ABSOLUTE = "IS_ABSOLUTE";
|
static std::string const keyIS_ABSOLUTE = "IS_ABSOLUTE";
|
||||||
static std::string const keyIS_DIRECTORY = "IS_DIRECTORY";
|
static std::string const keyIS_DIRECTORY = "IS_DIRECTORY";
|
||||||
static std::string const keyIS_NEWER_THAN = "IS_NEWER_THAN";
|
static std::string const keyIS_NEWER_THAN = "IS_NEWER_THAN";
|
||||||
static std::string const keyIS_SYMLINK = "IS_SYMLINK";
|
static std::string const keyIS_SYMLINK = "IS_SYMLINK";
|
||||||
static std::string const keyLESS = "LESS";
|
static std::string const keyLESS = "LESS";
|
||||||
|
static std::string const keyLESS_EQUAL = "LESS_EQUAL";
|
||||||
static std::string const keyMATCHES = "MATCHES";
|
static std::string const keyMATCHES = "MATCHES";
|
||||||
static std::string const keyNOT = "NOT";
|
static std::string const keyNOT = "NOT";
|
||||||
static std::string const keyOR = "OR";
|
static std::string const keyOR = "OR";
|
||||||
|
@ -35,12 +37,16 @@ static std::string const keyParenR = ")";
|
||||||
static std::string const keyPOLICY = "POLICY";
|
static std::string const keyPOLICY = "POLICY";
|
||||||
static std::string const keySTREQUAL = "STREQUAL";
|
static std::string const keySTREQUAL = "STREQUAL";
|
||||||
static std::string const keySTRGREATER = "STRGREATER";
|
static std::string const keySTRGREATER = "STRGREATER";
|
||||||
|
static std::string const keySTRGREATER_EQUAL = "STRGREATER_EQUAL";
|
||||||
static std::string const keySTRLESS = "STRLESS";
|
static std::string const keySTRLESS = "STRLESS";
|
||||||
|
static std::string const keySTRLESS_EQUAL = "STRLESS_EQUAL";
|
||||||
static std::string const keyTARGET = "TARGET";
|
static std::string const keyTARGET = "TARGET";
|
||||||
static std::string const keyTEST = "TEST";
|
static std::string const keyTEST = "TEST";
|
||||||
static std::string const keyVERSION_EQUAL = "VERSION_EQUAL";
|
static std::string const keyVERSION_EQUAL = "VERSION_EQUAL";
|
||||||
static std::string const keyVERSION_GREATER = "VERSION_GREATER";
|
static std::string const keyVERSION_GREATER = "VERSION_GREATER";
|
||||||
|
static std::string const keyVERSION_GREATER_EQUAL = "VERSION_GREATER_EQUAL";
|
||||||
static std::string const keyVERSION_LESS = "VERSION_LESS";
|
static std::string const keyVERSION_LESS = "VERSION_LESS";
|
||||||
|
static std::string const keyVERSION_LESS_EQUAL = "VERSION_LESS_EQUAL";
|
||||||
|
|
||||||
cmConditionEvaluator::cmConditionEvaluator(cmMakefile& makefile,
|
cmConditionEvaluator::cmConditionEvaluator(cmMakefile& makefile,
|
||||||
const cmListFileContext& context,
|
const cmListFileContext& context,
|
||||||
|
@ -559,7 +565,9 @@ bool cmConditionEvaluator::HandleLevel2(cmArgumentList& newArgs,
|
||||||
|
|
||||||
if (argP1 != newArgs.end() && argP2 != newArgs.end() &&
|
if (argP1 != newArgs.end() && argP2 != newArgs.end() &&
|
||||||
(this->IsKeyword(keyLESS, *argP1) ||
|
(this->IsKeyword(keyLESS, *argP1) ||
|
||||||
|
this->IsKeyword(keyLESS_EQUAL, *argP1) ||
|
||||||
this->IsKeyword(keyGREATER, *argP1) ||
|
this->IsKeyword(keyGREATER, *argP1) ||
|
||||||
|
this->IsKeyword(keyGREATER_EQUAL, *argP1) ||
|
||||||
this->IsKeyword(keyEQUAL, *argP1))) {
|
this->IsKeyword(keyEQUAL, *argP1))) {
|
||||||
def = this->GetVariableOrString(*arg);
|
def = this->GetVariableOrString(*arg);
|
||||||
def2 = this->GetVariableOrString(*argP2);
|
def2 = this->GetVariableOrString(*argP2);
|
||||||
|
@ -570,8 +578,12 @@ bool cmConditionEvaluator::HandleLevel2(cmArgumentList& newArgs,
|
||||||
result = false;
|
result = false;
|
||||||
} else if (*(argP1) == keyLESS) {
|
} else if (*(argP1) == keyLESS) {
|
||||||
result = (lhs < rhs);
|
result = (lhs < rhs);
|
||||||
|
} else if (*(argP1) == keyLESS_EQUAL) {
|
||||||
|
result = (lhs <= rhs);
|
||||||
} else if (*(argP1) == keyGREATER) {
|
} else if (*(argP1) == keyGREATER) {
|
||||||
result = (lhs > rhs);
|
result = (lhs > rhs);
|
||||||
|
} else if (*(argP1) == keyGREATER_EQUAL) {
|
||||||
|
result = (lhs >= rhs);
|
||||||
} else {
|
} else {
|
||||||
result = (lhs == rhs);
|
result = (lhs == rhs);
|
||||||
}
|
}
|
||||||
|
@ -580,16 +592,22 @@ bool cmConditionEvaluator::HandleLevel2(cmArgumentList& newArgs,
|
||||||
|
|
||||||
if (argP1 != newArgs.end() && argP2 != newArgs.end() &&
|
if (argP1 != newArgs.end() && argP2 != newArgs.end() &&
|
||||||
(this->IsKeyword(keySTRLESS, *argP1) ||
|
(this->IsKeyword(keySTRLESS, *argP1) ||
|
||||||
this->IsKeyword(keySTREQUAL, *argP1) ||
|
this->IsKeyword(keySTRLESS_EQUAL, *argP1) ||
|
||||||
this->IsKeyword(keySTRGREATER, *argP1))) {
|
this->IsKeyword(keySTRGREATER, *argP1) ||
|
||||||
|
this->IsKeyword(keySTRGREATER_EQUAL, *argP1) ||
|
||||||
|
this->IsKeyword(keySTREQUAL, *argP1))) {
|
||||||
def = this->GetVariableOrString(*arg);
|
def = this->GetVariableOrString(*arg);
|
||||||
def2 = this->GetVariableOrString(*argP2);
|
def2 = this->GetVariableOrString(*argP2);
|
||||||
int val = strcmp(def, def2);
|
int val = strcmp(def, def2);
|
||||||
bool result;
|
bool result;
|
||||||
if (*(argP1) == keySTRLESS) {
|
if (*(argP1) == keySTRLESS) {
|
||||||
result = (val < 0);
|
result = (val < 0);
|
||||||
|
} else if (*(argP1) == keySTRLESS_EQUAL) {
|
||||||
|
result = (val <= 0);
|
||||||
} else if (*(argP1) == keySTRGREATER) {
|
} else if (*(argP1) == keySTRGREATER) {
|
||||||
result = (val > 0);
|
result = (val > 0);
|
||||||
|
} else if (*(argP1) == keySTRGREATER_EQUAL) {
|
||||||
|
result = (val >= 0);
|
||||||
} else // strequal
|
} else // strequal
|
||||||
{
|
{
|
||||||
result = (val == 0);
|
result = (val == 0);
|
||||||
|
@ -599,15 +617,23 @@ bool cmConditionEvaluator::HandleLevel2(cmArgumentList& newArgs,
|
||||||
|
|
||||||
if (argP1 != newArgs.end() && argP2 != newArgs.end() &&
|
if (argP1 != newArgs.end() && argP2 != newArgs.end() &&
|
||||||
(this->IsKeyword(keyVERSION_LESS, *argP1) ||
|
(this->IsKeyword(keyVERSION_LESS, *argP1) ||
|
||||||
|
this->IsKeyword(keyVERSION_LESS_EQUAL, *argP1) ||
|
||||||
this->IsKeyword(keyVERSION_GREATER, *argP1) ||
|
this->IsKeyword(keyVERSION_GREATER, *argP1) ||
|
||||||
|
this->IsKeyword(keyVERSION_GREATER_EQUAL, *argP1) ||
|
||||||
this->IsKeyword(keyVERSION_EQUAL, *argP1))) {
|
this->IsKeyword(keyVERSION_EQUAL, *argP1))) {
|
||||||
def = this->GetVariableOrString(*arg);
|
def = this->GetVariableOrString(*arg);
|
||||||
def2 = this->GetVariableOrString(*argP2);
|
def2 = this->GetVariableOrString(*argP2);
|
||||||
cmSystemTools::CompareOp op = cmSystemTools::OP_EQUAL;
|
cmSystemTools::CompareOp op;
|
||||||
if (*argP1 == keyVERSION_LESS) {
|
if (*argP1 == keyVERSION_LESS) {
|
||||||
op = cmSystemTools::OP_LESS;
|
op = cmSystemTools::OP_LESS;
|
||||||
|
} else if (*argP1 == keyVERSION_LESS_EQUAL) {
|
||||||
|
op = cmSystemTools::OP_LESS_EQUAL;
|
||||||
} else if (*argP1 == keyVERSION_GREATER) {
|
} else if (*argP1 == keyVERSION_GREATER) {
|
||||||
op = cmSystemTools::OP_GREATER;
|
op = cmSystemTools::OP_GREATER;
|
||||||
|
} else if (*argP1 == keyVERSION_GREATER_EQUAL) {
|
||||||
|
op = cmSystemTools::OP_GREATER_EQUAL;
|
||||||
|
} else { // version_equal
|
||||||
|
op = cmSystemTools::OP_EQUAL;
|
||||||
}
|
}
|
||||||
bool result = cmSystemTools::VersionCompare(op, def, def2);
|
bool result = cmSystemTools::VersionCompare(op, def, def2);
|
||||||
this->HandleBinaryOp(result, reducible, arg, newArgs, argP1, argP2);
|
this->HandleBinaryOp(result, reducible, arg, newArgs, argP1, argP2);
|
||||||
|
|
|
@ -545,6 +545,25 @@ static const struct VersionGreaterNode : public cmGeneratorExpressionNode
|
||||||
}
|
}
|
||||||
} versionGreaterNode;
|
} versionGreaterNode;
|
||||||
|
|
||||||
|
static const struct VersionGreaterEqNode : public cmGeneratorExpressionNode
|
||||||
|
{
|
||||||
|
VersionGreaterEqNode() {}
|
||||||
|
|
||||||
|
int NumExpectedParameters() const CM_OVERRIDE { return 2; }
|
||||||
|
|
||||||
|
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||||
|
cmGeneratorExpressionContext*,
|
||||||
|
const GeneratorExpressionContent*,
|
||||||
|
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||||
|
{
|
||||||
|
return cmSystemTools::VersionCompare(cmSystemTools::OP_GREATER_EQUAL,
|
||||||
|
parameters.front().c_str(),
|
||||||
|
parameters[1].c_str())
|
||||||
|
? "1"
|
||||||
|
: "0";
|
||||||
|
}
|
||||||
|
} versionGreaterEqNode;
|
||||||
|
|
||||||
static const struct VersionLessNode : public cmGeneratorExpressionNode
|
static const struct VersionLessNode : public cmGeneratorExpressionNode
|
||||||
{
|
{
|
||||||
VersionLessNode() {}
|
VersionLessNode() {}
|
||||||
|
@ -564,6 +583,25 @@ static const struct VersionLessNode : public cmGeneratorExpressionNode
|
||||||
}
|
}
|
||||||
} versionLessNode;
|
} versionLessNode;
|
||||||
|
|
||||||
|
static const struct VersionLessEqNode : public cmGeneratorExpressionNode
|
||||||
|
{
|
||||||
|
VersionLessEqNode() {}
|
||||||
|
|
||||||
|
int NumExpectedParameters() const CM_OVERRIDE { return 2; }
|
||||||
|
|
||||||
|
std::string Evaluate(const std::vector<std::string>& parameters,
|
||||||
|
cmGeneratorExpressionContext*,
|
||||||
|
const GeneratorExpressionContent*,
|
||||||
|
cmGeneratorExpressionDAGChecker*) const CM_OVERRIDE
|
||||||
|
{
|
||||||
|
return cmSystemTools::VersionCompare(cmSystemTools::OP_LESS_EQUAL,
|
||||||
|
parameters.front().c_str(),
|
||||||
|
parameters[1].c_str())
|
||||||
|
? "1"
|
||||||
|
: "0";
|
||||||
|
}
|
||||||
|
} versionLessEqNode;
|
||||||
|
|
||||||
static const struct VersionEqualNode : public cmGeneratorExpressionNode
|
static const struct VersionEqualNode : public cmGeneratorExpressionNode
|
||||||
{
|
{
|
||||||
VersionEqualNode() {}
|
VersionEqualNode() {}
|
||||||
|
@ -1641,7 +1679,9 @@ const cmGeneratorExpressionNode* cmGeneratorExpressionNode::GetNode(
|
||||||
nodeMap["C_COMPILER_ID"] = &cCompilerIdNode;
|
nodeMap["C_COMPILER_ID"] = &cCompilerIdNode;
|
||||||
nodeMap["CXX_COMPILER_ID"] = &cxxCompilerIdNode;
|
nodeMap["CXX_COMPILER_ID"] = &cxxCompilerIdNode;
|
||||||
nodeMap["VERSION_GREATER"] = &versionGreaterNode;
|
nodeMap["VERSION_GREATER"] = &versionGreaterNode;
|
||||||
|
nodeMap["VERSION_GREATER_EQUAL"] = &versionGreaterEqNode;
|
||||||
nodeMap["VERSION_LESS"] = &versionLessNode;
|
nodeMap["VERSION_LESS"] = &versionLessNode;
|
||||||
|
nodeMap["VERSION_LESS_EQUAL"] = &versionLessEqNode;
|
||||||
nodeMap["VERSION_EQUAL"] = &versionEqualNode;
|
nodeMap["VERSION_EQUAL"] = &versionEqualNode;
|
||||||
nodeMap["C_COMPILER_VERSION"] = &cCompilerVersionNode;
|
nodeMap["C_COMPILER_VERSION"] = &cCompilerVersionNode;
|
||||||
nodeMap["CXX_COMPILER_VERSION"] = &cxxCompilerVersionNode;
|
nodeMap["CXX_COMPILER_VERSION"] = &cxxCompilerVersionNode;
|
||||||
|
|
|
@ -485,7 +485,8 @@ bool cmStringCommand::HandleCompareCommand(
|
||||||
}
|
}
|
||||||
std::string mode = args[1];
|
std::string mode = args[1];
|
||||||
if ((mode == "EQUAL") || (mode == "NOTEQUAL") || (mode == "LESS") ||
|
if ((mode == "EQUAL") || (mode == "NOTEQUAL") || (mode == "LESS") ||
|
||||||
(mode == "GREATER")) {
|
(mode == "LESS_EQUAL") || (mode == "GREATER") ||
|
||||||
|
(mode == "GREATER_EQUAL")) {
|
||||||
if (args.size() < 5) {
|
if (args.size() < 5) {
|
||||||
std::string e = "sub-command COMPARE, mode ";
|
std::string e = "sub-command COMPARE, mode ";
|
||||||
e += mode;
|
e += mode;
|
||||||
|
@ -500,8 +501,12 @@ bool cmStringCommand::HandleCompareCommand(
|
||||||
bool result;
|
bool result;
|
||||||
if (mode == "LESS") {
|
if (mode == "LESS") {
|
||||||
result = (left < right);
|
result = (left < right);
|
||||||
|
} else if (mode == "LESS_EQUAL") {
|
||||||
|
result = (left <= right);
|
||||||
} else if (mode == "GREATER") {
|
} else if (mode == "GREATER") {
|
||||||
result = (left > right);
|
result = (left > right);
|
||||||
|
} else if (mode == "GREATER_EQUAL") {
|
||||||
|
result = (left >= right);
|
||||||
} else if (mode == "EQUAL") {
|
} else if (mode == "EQUAL") {
|
||||||
result = (left == right);
|
result = (left == right);
|
||||||
} else // if(mode == "NOTEQUAL")
|
} else // if(mode == "NOTEQUAL")
|
||||||
|
|
|
@ -2380,10 +2380,10 @@ bool cmSystemTools::VersionCompare(cmSystemTools::CompareOp op,
|
||||||
|
|
||||||
if (lhs < rhs) {
|
if (lhs < rhs) {
|
||||||
// lhs < rhs, so true if operation is LESS
|
// lhs < rhs, so true if operation is LESS
|
||||||
return op == cmSystemTools::OP_LESS;
|
return (op & cmSystemTools::OP_LESS) != 0;
|
||||||
} else if (lhs > rhs) {
|
} else if (lhs > rhs) {
|
||||||
// lhs > rhs, so true if operation is GREATER
|
// lhs > rhs, so true if operation is GREATER
|
||||||
return op == cmSystemTools::OP_GREATER;
|
return (op & cmSystemTools::OP_GREATER) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (*endr == '.') {
|
if (*endr == '.') {
|
||||||
|
@ -2395,7 +2395,7 @@ bool cmSystemTools::VersionCompare(cmSystemTools::CompareOp op,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// lhs == rhs, so true if operation is EQUAL
|
// lhs == rhs, so true if operation is EQUAL
|
||||||
return op == cmSystemTools::OP_EQUAL;
|
return (op & cmSystemTools::OP_EQUAL) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool cmSystemTools::VersionCompareEqual(std::string const& lhs,
|
bool cmSystemTools::VersionCompareEqual(std::string const& lhs,
|
||||||
|
@ -2412,6 +2412,13 @@ bool cmSystemTools::VersionCompareGreater(std::string const& lhs,
|
||||||
rhs.c_str());
|
rhs.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool cmSystemTools::VersionCompareGreaterEq(std::string const& lhs,
|
||||||
|
std::string const& rhs)
|
||||||
|
{
|
||||||
|
return cmSystemTools::VersionCompare(cmSystemTools::OP_GREATER_EQUAL,
|
||||||
|
lhs.c_str(), rhs.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
bool cmSystemTools::RemoveRPath(std::string const& file, std::string* emsg,
|
bool cmSystemTools::RemoveRPath(std::string const& file, std::string* emsg,
|
||||||
bool* removed)
|
bool* removed)
|
||||||
{
|
{
|
||||||
|
|
|
@ -284,9 +284,11 @@ public:
|
||||||
|
|
||||||
enum CompareOp
|
enum CompareOp
|
||||||
{
|
{
|
||||||
OP_LESS,
|
OP_EQUAL = 1,
|
||||||
OP_GREATER,
|
OP_LESS = 2,
|
||||||
OP_EQUAL
|
OP_GREATER = 4,
|
||||||
|
OP_LESS_EQUAL = OP_LESS | OP_EQUAL,
|
||||||
|
OP_GREATER_EQUAL = OP_GREATER | OP_EQUAL
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -297,6 +299,8 @@ public:
|
||||||
std::string const& rhs);
|
std::string const& rhs);
|
||||||
static bool VersionCompareGreater(std::string const& lhs,
|
static bool VersionCompareGreater(std::string const& lhs,
|
||||||
std::string const& rhs);
|
std::string const& rhs);
|
||||||
|
static bool VersionCompareGreaterEq(std::string const& lhs,
|
||||||
|
std::string const& rhs);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine the file type based on the extension
|
* Determine the file type based on the extension
|
||||||
|
|
|
@ -83,10 +83,24 @@ foreach(v IN LISTS LESSV)
|
||||||
message(FATAL_ERROR "${CMAKE_MATCH_2} is less than ${CMAKE_MATCH_1}?")
|
message(FATAL_ERROR "${CMAKE_MATCH_2} is less than ${CMAKE_MATCH_1}?")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# check greater or equal (same as less negative)
|
||||||
|
if(CMAKE_MATCH_2 VERSION_GREATER_EQUAL CMAKE_MATCH_1)
|
||||||
|
message(STATUS "${CMAKE_MATCH_2} is not less than ${CMAKE_MATCH_1}")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "${CMAKE_MATCH_2} is less than ${CMAKE_MATCH_1}?")
|
||||||
|
endif()
|
||||||
|
|
||||||
# check greater negative case
|
# check greater negative case
|
||||||
if(NOT CMAKE_MATCH_1 VERSION_GREATER CMAKE_MATCH_2)
|
if(NOT CMAKE_MATCH_1 VERSION_GREATER CMAKE_MATCH_2)
|
||||||
message(STATUS "${CMAKE_MATCH_1} is not greater than ${CMAKE_MATCH_2}")
|
message(STATUS "${CMAKE_MATCH_1} is not greater than ${CMAKE_MATCH_2}")
|
||||||
else()
|
else()
|
||||||
message(FATAL_ERROR "${CMAKE_MATCH_1} is greater than ${CMAKE_MATCH_2}?")
|
message(FATAL_ERROR "${CMAKE_MATCH_1} is greater than ${CMAKE_MATCH_2}?")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
# check less or equal (same as greater negative) case
|
||||||
|
if(CMAKE_MATCH_1 VERSION_LESS_EQUAL CMAKE_MATCH_2)
|
||||||
|
message(STATUS "${CMAKE_MATCH_1} is not greater than ${CMAKE_MATCH_2}")
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "${CMAKE_MATCH_1} is greater than ${CMAKE_MATCH_2}?")
|
||||||
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
|
@ -106,11 +106,11 @@ macro(ADD_SECONDS sec)
|
||||||
set(new_min ${${GD_PREFIX}MINUTE})
|
set(new_min ${${GD_PREFIX}MINUTE})
|
||||||
set(new_hr ${${GD_PREFIX}HOUR})
|
set(new_hr ${${GD_PREFIX}HOUR})
|
||||||
math(EXPR new_sec "${sec} + ${${GD_PREFIX}SECOND}")
|
math(EXPR new_sec "${sec} + ${${GD_PREFIX}SECOND}")
|
||||||
while(${new_sec} GREATER 60 OR ${new_sec} EQUAL 60)
|
while(${new_sec} GREATER_EQUAL 60)
|
||||||
math(EXPR new_sec "${new_sec} - 60")
|
math(EXPR new_sec "${new_sec} - 60")
|
||||||
math(EXPR new_min "${${GD_PREFIX}MINUTE} + 1")
|
math(EXPR new_min "${${GD_PREFIX}MINUTE} + 1")
|
||||||
endwhile()
|
endwhile()
|
||||||
while(${new_min} GREATER 60 OR ${new_min} EQUAL 60)
|
while(${new_min} GREATER_EQUAL 60)
|
||||||
math(EXPR new_min "${new_min} - 60")
|
math(EXPR new_min "${new_min} - 60")
|
||||||
math(EXPR new_hr "${${GD_PREFIX}HOUR} + 1")
|
math(EXPR new_hr "${${GD_PREFIX}HOUR} + 1")
|
||||||
endwhile()
|
endwhile()
|
||||||
|
|
|
@ -92,6 +92,12 @@ endif()
|
||||||
if(NOT 2.4 EQUAL 2.4)
|
if(NOT 2.4 EQUAL 2.4)
|
||||||
message(FATAL_ERROR "Failed: NOT 2.4 EQUAL 2.4")
|
message(FATAL_ERROR "Failed: NOT 2.4 EQUAL 2.4")
|
||||||
endif()
|
endif()
|
||||||
|
if(NOT 2.4 LESS_EQUAL 2.4)
|
||||||
|
message(FATAL_ERROR "Failed: NOT 2.4 LESS_EQUAL 2.4")
|
||||||
|
endif()
|
||||||
|
if(NOT 2.4 GREATER_EQUAL 2.4)
|
||||||
|
message(FATAL_ERROR "Failed: NOT 2.4 GREATER_EQUAL 2.4")
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CMAKE_SYSTEM MATCHES "OSF1-V")
|
if(CMAKE_SYSTEM MATCHES "OSF1-V")
|
||||||
if(NOT CMAKE_COMPILER_IS_GNUCXX)
|
if(NOT CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
|
|
@ -455,7 +455,7 @@ int main()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_LESS
|
#ifndef SHOULD_BE_DEFINED_LESS
|
||||||
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_LESS is not defined.\n");
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_LESS is not defined.");
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_LESS is defined.");
|
cmPassed("SHOULD_BE_DEFINED_LESS is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
@ -467,7 +467,7 @@ int main()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_LESS2
|
#ifndef SHOULD_BE_DEFINED_LESS2
|
||||||
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_LESS2 is not defined.\n");
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_LESS2 is not defined.");
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_LESS2 is defined.");
|
cmPassed("SHOULD_BE_DEFINED_LESS2 is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
@ -478,20 +478,8 @@ int main()
|
||||||
cmPassed("SHOULD_NOT_BE_DEFINED_GREATER is not defined.");
|
cmPassed("SHOULD_NOT_BE_DEFINED_GREATER is not defined.");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef SHOULD_NOT_BE_DEFINED_EQUAL
|
|
||||||
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_EQUAL is defined.");
|
|
||||||
#else
|
|
||||||
cmPassed("SHOULD_NOT_BE_DEFINED_EQUAL is not defined.");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_EQUAL
|
|
||||||
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_EQUAL is not defined.\n");
|
|
||||||
#else
|
|
||||||
cmPassed("SHOULD_BE_DEFINED_EQUAL is defined.");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_GREATER
|
#ifndef SHOULD_BE_DEFINED_GREATER
|
||||||
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_GREATER is not defined.\n");
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_GREATER is not defined.");
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_GREATER is defined.");
|
cmPassed("SHOULD_BE_DEFINED_GREATER is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
@ -503,12 +491,107 @@ int main()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_GREATER2
|
#ifndef SHOULD_BE_DEFINED_GREATER2
|
||||||
cmFailed(
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_GREATER2 is not defined.");
|
||||||
"IF or SET is broken, SHOULD_BE_DEFINED_GREATER2 is not defined.\n");
|
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_GREATER2 is defined.");
|
cmPassed("SHOULD_BE_DEFINED_GREATER2 is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_EQUAL
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_EQUAL is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_EQUAL is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_EQUAL
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_EQUAL is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_EQUAL is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_LESS_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_LESS_EQUAL is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_LESS_EQUAL is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_LESS_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_LESS_EQUAL is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_LESS_EQUAL is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_LESS_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_LESS_EQUAL2 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_LESS_EQUAL2 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_LESS_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_LESS_EQUAL2 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_LESS_EQUAL2 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_LESS_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_LESS_EQUAL3 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_LESS_EQUAL3 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_LESS_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_LESS_EQUAL3 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_LESS_EQUAL3 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_GREATER_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_GREATER_EQUAL is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_GREATER_EQUAL is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_GREATER_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_GREATER_EQUAL is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_GREATER_EQUAL is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_GREATER_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_GREATER_EQUAL2 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_GREATER_EQUAL2 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_GREATER_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_GREATER_EQUAL2 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_GREATER_EQUAL2 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_GREATER_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_GREATER_EQUAL3 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_GREATER_EQUAL3 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_GREATER_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_GREATER_EQUAL3 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_GREATER_EQUAL3 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef SHOULD_NOT_BE_DEFINED_STRLESS
|
#ifdef SHOULD_NOT_BE_DEFINED_STRLESS
|
||||||
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRLESS is defined.");
|
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRLESS is defined.");
|
||||||
#else
|
#else
|
||||||
|
@ -516,7 +599,7 @@ int main()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_STRLESS
|
#ifndef SHOULD_BE_DEFINED_STRLESS
|
||||||
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_STRLESS is not defined.\n");
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_STRLESS is not defined.");
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_STRLESS is defined.");
|
cmPassed("SHOULD_BE_DEFINED_STRLESS is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
@ -528,8 +611,7 @@ int main()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_STRLESS2
|
#ifndef SHOULD_BE_DEFINED_STRLESS2
|
||||||
cmFailed(
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_STRLESS2 is not defined.");
|
||||||
"IF or SET is broken, SHOULD_BE_DEFINED_STRLESS2 is not defined.\n");
|
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_STRLESS2 is defined.");
|
cmPassed("SHOULD_BE_DEFINED_STRLESS2 is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
@ -543,7 +625,7 @@ int main()
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_STRGREATER
|
#ifndef SHOULD_BE_DEFINED_STRGREATER
|
||||||
cmFailed(
|
cmFailed(
|
||||||
"IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER is not defined.\n");
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER is not defined.");
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_STRGREATER is defined.");
|
cmPassed("SHOULD_BE_DEFINED_STRGREATER is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
@ -557,11 +639,95 @@ int main()
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_STRGREATER2
|
#ifndef SHOULD_BE_DEFINED_STRGREATER2
|
||||||
cmFailed(
|
cmFailed(
|
||||||
"IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER2 is not defined.\n");
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER2 is not defined.");
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_STRGREATER2 is defined.");
|
cmPassed("SHOULD_BE_DEFINED_STRGREATER2 is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRLESS_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRLESS_EQUAL is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRLESS_EQUAL is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL2 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL2 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRLESS_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRLESS_EQUAL2 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRLESS_EQUAL2 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL3 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL3 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRLESS_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRLESS_EQUAL3 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRLESS_EQUAL3 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRGREATER_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER_EQUAL is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRGREATER_EQUAL is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL2
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL2 is "
|
||||||
|
"defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL2 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRGREATER_EQUAL2
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER_EQUAL2 is not "
|
||||||
|
"defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRGREATER_EQUAL2 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL3
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL3 is "
|
||||||
|
"defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL3 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRGREATER_EQUAL3
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER_EQUAL3 is not "
|
||||||
|
"defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRGREATER_EQUAL3 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
// Test FOREACH
|
// Test FOREACH
|
||||||
|
|
||||||
|
|
|
@ -126,6 +126,12 @@ else ()
|
||||||
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER)
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM1_VAR GREATER SNUM2_VAR)
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER2)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_GREATER2)
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (SNUM2_VAR EQUAL SNUM1_VAR)
|
if (SNUM2_VAR EQUAL SNUM1_VAR)
|
||||||
add_definitions(-DSHOULD_NOT_BE_DEFINED_EQUAL)
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_EQUAL)
|
||||||
else ()
|
else ()
|
||||||
|
@ -138,10 +144,40 @@ else ()
|
||||||
add_definitions(-DSHOULD_NOT_BE_DEFINED_EQUAL)
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_EQUAL)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (SNUM1_VAR GREATER SNUM2_VAR)
|
if (SNUM1_VAR LESS_EQUAL SNUM2_VAR)
|
||||||
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER2)
|
add_definitions(-DSHOULD_BE_DEFINED_LESS_EQUAL)
|
||||||
else ()
|
else ()
|
||||||
add_definitions(-DSHOULD_BE_DEFINED_GREATER2)
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_LESS_EQUAL)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM2_VAR LESS_EQUAL SNUM1_VAR)
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_LESS_EQUAL2)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_LESS_EQUAL2)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM1_VAR LESS_EQUAL SNUM3_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_LESS_EQUAL3)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_LESS_EQUAL3)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM2_VAR GREATER_EQUAL SNUM1_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_GREATER_EQUAL)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER_EQUAL)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM1_VAR GREATER_EQUAL SNUM2_VAR)
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER_EQUAL2)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_GREATER_EQUAL2)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM1_VAR GREATER_EQUAL SNUM3_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_GREATER_EQUAL3)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER_EQUAL3)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set (SSTR1_VAR "abc")
|
set (SSTR1_VAR "abc")
|
||||||
|
@ -171,6 +207,42 @@ else ()
|
||||||
add_definitions(-DSHOULD_BE_DEFINED_STRGREATER2)
|
add_definitions(-DSHOULD_BE_DEFINED_STRGREATER2)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR1_VAR STRLESS_EQUAL SSTR2_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRLESS_EQUAL)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRLESS_EQUAL)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR2_VAR STRLESS_EQUAL SSTR1_VAR)
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRLESS_EQUAL2)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRLESS_EQUAL2)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR1_VAR STRLESS_EQUAL SSTR1_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRLESS_EQUAL3)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRLESS_EQUAL3)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR2_VAR STRGREATER_EQUAL SSTR1_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRGREATER_EQUAL)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR1_VAR STRGREATER_EQUAL SSTR2_VAR)
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL2)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRGREATER_EQUAL2)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR1_VAR STRGREATER_EQUAL SSTR1_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRGREATER_EQUAL3)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL3)
|
||||||
|
endif ()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test FOREACH
|
# Test FOREACH
|
||||||
#
|
#
|
||||||
|
|
|
@ -478,18 +478,6 @@ int main()
|
||||||
cmPassed("SHOULD_NOT_BE_DEFINED_GREATER is not defined.");
|
cmPassed("SHOULD_NOT_BE_DEFINED_GREATER is not defined.");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef SHOULD_NOT_BE_DEFINED_EQUAL
|
|
||||||
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_EQUAL is defined.");
|
|
||||||
#else
|
|
||||||
cmPassed("SHOULD_NOT_BE_DEFINED_EQUAL is not defined.");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_EQUAL
|
|
||||||
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_EQUAL is not defined.\n");
|
|
||||||
#else
|
|
||||||
cmPassed("SHOULD_BE_DEFINED_EQUAL is defined.");
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_GREATER
|
#ifndef SHOULD_BE_DEFINED_GREATER
|
||||||
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_GREATER is not defined.\n");
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_GREATER is not defined.\n");
|
||||||
#else
|
#else
|
||||||
|
@ -503,12 +491,107 @@ int main()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_GREATER2
|
#ifndef SHOULD_BE_DEFINED_GREATER2
|
||||||
cmFailed(
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_GREATER2 is not defined.");
|
||||||
"IF or SET is broken, SHOULD_BE_DEFINED_GREATER2 is not defined.\n");
|
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_GREATER2 is defined.");
|
cmPassed("SHOULD_BE_DEFINED_GREATER2 is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_EQUAL
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_EQUAL is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_EQUAL is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_EQUAL
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_EQUAL is not defined.\n");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_EQUAL is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_LESS_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_LESS_EQUAL is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_LESS_EQUAL is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_LESS_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_LESS_EQUAL is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_LESS_EQUAL is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_LESS_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_LESS_EQUAL2 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_LESS_EQUAL2 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_LESS_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_LESS_EQUAL2 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_LESS_EQUAL2 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_LESS_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_LESS_EQUAL3 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_LESS_EQUAL3 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_LESS_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_LESS_EQUAL3 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_LESS_EQUAL3 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_GREATER_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_GREATER_EQUAL is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_GREATER_EQUAL is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_GREATER_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_GREATER_EQUAL is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_GREATER_EQUAL is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_GREATER_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_GREATER_EQUAL2 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_GREATER_EQUAL2 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_GREATER_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_GREATER_EQUAL2 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_GREATER_EQUAL2 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_GREATER_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_GREATER_EQUAL3 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_GREATER_EQUAL3 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_GREATER_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_GREATER_EQUAL3 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_GREATER_EQUAL3 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef SHOULD_NOT_BE_DEFINED_STRLESS
|
#ifdef SHOULD_NOT_BE_DEFINED_STRLESS
|
||||||
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRLESS is defined.");
|
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRLESS is defined.");
|
||||||
#else
|
#else
|
||||||
|
@ -516,7 +599,7 @@ int main()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_STRLESS
|
#ifndef SHOULD_BE_DEFINED_STRLESS
|
||||||
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_STRLESS is not defined.\n");
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_STRLESS is not defined.");
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_STRLESS is defined.");
|
cmPassed("SHOULD_BE_DEFINED_STRLESS is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
@ -528,8 +611,7 @@ int main()
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_STRLESS2
|
#ifndef SHOULD_BE_DEFINED_STRLESS2
|
||||||
cmFailed(
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_STRLESS2 is not defined.");
|
||||||
"IF or SET is broken, SHOULD_BE_DEFINED_STRLESS2 is not defined.\n");
|
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_STRLESS2 is defined.");
|
cmPassed("SHOULD_BE_DEFINED_STRLESS2 is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
@ -543,7 +625,7 @@ int main()
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_STRGREATER
|
#ifndef SHOULD_BE_DEFINED_STRGREATER
|
||||||
cmFailed(
|
cmFailed(
|
||||||
"IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER is not defined.\n");
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER is not defined.");
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_STRGREATER is defined.");
|
cmPassed("SHOULD_BE_DEFINED_STRGREATER is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
@ -557,11 +639,95 @@ int main()
|
||||||
|
|
||||||
#ifndef SHOULD_BE_DEFINED_STRGREATER2
|
#ifndef SHOULD_BE_DEFINED_STRGREATER2
|
||||||
cmFailed(
|
cmFailed(
|
||||||
"IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER2 is not defined.\n");
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER2 is not defined.");
|
||||||
#else
|
#else
|
||||||
cmPassed("SHOULD_BE_DEFINED_STRGREATER2 is defined.");
|
cmPassed("SHOULD_BE_DEFINED_STRGREATER2 is defined.");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRLESS_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRLESS_EQUAL is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRLESS_EQUAL is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL2 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL2 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRLESS_EQUAL2
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRLESS_EQUAL2 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRLESS_EQUAL2 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL3 is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRLESS_EQUAL3 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRLESS_EQUAL3
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRLESS_EQUAL3 is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRLESS_EQUAL3 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL is defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRGREATER_EQUAL
|
||||||
|
cmFailed(
|
||||||
|
"IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER_EQUAL is not defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRGREATER_EQUAL is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL2
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL2 is "
|
||||||
|
"defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL2 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRGREATER_EQUAL2
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER_EQUAL2 is not "
|
||||||
|
"defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRGREATER_EQUAL2 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL3
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL3 is "
|
||||||
|
"defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL3 is not defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef SHOULD_BE_DEFINED_STRGREATER_EQUAL3
|
||||||
|
cmFailed("IF or SET is broken, SHOULD_BE_DEFINED_STRGREATER_EQUAL3 is not "
|
||||||
|
"defined.");
|
||||||
|
#else
|
||||||
|
cmPassed("SHOULD_BE_DEFINED_STRGREATER_EQUAL3 is defined.");
|
||||||
|
#endif
|
||||||
|
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
// Test FOREACH
|
// Test FOREACH
|
||||||
|
|
||||||
|
|
|
@ -126,6 +126,12 @@ else ()
|
||||||
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER)
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM1_VAR GREATER SNUM2_VAR)
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER2)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_GREATER2)
|
||||||
|
endif ()
|
||||||
|
|
||||||
if (SNUM2_VAR EQUAL SNUM1_VAR)
|
if (SNUM2_VAR EQUAL SNUM1_VAR)
|
||||||
add_definitions(-DSHOULD_NOT_BE_DEFINED_EQUAL)
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_EQUAL)
|
||||||
else ()
|
else ()
|
||||||
|
@ -138,10 +144,40 @@ else ()
|
||||||
add_definitions(-DSHOULD_NOT_BE_DEFINED_EQUAL)
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_EQUAL)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (SNUM1_VAR GREATER SNUM2_VAR)
|
if (SNUM1_VAR LESS_EQUAL SNUM2_VAR)
|
||||||
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER2)
|
add_definitions(-DSHOULD_BE_DEFINED_LESS_EQUAL)
|
||||||
else ()
|
else ()
|
||||||
add_definitions(-DSHOULD_BE_DEFINED_GREATER2)
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_LESS_EQUAL)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM2_VAR LESS_EQUAL SNUM1_VAR)
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_LESS_EQUAL2)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_LESS_EQUAL2)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM1_VAR LESS_EQUAL SNUM3_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_LESS_EQUAL3)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_LESS_EQUAL3)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM2_VAR GREATER_EQUAL SNUM1_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_GREATER_EQUAL)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER_EQUAL)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM1_VAR GREATER_EQUAL SNUM2_VAR)
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER_EQUAL2)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_GREATER_EQUAL2)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SNUM1_VAR GREATER_EQUAL SNUM3_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_GREATER_EQUAL3)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_GREATER_EQUAL3)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set (SSTR1_VAR "abc")
|
set (SSTR1_VAR "abc")
|
||||||
|
@ -171,6 +207,42 @@ else ()
|
||||||
add_definitions(-DSHOULD_BE_DEFINED_STRGREATER2)
|
add_definitions(-DSHOULD_BE_DEFINED_STRGREATER2)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR1_VAR STRLESS_EQUAL SSTR2_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRLESS_EQUAL)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRLESS_EQUAL)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR2_VAR STRLESS_EQUAL SSTR1_VAR)
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRLESS_EQUAL2)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRLESS_EQUAL2)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR1_VAR STRLESS_EQUAL SSTR1_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRLESS_EQUAL3)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRLESS_EQUAL3)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR2_VAR STRGREATER_EQUAL SSTR1_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRGREATER_EQUAL)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR1_VAR STRGREATER_EQUAL SSTR2_VAR)
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL2)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRGREATER_EQUAL2)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (SSTR1_VAR STRGREATER_EQUAL SSTR1_VAR)
|
||||||
|
add_definitions(-DSHOULD_BE_DEFINED_STRGREATER_EQUAL3)
|
||||||
|
else ()
|
||||||
|
add_definitions(-DSHOULD_NOT_BE_DEFINED_STRGREATER_EQUAL3)
|
||||||
|
endif ()
|
||||||
|
|
||||||
#
|
#
|
||||||
# Test FOREACH
|
# Test FOREACH
|
||||||
#
|
#
|
||||||
|
|
Loading…
Reference in New Issue