diff options
author | Robert Maynard <rmaynard@nvidia.com> | 2022-07-20 21:03:36 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2022-07-22 17:55:45 (GMT) |
commit | c362cba566a4db39f3c682b06f680a09544f16a2 (patch) | |
tree | d87ceb253fce815297e9e80be34da257b88b9fa6 /Source/cmake.cxx | |
parent | 9306a5ab28af6bb6dc2b933339ccc66764f44b12 (diff) | |
download | CMake-c362cba566a4db39f3c682b06f680a09544f16a2.zip CMake-c362cba566a4db39f3c682b06f680a09544f16a2.tar.gz CMake-c362cba566a4db39f3c682b06f680a09544f16a2.tar.bz2 |
cmake: simplify to a single source of truth of working mode
Diffstat (limited to 'Source/cmake.cxx')
-rw-r--r-- | Source/cmake.cxx | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx index e6fa219..4e18628 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -405,9 +405,6 @@ void cmake::PrintPresetEnvironment() // Parse the args bool cmake::SetCacheArgs(const std::vector<std::string>& args) { - auto findPackageMode = false; - auto seenScriptOption = false; - auto DefineLambda = [](std::string const& entry, cmake* state) -> bool { std::string var; std::string value; @@ -498,10 +495,10 @@ bool cmake::SetCacheArgs(const std::vector<std::string>& args) GetProjectCommandsInScriptMode(state->GetState()); // Documented behavior of CMAKE{,_CURRENT}_{SOURCE,BINARY}_DIR is to be // set to $PWD for -P mode. + state->SetWorkingMode(SCRIPT_MODE); state->SetHomeDirectory(cmSystemTools::GetCurrentWorkingDirectory()); state->SetHomeOutputDirectory(cmSystemTools::GetCurrentWorkingDirectory()); state->ReadListFile(args, path); - seenScriptOption = true; return true; }; @@ -565,12 +562,12 @@ bool cmake::SetCacheArgs(const std::vector<std::string>& args) "No install directory specified for --install-prefix", CommandArgument::Values::One, PrefixLambda }, CommandArgument{ "--find-package", CommandArgument::Values::Zero, - CommandArgument::setToTrue(findPackageMode) }, + IgnoreAndTrueLambda }, }; for (decltype(args.size()) i = 1; i < args.size(); ++i) { std::string const& arg = args[i]; - if (arg == "--" && seenScriptOption) { + if (arg == "--" && this->GetWorkingMode() == SCRIPT_MODE) { // Stop processing CMake args and avoid possible errors // when arbitrary args are given to CMake script. break; @@ -585,7 +582,7 @@ bool cmake::SetCacheArgs(const std::vector<std::string>& args) } } - if (findPackageMode) { + if (this->GetWorkingMode() == FIND_PACKAGE_MODE) { return this->FindPackage(args); } @@ -790,7 +787,6 @@ void cmake::SetArgs(const std::vector<std::string>& args) bool haveToolset = false; bool havePlatform = false; bool haveBArg = false; - bool scriptMode = false; std::string possibleUnknownArg; std::string extraProvidedPath; #if !defined(CMAKE_BOOTSTRAP) @@ -873,7 +869,7 @@ void cmake::SetArgs(const std::vector<std::string>& args) CommandArgument{ "-P", "-P must be followed by a file name.", CommandArgument::Values::One, CommandArgument::RequiresSeparator::No, - CommandArgument::setToTrue(scriptMode) }, + IgnoreAndTrueLambda }, CommandArgument{ "-D", "-D must be followed with VAR=VALUE.", CommandArgument::Values::One, CommandArgument::RequiresSeparator::No, @@ -1165,7 +1161,7 @@ void cmake::SetArgs(const std::vector<std::string>& args) // iterate each argument std::string const& arg = args[i]; - if (scriptMode && arg == "--") { + if (this->GetWorkingMode() == SCRIPT_MODE && arg == "--") { // Stop processing CMake args and avoid possible errors // when arbitrary args are given to CMake script. break; @@ -1211,12 +1207,12 @@ void cmake::SetArgs(const std::vector<std::string>& args) } } - if (!extraProvidedPath.empty() && !scriptMode) { + if (!extraProvidedPath.empty() && this->GetWorkingMode() == NORMAL_MODE) { this->IssueMessage(MessageType::WARNING, cmStrCat("Ignoring extra path from command line:\n \"", extraProvidedPath, "\"")); } - if (!possibleUnknownArg.empty() && !scriptMode) { + if (!possibleUnknownArg.empty() && this->GetWorkingMode() != SCRIPT_MODE) { cmSystemTools::Error(cmStrCat("Unknown argument ", possibleUnknownArg)); cmSystemTools::Error("Run 'cmake --help' for all supported options."); exit(1); |