diff options
author | Kyle Edwards <kyle.edwards@kitware.com> | 2021-06-17 21:01:28 (GMT) |
---|---|---|
committer | Kyle Edwards <kyle.edwards@kitware.com> | 2021-10-27 19:17:23 (GMT) |
commit | 9b479124cc4be49a4b2c6e45e733b489f7a26432 (patch) | |
tree | c8ca0ce69ed5706d20cfc08a486507c58905233c /Source/cmInstallFileSetGenerator.h | |
parent | d8af2d954f8619f0e8bc42252d310085dec94df4 (diff) | |
download | CMake-9b479124cc4be49a4b2c6e45e733b489f7a26432.zip CMake-9b479124cc4be49a4b2c6e45e733b489f7a26432.tar.gz CMake-9b479124cc4be49a4b2c6e45e733b489f7a26432.tar.bz2 |
install(TARGETS): Add FILE_SET mode
Diffstat (limited to 'Source/cmInstallFileSetGenerator.h')
-rw-r--r-- | Source/cmInstallFileSetGenerator.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/Source/cmInstallFileSetGenerator.h b/Source/cmInstallFileSetGenerator.h new file mode 100644 index 0000000..8d067d9 --- /dev/null +++ b/Source/cmInstallFileSetGenerator.h @@ -0,0 +1,52 @@ +/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying + file Copyright.txt or https://cmake.org/licensing for details. */ +#pragma once + +#include <iosfwd> +#include <map> +#include <string> +#include <vector> + +#include "cmInstallGenerator.h" +#include "cmListFileCache.h" +#include "cmScriptGenerator.h" + +class cmGeneratorTarget; +class cmFileSet; +class cmLocalGenerator; + +class cmInstallFileSetGenerator : public cmInstallGenerator +{ +public: + cmInstallFileSetGenerator(std::string targetName, cmFileSet* fileSet, + std::string const& dest, + std::string file_permissions, + std::vector<std::string> const& configurations, + std::string const& component, MessageLevel message, + bool exclude_from_all, bool optional, + cmListFileBacktrace backtrace); + ~cmInstallFileSetGenerator() override; + + bool Compute(cmLocalGenerator* lg) override; + + std::string GetDestination(std::string const& config) const; + std::string GetDestination() const { return this->Destination; } + bool GetOptional() const { return this->Optional; } + cmFileSet* GetFileSet() const { return this->FileSet; } + cmGeneratorTarget* GetTarget() const { return this->Target; } + +protected: + void GenerateScriptForConfig(std::ostream& os, const std::string& config, + Indent indent) override; + +private: + std::string TargetName; + cmLocalGenerator* LocalGenerator; + cmFileSet* const FileSet; + std::string const FilePermissions; + bool const Optional; + cmGeneratorTarget* Target; + + std::map<std::string, std::vector<std::string>> CalculateFilesPerDir( + const std::string& config) const; +}; |