1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
5 #include "cmConfigure.h" // IWYU pragma: keep
10 #include "cmArgumentParser.h"
12 class cmInstallCommandArguments : public cmArgumentParser<void>
15 cmInstallCommandArguments(std::string defaultComponent);
16 void SetGenericArguments(cmInstallCommandArguments* args)
18 this->GenericArguments = args;
21 // Compute destination path.and check permissions
24 const std::string& GetDestination() const;
25 const std::string& GetComponent() const;
26 const std::string& GetNamelinkComponent() const;
27 bool GetExcludeFromAll() const;
28 const std::string& GetRename() const;
29 const std::string& GetPermissions() const;
30 const std::vector<std::string>& GetConfigurations() const;
31 bool GetOptional() const;
32 bool GetNamelinkOnly() const;
33 bool GetNamelinkSkip() const;
34 bool HasNamelinkComponent() const;
35 const std::string& GetType() const;
37 const std::string& GetDefaultComponent() const;
39 static bool CheckPermissions(const std::string& onePerm, std::string& perm);
42 std::string Destination;
43 std::string Component;
44 std::string NamelinkComponent;
45 bool ExcludeFromAll = false;
47 std::vector<std::string> Permissions;
48 std::vector<std::string> Configurations;
49 bool Optional = false;
50 bool NamelinkOnly = false;
51 bool NamelinkSkip = false;
54 std::string DestinationString;
55 std::string PermissionsString;
57 cmInstallCommandArguments* GenericArguments = nullptr;
58 static const char* PermissionsTable[];
59 static const std::string EmptyString;
60 std::string DefaultComponentName;
61 bool CheckPermissions();
64 class cmInstallCommandIncludesArgument
67 cmInstallCommandIncludesArgument();
68 void Parse(const std::vector<std::string>* args,
69 std::vector<std::string>* unconsumedArgs);
71 const std::vector<std::string>& GetIncludeDirs() const;
74 std::vector<std::string> IncludeDirs;
77 class cmInstallCommandFileSetArguments : public cmInstallCommandArguments
80 cmInstallCommandFileSetArguments(std::string defaultComponent);
82 void Parse(std::vector<std::string> args,
83 std::vector<std::string>* unconsumedArgs);
85 const std::string& GetFileSet() const { return this->FileSet; }