diff options
author | Tushar Maheshwari <tushar27192@gmail.com> | 2020-05-09 12:27:16 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-05-12 10:59:00 (GMT) |
commit | 300bf4e94f9c994188e775ec1e2430f6ba200b78 (patch) | |
tree | 4c690d88e04d10d30b28f68c78e25b24c47b4c1a /Source/cmSetDirectoryPropertiesCommand.cxx | |
parent | 8afac758e6e793a0f004ce2693b0096362391cd9 (diff) | |
download | CMake-300bf4e94f9c994188e775ec1e2430f6ba200b78.zip CMake-300bf4e94f9c994188e775ec1e2430f6ba200b78.tar.gz CMake-300bf4e94f9c994188e775ec1e2430f6ba200b78.tar.bz2 |
set_*_properties: simplify and shorten implementations
Optimize argument copies and range traversal.
Inline the single use file static functions.
Diffstat (limited to 'Source/cmSetDirectoryPropertiesCommand.cxx')
-rw-r--r-- | Source/cmSetDirectoryPropertiesCommand.cxx | 40 |
1 files changed, 11 insertions, 29 deletions
diff --git a/Source/cmSetDirectoryPropertiesCommand.cxx b/Source/cmSetDirectoryPropertiesCommand.cxx index 35daca6..07ad246 100644 --- a/Source/cmSetDirectoryPropertiesCommand.cxx +++ b/Source/cmSetDirectoryPropertiesCommand.cxx @@ -5,12 +5,6 @@ #include "cmExecutionStatus.h" #include "cmMakefile.h" -namespace { -bool RunCommand(cmMakefile& mf, std::vector<std::string>::const_iterator ait, - std::vector<std::string>::const_iterator aitend, - std::string& errors); -} - // cmSetDirectoryPropertiesCommand bool cmSetDirectoryPropertiesCommand(std::vector<std::string> const& args, cmExecutionStatus& status) @@ -20,38 +14,26 @@ bool cmSetDirectoryPropertiesCommand(std::vector<std::string> const& args, return false; } - std::string errors; - bool ret = - RunCommand(status.GetMakefile(), args.begin() + 1, args.end(), errors); - if (!ret) { - status.SetError(errors); + // PROPERTIES followed by prop value pairs + if (args.size() % 2 != 1) { + status.SetError("Wrong number of arguments"); + return false; } - return ret; -} -namespace { -bool RunCommand(cmMakefile& mf, std::vector<std::string>::const_iterator ait, - std::vector<std::string>::const_iterator aitend, - std::string& errors) -{ - for (; ait != aitend; ait += 2) { - if (ait + 1 == aitend) { - errors = "Wrong number of arguments"; - return false; - } - const std::string& prop = *ait; - const std::string& value = *(ait + 1); + for (auto iter = args.begin() + 1; iter != args.end(); iter += 2) { + const std::string& prop = *iter; if (prop == "VARIABLES") { - errors = "Variables and cache variables should be set using SET command"; + status.SetError( + "Variables and cache variables should be set using SET command"); return false; } if (prop == "MACROS") { - errors = "Commands and macros cannot be set using SET_CMAKE_PROPERTIES"; + status.SetError( + "Commands and macros cannot be set using SET_CMAKE_PROPERTIES"); return false; } - mf.SetProperty(prop, value.c_str()); + status.GetMakefile().SetProperty(prop, (iter + 1)->c_str()); } return true; } -} |