diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2022-10-25 14:59:19 (GMT) |
---|---|---|
committer | Kyle Edwards <kyle.edwards@kitware.com> | 2022-10-26 16:01:01 (GMT) |
commit | 7d9aa0f00cd9f7c2ed3d0c710090e9901c4430e9 (patch) | |
tree | 22f5104cebf519b8ac3f7469d78a8cd01cdd994b | |
parent | 322193afcdfd3d3ba5a456e5e6f64e3637091736 (diff) | |
download | CMake-7d9aa0f00cd9f7c2ed3d0c710090e9901c4430e9.zip CMake-7d9aa0f00cd9f7c2ed3d0c710090e9901c4430e9.tar.gz CMake-7d9aa0f00cd9f7c2ed3d0c710090e9901c4430e9.tar.bz2 |
cmake::Workflow: Refactor to use enum class argument
-rw-r--r-- | Source/cmake.cxx | 5 | ||||
-rw-r--r-- | Source/cmake.h | 7 | ||||
-rw-r--r-- | Source/cmakemain.cxx | 12 |
3 files changed, 17 insertions, 7 deletions
diff --git a/Source/cmake.cxx b/Source/cmake.cxx index 67a8e01..169bf9e 100644 --- a/Source/cmake.cxx +++ b/Source/cmake.cxx @@ -3732,7 +3732,8 @@ std::function<int()> cmake::BuildWorkflowStep( } #endif -int cmake::Workflow(const std::string& presetName, bool listPresets) +int cmake::Workflow(const std::string& presetName, + WorkflowListPresets listPresets) { #ifndef CMAKE_BOOTSTRAP this->SetHomeDirectory(cmSystemTools::GetCurrentWorkingDirectory()); @@ -3747,7 +3748,7 @@ int cmake::Workflow(const std::string& presetName, bool listPresets) return 1; } - if (listPresets) { + if (listPresets == WorkflowListPresets::Yes) { settingsFile.PrintWorkflowPresetList(); return 0; } diff --git a/Source/cmake.h b/Source/cmake.h index 54d0bb5..b3b9f19 100644 --- a/Source/cmake.h +++ b/Source/cmake.h @@ -602,7 +602,12 @@ public: bool Open(const std::string& dir, bool dryRun); //! run the --workflow option - int Workflow(const std::string& presetName, bool listPresets); + enum class WorkflowListPresets + { + No, + Yes, + }; + int Workflow(const std::string& presetName, WorkflowListPresets listPresets); void UnwatchUnusedCli(const std::string& var); void WatchUnusedCli(const std::string& var); diff --git a/Source/cmakemain.cxx b/Source/cmakemain.cxx index 15e3190..a6938bc 100644 --- a/Source/cmakemain.cxx +++ b/Source/cmakemain.cxx @@ -917,8 +917,9 @@ int do_workflow(int ac, char const* const* av) std::cerr << "This cmake does not support --workflow\n"; return -1; #else + using WorkflowListPresets = cmake::WorkflowListPresets; std::string presetName; - bool listPresets = false; + auto listPresets = WorkflowListPresets::No; using CommandArgument = cmCommandLineArgument<bool(std::string const& value)>; @@ -927,7 +928,10 @@ int do_workflow(int ac, char const* const* av) CommandArgument{ "--preset", CommandArgument::Values::One, CommandArgument::setToValue(presetName) }, CommandArgument{ "--list-presets", CommandArgument::Values::Zero, - CommandArgument::setToTrue(listPresets) } + [&listPresets](const std::string&) -> bool { + listPresets = WorkflowListPresets::Yes; + return true; + } }, }; std::vector<std::string> inputArgs; @@ -950,14 +954,14 @@ int do_workflow(int ac, char const* const* av) if (!(matched && parsed)) { if (!matched) { presetName.clear(); - listPresets = false; + listPresets = WorkflowListPresets::No; std::cerr << "Unknown argument " << arg << std::endl; } break; } } - if (presetName.empty() && !listPresets) { + if (presetName.empty() && listPresets == WorkflowListPresets::No) { /* clang-format off */ std::cerr << "Usage: cmake --workflow [options]\n" |