Coverage Report

Created: 2026-10-28 06:38

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/CMake/Source/cmInstallFilesGenerator.h
Line
Count
Source
1
/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
2
   file LICENSE.rst 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
#include <utility>
10
#include <vector>
11
12
#include "cmInstallGenerator.h"
13
14
class cmDiagnosticContext;
15
class cmGeneratorTarget;
16
class cmLocalGenerator;
17
18
/** \class cmInstallFilesGenerator
19
 * \brief Generate file installation rules.
20
 */
21
class cmInstallFilesGenerator : public cmInstallGenerator
22
{
23
public:
24
  cmInstallFilesGenerator(std::vector<std::string> const& files,
25
                          std::string const& dest, bool programs,
26
                          std::string filePermissions,
27
                          std::vector<std::string> const& configurations,
28
                          std::string const& component,
29
                          std::vector<std::string> buildDepends,
30
                          MessageLevel message, bool excludeFromAll,
31
                          std::string rename, bool optional,
32
                          cmDiagnosticContext context);
33
  ~cmInstallFilesGenerator() override;
34
35
  bool Compute(cmLocalGenerator* lg) override;
36
37
  void GetInstallBuildDependencies(
38
    std::string const& config,
39
    std::vector<BuildDependency>& dependencies) const override;
40
41
  std::string GetDestination(std::string const& config) const;
42
  std::string GetRename(std::string const& config) const;
43
  std::vector<std::string> GetFiles(std::string const& config) const;
44
0
  bool GetOptional() const { return this->Optional; }
45
46
  void SetOwningTarget(std::string targetName)
47
0
  {
48
0
    this->OwningTargetName = std::move(targetName);
49
0
  }
50
51
protected:
52
  void GenerateScriptActions(std::ostream& os, Indent indent) override;
53
  void GenerateScriptForConfig(std::ostream& os, std::string const& config,
54
                               Indent indent) override;
55
  void AddFilesInstallRule(std::ostream& os, std::string const& config,
56
                           Indent indent,
57
                           std::vector<std::string> const& files);
58
59
  cmLocalGenerator* LocalGenerator = nullptr;
60
  std::vector<std::string> const Files;
61
  std::string const FilePermissions;
62
  std::string const Rename;
63
  std::vector<std::string> const BuildDepends;
64
  BuildDependsEntries ResolvedBuildDepends;
65
  std::string OwningTargetName;
66
  cmGeneratorTarget const* OwningTarget = nullptr;
67
  bool const Programs;
68
  bool const Optional;
69
};