diff options
author | Bill Hoffman <bill.hoffman@kitware.com> | 2009-02-09 13:25:55 (GMT) |
---|---|---|
committer | Bill Hoffman <bill.hoffman@kitware.com> | 2009-02-09 13:25:55 (GMT) |
commit | 67ddd0c837172760c62850a8893eec74d416147e (patch) | |
tree | 15b20eed18e33519d55ba445f8dd926240e5d6c5 /Source/cmCacheManager.cxx | |
parent | 37428e32aa93c78429fe1c24c2c15928bba56446 (diff) | |
download | CMake-67ddd0c837172760c62850a8893eec74d416147e.zip CMake-67ddd0c837172760c62850a8893eec74d416147e.tar.gz CMake-67ddd0c837172760c62850a8893eec74d416147e.tar.bz2 |
BUG: fix for 0008378, lists with FILEPATH and UNC //server/path fail
Diffstat (limited to 'Source/cmCacheManager.cxx')
-rw-r--r-- | Source/cmCacheManager.cxx | 19 |
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 ) { |