summaryrefslogtreecommitdiffstats
path: root/Source/cmCacheManager.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmCacheManager.cxx')
-rw-r--r--Source/cmCacheManager.cxx19
1 files changed, 18 insertions, 1 deletions
diff --git a/Source/cmCacheManager.cxx b/Source/cmCacheManager.cxx
index 52cb448..06e84c4 100644
--- a/Source/cmCacheManager.cxx
+++ b/Source/cmCacheManager.cxx
@@ -784,7 +784,24 @@ void cmCacheManager::AddCacheEntry(const char* key,
// make sure we only use unix style paths
if(type == FILEPATH || type == PATH)
{
- cmSystemTools::ConvertToUnixSlashes(e.Value);
+ if(e.Value.find(';') != e.Value.npos)
+ {
+ std::vector<std::string> paths;
+ cmSystemTools::ExpandListArgument(e.Value, paths);
+ const char* sep = "";
+ for(std::vector<std::string>::iterator i = paths.begin();
+ i != paths.end(); ++i)
+ {
+ cmSystemTools::ConvertToUnixSlashes(*i);
+ e.Value += sep;
+ e.Value += *i;
+ sep = ";";
+ }
+ }
+ else
+ {
+ cmSystemTools::ConvertToUnixSlashes(e.Value);
+ }
}
if ( helpString )
{