Переглянути джерело

cmGlobalNinjaGenerator: escape `:` in module names

Not all filesystems support `:` in the name, so replace it with `-`. As
`-` is not otherwise allowed in module names anyways, there is no risk
of conflict.
Ben Boeckel 3 роки тому
батько
коміт
97a68198c9
1 змінених файлів з 3 додано та 1 видалено
  1. 3 1
      Source/cmGlobalNinjaGenerator.cxx

+ 3 - 1
Source/cmGlobalNinjaGenerator.cxx

@@ -2550,7 +2550,9 @@ bool cmGlobalNinjaGenerator::WriteDyndepFile(
         }
       } else {
         // Assume the module file path matches the logical module name.
-        mod = cmStrCat(module_dir, p.LogicalName);
+        std::string safe_logical_name = p.LogicalName;
+        cmSystemTools::ReplaceString(safe_logical_name, ":", "-");
+        mod = cmStrCat(module_dir, safe_logical_name);
       }
       mod_files[p.LogicalName] = mod;
       tm[p.LogicalName] = mod;