| /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying |
| file Copyright.txt or https://cmake.org/licensing for details. */ |
| #pragma once |
| |
| #include "cmConfigure.h" // IWYU pragma: keep |
| |
| #include <string> |
| #include <vector> |
| |
| #include "cmArgumentParser.h" |
| #include "cmArgumentParserTypes.h" |
| |
| class cmInstallCommandArguments : public cmArgumentParser<void> |
| { |
| public: |
| cmInstallCommandArguments(std::string defaultComponent); |
| void SetGenericArguments(cmInstallCommandArguments* args) |
| { |
| this->GenericArguments = args; |
| } |
| |
| // Compute destination path.and check permissions |
| bool Finalize(); |
| |
| const std::string& GetDestination() const; |
| const std::string& GetComponent() const; |
| const std::string& GetNamelinkComponent() const; |
| bool GetExcludeFromAll() const; |
| const std::string& GetRename() const; |
| const std::string& GetPermissions() const; |
| const std::vector<std::string>& GetConfigurations() const; |
| bool GetOptional() const; |
| bool GetNamelinkOnly() const; |
| bool GetNamelinkSkip() const; |
| bool HasNamelinkComponent() const; |
| const std::string& GetType() const; |
| |
| const std::string& GetDefaultComponent() const; |
| |
| static bool CheckPermissions(const std::string& onePerm, std::string& perm); |
| |
| private: |
| std::string Destination; |
| std::string Component; |
| std::string NamelinkComponent; |
| bool ExcludeFromAll = false; |
| std::string Rename; |
| ArgumentParser::MaybeEmpty<std::vector<std::string>> Permissions; |
| ArgumentParser::MaybeEmpty<std::vector<std::string>> Configurations; |
| bool Optional = false; |
| bool NamelinkOnly = false; |
| bool NamelinkSkip = false; |
| std::string Type; |
| |
| std::string DestinationString; |
| std::string PermissionsString; |
| |
| cmInstallCommandArguments* GenericArguments = nullptr; |
| static const char* PermissionsTable[]; |
| static const std::string EmptyString; |
| std::string DefaultComponentName; |
| bool CheckPermissions(); |
| }; |
| |
| class cmInstallCommandIncludesArgument |
| { |
| public: |
| cmInstallCommandIncludesArgument(); |
| void Parse(const std::vector<std::string>* args, |
| std::vector<std::string>* unconsumedArgs); |
| |
| const std::vector<std::string>& GetIncludeDirs() const; |
| |
| private: |
| std::vector<std::string> IncludeDirs; |
| }; |
| |
| class cmInstallCommandFileSetArguments : public cmInstallCommandArguments |
| { |
| public: |
| cmInstallCommandFileSetArguments(std::string defaultComponent); |
| |
| void Parse(std::vector<std::string> args, |
| std::vector<std::string>* unconsumedArgs); |
| |
| const std::string& GetFileSet() const { return this->FileSet; } |
| |
| private: |
| std::string FileSet; |
| }; |