/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once #include "cmConfigure.h" // IWYU pragma: keep #include #include #include "cmInstallGenerator.h" #include "cmListFileCache.h" class cmLocalGenerator; /** \class cmInstallScriptGenerator * \brief Generate target installation rules. */ class cmInstallScriptGenerator : public cmInstallGenerator { public: cmInstallScriptGenerator( std::string script, bool code, std::string const& component, bool exclude_from_all, bool all_components, cmListFileBacktrace backtrace = cmListFileBacktrace()); ~cmInstallScriptGenerator() override; bool Compute(cmLocalGenerator* lg) override; bool IsCode() const { return this->Code; } std::string GetScript(std::string const& config) const; protected: void GenerateScriptActions(std::ostream& os, Indent indent) override; void GenerateScriptForConfig(std::ostream& os, const std::string& config, Indent indent) override; void AddScriptInstallRule(std::ostream& os, Indent indent, std::string const& script) const; std::string const Script; bool const Code; cmLocalGenerator* LocalGenerator; bool AllowGenex = false; };