Pārlūkot izejas kodu

Merge pull request #2676 from zhaojuntao/fix-tools-utils

[tools] 修复 GCC 版本判断的方式并增加异常捕获
Bernard Xiong 6 gadi atpakaļ
vecāks
revīzija
6e981106fb
1 mainītis faili ar 7 papildinājumiem un 5 dzēšanām
  1. 7 5
      tools/utils.py

+ 7 - 5
tools/utils.py

@@ -24,6 +24,7 @@
 
 import sys
 import os
+import re
 
 def splitall(loc):
     """
@@ -245,10 +246,11 @@ def ProjectInfo(env):
     return proj
 
 def VersionCmp(ver1, ver2):
-    la=[];
+    la=[]
     if ver1:
-        la = ver1.split('.')
-    lb = ver2.split('.')
+        la = re.split("[. ]", ver1)
+    lb = re.split("[. ]", ver2)
+
     f = 0
     if len(la) > len(lb):
         f = len(la)
@@ -262,7 +264,7 @@ def VersionCmp(ver1, ver2):
                 continue
             else:
                 return -1
-        except IndexError as e:
+        except (IndexError, ValueError) as e:
             if len(la) > len(lb):
                 return 1
             else:
@@ -274,7 +276,7 @@ def GCCC99Patch(cflags):
     gcc_version = building.GetDepend('GCC_VERSION')
     if gcc_version:
         gcc_version = gcc_version.replace('"', '')
-    if VersionCmp(gcc_version, "4.8.0"):
+    if VersionCmp(gcc_version, "4.8.0") == 1:
         # remove -std=c99 after GCC 4.8.x
         cflags = cflags.replace('-std=c99', '')