1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
10 #include "cmInstallGenerator.h"
11 #include "cmScriptGenerator.h"
13 class cmGeneratorTarget;
15 class cmListFileBacktrace;
16 class cmLocalGenerator;
18 class cmInstallFileSetGenerator : public cmInstallGenerator
21 cmInstallFileSetGenerator(std::string targetName, cmFileSet* fileSet,
22 std::string const& dest,
23 std::string file_permissions,
24 std::vector<std::string> const& configurations,
25 std::string const& component, MessageLevel message,
26 bool exclude_from_all, bool optional,
27 cmListFileBacktrace backtrace);
28 ~cmInstallFileSetGenerator() override;
30 bool Compute(cmLocalGenerator* lg) override;
32 std::string GetDestination(std::string const& config) const;
33 std::string GetDestination() const { return this->Destination; }
34 bool GetOptional() const { return this->Optional; }
35 cmFileSet* GetFileSet() const { return this->FileSet; }
36 cmGeneratorTarget* GetTarget() const { return this->Target; }
39 void GenerateScriptForConfig(std::ostream& os, const std::string& config,
40 Indent indent) override;
43 std::string TargetName;
44 cmLocalGenerator* LocalGenerator;
45 cmFileSet* const FileSet;
46 std::string const FilePermissions;
48 cmGeneratorTarget* Target;
50 std::map<std::string, std::vector<std::string>> CalculateFilesPerDir(
51 const std::string& config) const;