فهرست منبع

cmInstallFilesGenerator: Factor out method to get list of files

Brad King 5 سال پیش
والد
کامیت
5b23d8a7b1
2فایلهای تغییر یافته به همراه19 افزوده شده و 5 حذف شده
  1. 17 5
      Source/cmInstallFilesGenerator.cxx
  2. 2 0
      Source/cmInstallFilesGenerator.h

+ 17 - 5
Source/cmInstallFilesGenerator.cxx

@@ -66,6 +66,22 @@ std::string cmInstallFilesGenerator::GetRename(std::string const& config) const
                                          config);
 }
 
+std::vector<std::string> cmInstallFilesGenerator::GetFiles(
+  std::string const& config) const
+{
+  std::vector<std::string> files;
+  if (this->ActionsPerConfig) {
+    for (std::string const& f : this->Files) {
+      cmExpandList(
+        cmGeneratorExpression::Evaluate(f, this->LocalGenerator, config),
+        files);
+    }
+  } else {
+    files = this->Files;
+  }
+  return files;
+}
+
 void cmInstallFilesGenerator::AddFilesInstallRule(
   std::ostream& os, std::string const& config, Indent indent,
   std::vector<std::string> const& files)
@@ -92,10 +108,6 @@ void cmInstallFilesGenerator::GenerateScriptActions(std::ostream& os,
 void cmInstallFilesGenerator::GenerateScriptForConfig(
   std::ostream& os, const std::string& config, Indent indent)
 {
-  std::vector<std::string> files;
-  for (std::string const& f : this->Files) {
-    cmExpandList(
-      cmGeneratorExpression::Evaluate(f, this->LocalGenerator, config), files);
-  }
+  std::vector<std::string> files = this->GetFiles(config);
   this->AddFilesInstallRule(os, config, indent, files);
 }

+ 2 - 0
Source/cmInstallFilesGenerator.h

@@ -32,6 +32,8 @@ public:
 
   std::string GetDestination(std::string const& config) const;
   std::string GetRename(std::string const& config) const;
+  std::vector<std::string> GetFiles(std::string const& config) const;
+  bool GetOptional() const { return this->Optional; }
 
 protected:
   void GenerateScriptActions(std::ostream& os, Indent indent) override;