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
= 0x8
31 bool HandleArguments(std::vector
<std::string
> const& args
,
32 const std::string
& prop
, unsigned int flags
= NO_FLAGS
);
36 cmTarget
* Target
= nullptr;
39 virtual void HandleInterfaceContent(cmTarget
* tgt
,
40 const std::vector
<std::string
>& content
,
41 bool prepend
, bool system
);
42 virtual bool PopulateTargetProperties(
43 const std::string
& scope
, const std::vector
<std::string
>& content
,
44 bool prepend
, bool system
);
47 virtual void HandleMissingTarget(const std::string
& name
) = 0;
49 virtual bool HandleDirectContent(cmTarget
* tgt
,
50 const std::vector
<std::string
>& content
,
51 bool prepend
, bool system
) = 0;
53 virtual std::string
Join(const std::vector
<std::string
>& content
) = 0;
55 bool ProcessContentArgs(std::vector
<std::string
> const& args
,
56 unsigned int& argIndex
, bool prepend
, bool system
);
58 cmExecutionStatus
& Status
;