resolve cyclic dependency with zstd
[platform/upstream/cmake.git] / Source / cmInstallSubdirectoryGenerator.h
1 /* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2    file Copyright.txt or https://cmake.org/licensing for details.  */
3 #pragma once
4
5 #include "cmConfigure.h" // IWYU pragma: keep
6
7 #include <iosfwd>
8 #include <string>
9
10 #include "cmInstallGenerator.h"
11
12 class cmListFileBacktrace;
13 class cmLocalGenerator;
14 class cmMakefile;
15
16 /** \class cmInstallSubdirectoryGenerator
17  * \brief Generate target installation rules.
18  */
19 class cmInstallSubdirectoryGenerator : public cmInstallGenerator
20 {
21 public:
22   cmInstallSubdirectoryGenerator(cmMakefile* makefile,
23                                  std::string binaryDirectory,
24                                  cmListFileBacktrace backtrace);
25   ~cmInstallSubdirectoryGenerator() override;
26
27   bool HaveInstall() override;
28   void CheckCMP0082(bool& haveSubdirectoryInstall,
29                     bool& haveInstallAfterSubdirectory) override;
30
31   bool Compute(cmLocalGenerator* lg) override;
32
33 protected:
34   void GenerateScript(std::ostream& os) override;
35
36   cmMakefile* const Makefile;
37   std::string const BinaryDirectory;
38   cmLocalGenerator* LocalGenerator;
39 };