Selaa lähdekoodia

[tools] fix the issue of cc detection failure in Windows (#8914)

Bernard Xiong 1 vuosi sitten
vanhempi
commit
73153ac06a
2 muutettua tiedostoa jossa 21 lisäystä ja 1 poistoa
  1. 1 1
      tools/building.py
  2. 20 0
      tools/utils.py

+ 1 - 1
tools/building.py

@@ -195,7 +195,7 @@ def PrepareBuilding(env, root_directory, has_libcpu=False, remove_components = [
         os.environ['RTT_CC_PREFIX'] = exec_prefix
 
     # auto change the 'RTT_EXEC_PATH' when 'rtconfig.EXEC_PATH' get failed
-    if not os.path.exists(os.path.join(rtconfig.EXEC_PATH, rtconfig.CC)):
+    if not utils.CmdExists(os.path.join(rtconfig.EXEC_PATH, rtconfig.CC)):
         if 'RTT_EXEC_PATH' in os.environ:
             # del the 'RTT_EXEC_PATH' and using the 'EXEC_PATH' setting on rtconfig.py
             del os.environ['RTT_EXEC_PATH']

+ 20 - 0
tools/utils.py

@@ -309,3 +309,23 @@ def VerTuple(version_str):
     ver = tuple(int(part) for part in ver_parts)
 
     return ver
+
+def CmdExists(cmd):
+    import platform
+
+    cmd_list = cmd.split(' ')
+    cmd = cmd_list[0]
+    if os.path.isfile(cmd):
+        return True
+    else:
+        # check cmd(.exe|.bat|.ps1) under Windows
+        if platform.system() == 'Windows':
+            if cmd.find('exe') != -1 or cmd.find('bat') != -1 or cmd.find('ps1') != -1:
+                return False
+
+            # add .exe then check whether the cmd exists
+            cmd = cmd + '.exe'
+            if os.path.isfile(cmd):
+                return True
+
+        return False