diff options
author | Brad King <brad.king@kitware.com> | 2021-01-11 15:27:50 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2021-01-28 17:46:32 (GMT) |
commit | 2452cfdeab0a4c07a84b0908f4d4ecee79861ec8 (patch) | |
tree | 6143147c1370f91b0f009f12866bc9db14e2fad4 /Source | |
parent | 5b23d8a7b1e913df8261895f77a2140199a0b812 (diff) | |
download | CMake-2452cfdeab0a4c07a84b0908f4d4ecee79861ec8.zip CMake-2452cfdeab0a4c07a84b0908f4d4ecee79861ec8.tar.gz CMake-2452cfdeab0a4c07a84b0908f4d4ecee79861ec8.tar.bz2 |
cmInstallDirectoryGenerator: Factor out method to get list of directories
Diffstat (limited to 'Source')
-rw-r--r-- | Source/cmInstallDirectoryGenerator.cxx | 22 | ||||
-rw-r--r-- | Source/cmInstallDirectoryGenerator.h | 3 |
2 files changed, 20 insertions, 5 deletions
diff --git a/Source/cmInstallDirectoryGenerator.cxx b/Source/cmInstallDirectoryGenerator.cxx index 0b45f28..2c5b9c6 100644 --- a/Source/cmInstallDirectoryGenerator.cxx +++ b/Source/cmInstallDirectoryGenerator.cxx @@ -50,6 +50,22 @@ bool cmInstallDirectoryGenerator::Compute(cmLocalGenerator* lg) return true; } +std::vector<std::string> cmInstallDirectoryGenerator::GetDirectories( + std::string const& config) const +{ + std::vector<std::string> directories; + if (this->ActionsPerConfig) { + for (std::string const& f : this->Directories) { + cmExpandList( + cmGeneratorExpression::Evaluate(f, this->LocalGenerator, config), + directories); + } + } else { + directories = this->Directories; + } + return directories; +} + void cmInstallDirectoryGenerator::GenerateScriptActions(std::ostream& os, Indent indent) { @@ -63,11 +79,7 @@ void cmInstallDirectoryGenerator::GenerateScriptActions(std::ostream& os, void cmInstallDirectoryGenerator::GenerateScriptForConfig( std::ostream& os, const std::string& config, Indent indent) { - std::vector<std::string> dirs; - for (std::string const& d : this->Directories) { - cmExpandList( - cmGeneratorExpression::Evaluate(d, this->LocalGenerator, config), dirs); - } + std::vector<std::string> dirs = this->GetDirectories(config); // Make sure all dirs have absolute paths. cmMakefile const& mf = *this->LocalGenerator->GetMakefile(); diff --git a/Source/cmInstallDirectoryGenerator.h b/Source/cmInstallDirectoryGenerator.h index af310f3..7c707bd 100644 --- a/Source/cmInstallDirectoryGenerator.h +++ b/Source/cmInstallDirectoryGenerator.h @@ -32,6 +32,9 @@ public: bool Compute(cmLocalGenerator* lg) override; std::string GetDestination(std::string const& config) const; + std::vector<std::string> GetDirectories(std::string const& config) const; + + bool GetOptional() const { return this->Optional; } protected: void GenerateScriptActions(std::ostream& os, Indent indent) override; |