cmTargetIncludeDirectoriesCommand.h 1.41 KB
Newer Older
1 2
/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
   file Copyright.txt or https://cmake.org/licensing for details.  */
3 4 5
#ifndef cmTargetIncludeDirectoriesCommand_h
#define cmTargetIncludeDirectoriesCommand_h

6
#include "cmConfigure.h" // IWYU pragma: keep
7

8 9 10
#include <string>
#include <vector>

11 12 13
#include "cm_memory.hxx"

#include "cmCommand.h"
14
#include "cmTargetPropCommandBase.h"
15 16 17

class cmExecutionStatus;
class cmTarget;
18 19 20 21 22 23 24

class cmTargetIncludeDirectoriesCommand : public cmTargetPropCommandBase
{
public:
  /**
   * This is a virtual constructor for the command.
   */
25 26 27 28
  std::unique_ptr<cmCommand> Clone() override
  {
    return cm::make_unique<cmTargetIncludeDirectoriesCommand>();
  }
29 30 31 32 33

  /**
   * This is called when the command is first encountered in
   * the CMakeLists.txt file.
   */
34
  bool InitialPass(std::vector<std::string> const& args,
35
                   cmExecutionStatus& status) override;
36 37

private:
38
  void HandleMissingTarget(const std::string& name) override;
39

40 41
  bool HandleDirectContent(cmTarget* tgt,
                           const std::vector<std::string>& content,
42
                           bool prepend, bool system) override;
43 44
  void HandleInterfaceContent(cmTarget* tgt,
                              const std::vector<std::string>& content,
45
                              bool prepend, bool system) override;
46

47
  std::string Join(const std::vector<std::string>& content) override;
48 49 50
};

#endif