1 /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
2 file Copyright.txt or https://cmake.org/licensing for details. */
5 #include "cmConfigure.h" // IWYU pragma: keep
10 #include "cmInstallGenerator.h"
11 #include "cmListFileCache.h"
12 #include "cmScriptGenerator.h"
14 class cmLocalGenerator;
16 /** \class cmInstallScriptGenerator
17 * \brief Generate target installation rules.
19 class cmInstallScriptGenerator : public cmInstallGenerator
22 cmInstallScriptGenerator(
23 std::string script, bool code, std::string const& component,
24 bool exclude_from_all, bool all_components,
25 cmListFileBacktrace backtrace = cmListFileBacktrace());
26 ~cmInstallScriptGenerator() override;
28 bool Compute(cmLocalGenerator* lg) override;
30 bool IsCode() const { return this->Code; }
32 std::string GetScript(std::string const& config) const;
35 void GenerateScriptActions(std::ostream& os, Indent indent) override;
36 void GenerateScriptForConfig(std::ostream& os, const std::string& config,
37 Indent indent) override;
38 void AddScriptInstallRule(std::ostream& os, Indent indent,
39 std::string const& script) const;
41 std::string const Script;
43 cmLocalGenerator* LocalGenerator;
44 bool AllowGenex = false;