2020import  tempfile 
2121from  gyp .common  import  GypError 
2222
23+ PY3  =  bytes  !=  str 
24+ 
2325# Populated lazily by XcodeVersion, for efficiency, and to fix an issue when 
2426# "xcodebuild" is called too quickly (it has been found to return incorrect 
2527# version number). 
@@ -1277,7 +1279,7 @@ def XcodeVersion():
12771279  except :
12781280    version  =  CLTVersion ()
12791281    if  version :
1280-       version  =  re . match ( r'(\d+\.\d+\.?\d*)' ,  version ). groups ()[ 0 ] 
1282+       version  =  "." . join ( version . split ( "." )[: 3 ]) 
12811283    else :
12821284      raise  GypError ("No Xcode or CLT version detected!" )
12831285    # The CLT has no build information, so we return an empty string. 
@@ -1322,6 +1324,8 @@ def GetStdoutQuiet(cmdlist):
13221324  Raises |GypError| if the command return with a non-zero return code.""" 
13231325  job  =  subprocess .Popen (cmdlist , stdout = subprocess .PIPE , stderr = subprocess .PIPE )
13241326  out  =  job .communicate ()[0 ]
1327+   if  PY3 :
1328+     out  =  out .decode ("utf-8" )
13251329  if  job .returncode  !=  0 :
13261330    raise  GypError ('Error %d running %s'  %  (job .returncode , cmdlist [0 ]))
13271331  return  out .rstrip ('\n ' )
@@ -1332,6 +1336,8 @@ def GetStdout(cmdlist):
13321336  Raises |GypError| if the command return with a non-zero return code.""" 
13331337  job  =  subprocess .Popen (cmdlist , stdout = subprocess .PIPE )
13341338  out  =  job .communicate ()[0 ]
1339+   if  PY3 :
1340+     out  =  out .decode ("utf-8" )
13351341  if  job .returncode  !=  0 :
13361342    sys .stderr .write (out  +  '\n ' )
13371343    raise  GypError ('Error %d running %s'  %  (job .returncode , cmdlist [0 ]))
0 commit comments