Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef CMVIS_TARGET_H
- #define CMVIS_TARGET_H
- #include <string>
- #include <vector>
- class Target {
- public:
- Target(const Target&) =default;
- Target(Target&&) noexcept =default;
- Target& operator=(const Target&) =default;
- Target& operator=(Target&&) noexcept =default;
- ~Target() =default;
- [[nodiscard]] const std::string& id() const noexcept;
- [[nodiscard]] const std::string& name() const noexcept;
- [[nodiscard]] const std::string& type() const noexcept;
- [[nodiscard]] bool isGeneratorProvided() const noexcept;
- [[nodiscard]] bool isImported() const noexcept;
- [[nodiscard]] const std::vector<std::string>& dependencies() const noexcept;
- [[nodiscard]] const std::vector<std::string>& sources() const noexcept;
- [[nodiscard]] const std::vector<std::string>& includes() const noexcept;
- [[nodiscard]] const std::vector<std::string>& defines() const noexcept;
- [[nodiscard]] const std::vector<std::string>& compileFlags() const noexcept;
- [[nodiscard]] const std::vector<std::string>& linkLibraries() const noexcept;
- [[nodiscard]] bool hasArtifacts() const noexcept;
- private:
- friend class TargetFactory;
- struct BuildData {
- std::string id;
- std::string name;
- std::string type;
- bool isGeneratorProvided{false};
- bool isImported{false};
- std::vector<std::string> dependencies;
- std::vector<std::string> sources;
- std::vector<std::string> includes;
- std::vector<std::string> defines;
- std::vector<std::string> compileFlags;
- std::vector<std::string> linkLibraries;
- bool hasArtifacts{false};
- };
- explicit Target(BuildData&& data);
- std::string id_;
- std::string name_;
- std::string type_;
- bool isGeneratorProvided_;
- bool isImported_;
- std::vector<std::string> dependencies_;
- std::vector<std::string> sources_;
- std::vector<std::string> includes_;
- std::vector<std::string> defines_;
- std::vector<std::string> compileFlags_;
- std::vector<std::string> linkLibraries_;
- bool hasArtifacts_;
- };
- #endif
Advertisement