resolve cyclic dependency with zstd
[platform/upstream/cmake.git] / Source / cmInstallGetRuntimeDependenciesGenerator.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 <iosfwd>
6 #include <string>
7 #include <vector>
8
9 #include "cmInstallGenerator.h"
10 #include "cmScriptGenerator.h"
11
12 class cmListFileBacktrace;
13 class cmLocalGenerator;
14 class cmInstallRuntimeDependencySet;
15
16 class cmInstallGetRuntimeDependenciesGenerator : public cmInstallGenerator
17 {
18 public:
19   cmInstallGetRuntimeDependenciesGenerator(
20     cmInstallRuntimeDependencySet* runtimeDependencySet,
21     std::vector<std::string> directories,
22     std::vector<std::string> preIncludeRegexes,
23     std::vector<std::string> preExcludeRegexes,
24     std::vector<std::string> postIncludeRegexes,
25     std::vector<std::string> postExcludeRegexes,
26     std::vector<std::string> postIncludeFiles,
27     std::vector<std::string> postExcludeFiles, std::string libraryComponent,
28     std::string frameworkComponent, bool noInstallRPath, const char* depsVar,
29     const char* rpathPrefix, std::vector<std::string> const& configurations,
30     MessageLevel message, bool exclude_from_all,
31     cmListFileBacktrace backtrace);
32
33   bool Compute(cmLocalGenerator* lg) override;
34
35 protected:
36   void GenerateScript(std::ostream& os) override;
37
38   void GenerateScriptForConfig(std::ostream& os, const std::string& config,
39                                Indent indent) override;
40
41 private:
42   cmInstallRuntimeDependencySet* RuntimeDependencySet;
43   std::vector<std::string> Directories;
44   std::vector<std::string> PreIncludeRegexes;
45   std::vector<std::string> PreExcludeRegexes;
46   std::vector<std::string> PostIncludeRegexes;
47   std::vector<std::string> PostExcludeRegexes;
48   std::vector<std::string> PostIncludeFiles;
49   std::vector<std::string> PostExcludeFiles;
50   std::string LibraryComponent;
51   std::string FrameworkComponent;
52   bool NoInstallRPath;
53   const char* DepsVar;
54   const char* RPathPrefix;
55   cmLocalGenerator* LocalGenerator = nullptr;
56 };