summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Source/cmListFileCache.cxx13
-rw-r--r--Source/cmListFileCache.h3
2 files changed, 16 insertions, 0 deletions
diff --git a/Source/cmListFileCache.cxx b/Source/cmListFileCache.cxx
index d79afc6..d0495f7 100644
--- a/Source/cmListFileCache.cxx
+++ b/Source/cmListFileCache.cxx
@@ -479,3 +479,16 @@ std::ostream& operator<<(std::ostream& os, BT<std::string> const& s)
{
return os << s.Value;
}
+
+std::vector<BT<std::string>> ExpandListWithBacktrace(
+ const char* list, cmListFileBacktrace const& bt)
+{
+ std::vector<BT<std::string>> result;
+ std::vector<std::string> tmp;
+ cmSystemTools::ExpandListArgument(list, tmp);
+ result.reserve(tmp.size());
+ for (std::string& i : tmp) {
+ result.emplace_back(std::move(i), bt);
+ }
+ return result;
+}
diff --git a/Source/cmListFileCache.h b/Source/cmListFileCache.h
index 9f16b16..7c2802e 100644
--- a/Source/cmListFileCache.h
+++ b/Source/cmListFileCache.h
@@ -198,6 +198,9 @@ public:
std::ostream& operator<<(std::ostream& os, BT<std::string> const& s);
+std::vector<BT<std::string>> ExpandListWithBacktrace(
+ const char* list, cmListFileBacktrace const& bt = cmListFileBacktrace());
+
struct cmListFile
{
bool ParseFile(const char* path, cmMessenger* messenger,