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 class cmExecutionStatus;
14 class cmTargetPropCommandBase
17 cmTargetPropCommandBase(cmExecutionStatus& status);
18 virtual ~cmTargetPropCommandBase() = default;
20 void SetError(std::string const& e);
28 PROCESS_REUSE_FROM = 0x4
31 bool HandleArguments(std::vector<std::string> const& args,
32 const std::string& prop,
33 ArgumentFlags flags = NO_FLAGS);
37 cmTarget* Target = nullptr;
40 virtual void HandleInterfaceContent(cmTarget* tgt,
41 const std::vector<std::string>& content,
42 bool prepend, bool system);
43 virtual bool PopulateTargetProperties(
44 const std::string& scope, const std::vector<std::string>& content,
45 bool prepend, bool system);
48 virtual void HandleMissingTarget(const std::string& name) = 0;
50 virtual bool HandleDirectContent(cmTarget* tgt,
51 const std::vector<std::string>& content,
52 bool prepend, bool system) = 0;
54 virtual std::string Join(const std::vector<std::string>& content) = 0;
56 bool ProcessContentArgs(std::vector<std::string> const& args,
57 unsigned int& argIndex, bool prepend, bool system);
59 cmExecutionStatus& Status;