1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-18 08:51:52 +08:00

cmProp: refactoring: transform alias in class

To handle safely the values used by CMake variables and properties,
introduce the class cmProp as a replacement from the simple pointer
to std::string instance.
This commit is contained in:
Marc Chevrier
2021-08-04 15:08:17 +02:00
parent 350065bb85
commit e5cd39ca80
40 changed files with 484 additions and 226 deletions

View File

@@ -227,76 +227,6 @@ bool cmIsInternallyOn(cm::string_view val)
(val[3] == 'N' || val[3] == 'n');
}
bool cmIsNOTFOUND(cm::string_view val)
{
return (val == "NOTFOUND") || cmHasLiteralSuffix(val, "-NOTFOUND");
}
bool cmIsOn(cm::string_view val)
{
switch (val.size()) {
case 1:
return val[0] == '1' || val[0] == 'Y' || val[0] == 'y';
case 2:
return //
(val[0] == 'O' || val[0] == 'o') && //
(val[1] == 'N' || val[1] == 'n');
case 3:
return //
(val[0] == 'Y' || val[0] == 'y') && //
(val[1] == 'E' || val[1] == 'e') && //
(val[2] == 'S' || val[2] == 's');
case 4:
return //
(val[0] == 'T' || val[0] == 't') && //
(val[1] == 'R' || val[1] == 'r') && //
(val[2] == 'U' || val[2] == 'u') && //
(val[3] == 'E' || val[3] == 'e');
default:
break;
}
return false;
}
bool cmIsOff(cm::string_view val)
{
switch (val.size()) {
case 0:
return true;
case 1:
return val[0] == '0' || val[0] == 'N' || val[0] == 'n';
case 2:
return //
(val[0] == 'N' || val[0] == 'n') && //
(val[1] == 'O' || val[1] == 'o');
case 3:
return //
(val[0] == 'O' || val[0] == 'o') && //
(val[1] == 'F' || val[1] == 'f') && //
(val[2] == 'F' || val[2] == 'f');
case 5:
return //
(val[0] == 'F' || val[0] == 'f') && //
(val[1] == 'A' || val[1] == 'a') && //
(val[2] == 'L' || val[2] == 'l') && //
(val[3] == 'S' || val[3] == 's') && //
(val[4] == 'E' || val[4] == 'e');
case 6:
return //
(val[0] == 'I' || val[0] == 'i') && //
(val[1] == 'G' || val[1] == 'g') && //
(val[2] == 'N' || val[2] == 'n') && //
(val[3] == 'O' || val[3] == 'o') && //
(val[4] == 'R' || val[4] == 'r') && //
(val[5] == 'E' || val[5] == 'e');
default:
break;
}
return cmIsNOTFOUND(val);
}
bool cmStrToLong(const char* str, long* value)
{
errno = 0;