summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2021-01-11 15:27:50 (GMT)
committerBrad King <brad.king@kitware.com>2021-01-28 17:46:32 (GMT)
commit2452cfdeab0a4c07a84b0908f4d4ecee79861ec8 (patch)
tree6143147c1370f91b0f009f12866bc9db14e2fad4 /Source
parent5b23d8a7b1e913df8261895f77a2140199a0b812 (diff)
downloadCMake-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.cxx22
-rw-r--r--Source/cmInstallDirectoryGenerator.h3
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;