diff options
Diffstat (limited to 'Source/cmUnsetCommand.cxx')
-rw-r--r-- | Source/cmUnsetCommand.cxx | 62 |
1 files changed, 29 insertions, 33 deletions
diff --git a/Source/cmUnsetCommand.cxx b/Source/cmUnsetCommand.cxx index 5c0cfaa03..31525ba4a 100644 --- a/Source/cmUnsetCommand.cxx +++ b/Source/cmUnsetCommand.cxx @@ -1,59 +1,55 @@ -/*============================================================================ - CMake - Cross Platform Makefile Generator - Copyright 2000-2009 Kitware, Inc., Insight Software Consortium +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#include "cmUnsetCommand.h" - Distributed under the OSI-approved BSD License (the "License"); - see accompanying file Copyright.txt for details. +#include <string.h> - This software is distributed WITHOUT ANY WARRANTY; without even the - implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. - See the License for more information. -============================================================================*/ -#include "cmUnsetCommand.h" +#include "cmAlgorithms.h" +#include "cmMakefile.h" +#include "cmSystemTools.h" + +class cmExecutionStatus; // cmUnsetCommand bool cmUnsetCommand::InitialPass(std::vector<std::string> const& args, - cmExecutionStatus &) + cmExecutionStatus&) { - if(args.size() < 1 || args.size() > 2) - { + if (args.empty() || args.size() > 2) { this->SetError("called with incorrect number of arguments"); return false; - } + } const char* variable = args[0].c_str(); // unset(ENV{VAR}) - if (!strncmp(variable,"ENV{",4) && strlen(variable) > 5) - { + if (cmHasLiteralPrefix(variable, "ENV{") && strlen(variable) > 5) { // what is the variable name - char *envVarName = new char [strlen(variable)]; - strncpy(envVarName,variable+4,strlen(variable)-5); - envVarName[strlen(variable)-5] = '\0'; + char* envVarName = new char[strlen(variable)]; + strncpy(envVarName, variable + 4, strlen(variable) - 5); + envVarName[strlen(variable) - 5] = '\0'; #ifdef CMAKE_BUILD_WITH_CMAKE cmSystemTools::UnsetEnv(envVarName); #endif delete[] envVarName; return true; - } + } // unset(VAR) - else if (args.size() == 1) - { + if (args.size() == 1) { this->Makefile->RemoveDefinition(variable); return true; - } + } // unset(VAR CACHE) - else if ((args.size() == 2) && (args[1] == "CACHE")) - { + if ((args.size() == 2) && (args[1] == "CACHE")) { this->Makefile->RemoveCacheDefinition(variable); return true; - } - // ERROR: second argument isn't CACHE - else - { - this->SetError("called with an invalid second argument"); - return false; - } + } + // unset(VAR PARENT_SCOPE) + if ((args.size() == 2) && (args[1] == "PARENT_SCOPE")) { + this->Makefile->RaiseScope(variable, CM_NULLPTR); + return true; + } + // ERROR: second argument isn't CACHE or PARENT_SCOPE + this->SetError("called with an invalid second argument"); + return false; } - |