/* 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" class cmListFileBacktrace; class cmLocalGenerator; class cmMakefile; /** \class cmInstallSubdirectoryGenerator * \brief Generate target installation rules. */ class cmInstallSubdirectoryGenerator : public cmInstallGenerator { public: cmInstallSubdirectoryGenerator(cmMakefile* makefile, std::string binaryDirectory, cmListFileBacktrace backtrace); ~cmInstallSubdirectoryGenerator() override; bool HaveInstall() override; void CheckCMP0082(bool& haveSubdirectoryInstall, bool& haveInstallAfterSubdirectory) override; bool Compute(cmLocalGenerator* lg) override; protected: void GenerateScript(std::ostream& os) override; cmMakefile* const Makefile; std::string const BinaryDirectory; cmLocalGenerator* LocalGenerator; };