Parcourir la source

presets: Fix encoding of env/penv macro expansion on Windows

Look up environment variables using a wide-character API on Windows,
and convert their value to our internal UTF-8 encoding.
Brad King il y a 2 ans
Parent
commit
1df24df01f
1 fichiers modifiés avec 3 ajouts et 4 suppressions
  1. 3 4
      Source/cmCMakePresetsGraph.cxx

+ 3 - 4
Source/cmCMakePresetsGraph.cxx

@@ -4,7 +4,6 @@
 
 #include <algorithm>
 #include <cassert>
-#include <cstdlib>
 #include <functional>
 #include <iostream>
 #include <iterator>
@@ -448,9 +447,9 @@ bool ExpandMacros(cmCMakePresetsGraph& graph, const T& preset,
       if (macroName.empty()) {
         return ExpandMacroResult::Error;
       }
-      const char* value = std::getenv(macroName.c_str());
-      if (value) {
-        result += value;
+      if (cm::optional<std::string> value =
+            cmSystemTools::GetEnvVar(macroName)) {
+        result += *value;
       }
       return ExpandMacroResult::Ok;
     }