| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | 
							- /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 
-    file Copyright.txt or https://cmake.org/licensing for details.  */
 
- #include "cmOptionCommand.h"
 
- #include "cmState.h"
 
- #include "cmSystemTools.h"
 
- // cmOptionCommand
 
- bool cmOptionCommand::InitialPass(std::vector<std::string> const& args,
 
-                                   cmExecutionStatus&)
 
- {
 
-   bool argError = false;
 
-   if (args.size() < 2) {
 
-     argError = true;
 
-   }
 
-   // for VTK 4.0 we have to support the option command with more than 3
 
-   // arguments if CMAKE_MINIMUM_REQUIRED_VERSION is not defined, if
 
-   // CMAKE_MINIMUM_REQUIRED_VERSION is defined, then we can have stricter
 
-   // checking.
 
-   if (this->Makefile->GetDefinition("CMAKE_MINIMUM_REQUIRED_VERSION")) {
 
-     if (args.size() > 3) {
 
-       argError = true;
 
-     }
 
-   }
 
-   if (argError) {
 
-     std::string m = "called with incorrect number of arguments: ";
 
-     m += cmJoin(args, " ");
 
-     this->SetError(m);
 
-     return false;
 
-   }
 
-   std::string initialValue = "Off";
 
-   // Now check and see if the value has been stored in the cache
 
-   // already, if so use that value and don't look for the program
 
-   cmState* state = this->Makefile->GetState();
 
-   const char* existingValue = state->GetCacheEntryValue(args[0]);
 
-   if (existingValue) {
 
-     if (state->GetCacheEntryType(args[0]) != cmStateEnums::UNINITIALIZED) {
 
-       state->SetCacheEntryProperty(args[0], "HELPSTRING", args[1]);
 
-       return true;
 
-     }
 
-     initialValue = existingValue;
 
-   }
 
-   if (args.size() == 3) {
 
-     initialValue = args[2];
 
-   }
 
-   bool init = cmSystemTools::IsOn(initialValue.c_str());
 
-   this->Makefile->AddCacheDefinition(args[0], init ? "ON" : "OFF",
 
-                                      args[1].c_str(), cmStateEnums::BOOL);
 
-   return true;
 
- }
 
 
  |