| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /* 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"
- 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;
- std::vector<std::string> Permissions;
- 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;
- };
|