cmCommand refactor: cmListCommand

This commit is contained in:
Gabor Bencze 2019-08-04 14:42:52 +02:00 committed by Brad King
parent 9ae9f3e77e
commit e0b7ff4af2
3 changed files with 244 additions and 224 deletions

View File

@ -144,7 +144,7 @@ void GetScriptingCommands(cmState* state)
state->AddBuiltinCommand("if", cmIfCommand);
state->AddBuiltinCommand("include", cmIncludeCommand);
state->AddBuiltinCommand("include_guard", cmIncludeGuardCommand);
state->AddBuiltinCommand("list", cm::make_unique<cmListCommand>());
state->AddBuiltinCommand("list", cmListCommand);
state->AddBuiltinCommand("macro", cmMacroCommand);
state->AddBuiltinCommand("make_directory",
cm::make_unique<cmMakeDirectoryCommand>());

File diff suppressed because it is too large Load Diff

View File

@ -8,58 +8,13 @@
#include <string>
#include <vector>
#include "cm_memory.hxx"
#include "cmCommand.h"
class cmExecutionStatus;
/** \class cmListCommand
/**
* \brief Common list operations
*
*/
class cmListCommand : public cmCommand
{
public:
/**
* This is a virtual constructor for the command.
*/
std::unique_ptr<cmCommand> Clone() override
{
return cm::make_unique<cmListCommand>();
}
/**
* This is called when the command is first encountered in
* the CMakeLists.txt file.
*/
bool InitialPass(std::vector<std::string> const& args,
cmExecutionStatus& status) override;
protected:
bool HandleLengthCommand(std::vector<std::string> const& args);
bool HandleGetCommand(std::vector<std::string> const& args);
bool HandleAppendCommand(std::vector<std::string> const& args);
bool HandlePrependCommand(std::vector<std::string> const& args);
bool HandlePopBackCommand(std::vector<std::string> const& args);
bool HandlePopFrontCommand(std::vector<std::string> const& args);
bool HandleFindCommand(std::vector<std::string> const& args);
bool HandleInsertCommand(std::vector<std::string> const& args);
bool HandleJoinCommand(std::vector<std::string> const& args);
bool HandleRemoveAtCommand(std::vector<std::string> const& args);
bool HandleRemoveItemCommand(std::vector<std::string> const& args);
bool HandleRemoveDuplicatesCommand(std::vector<std::string> const& args);
bool HandleTransformCommand(std::vector<std::string> const& args);
bool HandleSortCommand(std::vector<std::string> const& args);
bool HandleSublistCommand(std::vector<std::string> const& args);
bool HandleReverseCommand(std::vector<std::string> const& args);
bool HandleFilterCommand(std::vector<std::string> const& args);
bool FilterRegex(std::vector<std::string> const& args, bool includeMatches,
std::string const& listName,
std::vector<std::string>& varArgsExpanded);
bool GetList(std::vector<std::string>& list, const std::string& var);
bool GetListString(std::string& listString, const std::string& var);
};
bool cmListCommand(std::vector<std::string> const& args,
cmExecutionStatus& status);
#endif