summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernard Xiong <[email protected]>2024-05-08 10:50:45 +0800
committerGitHub <[email protected]>2024-05-08 10:50:45 +0800
commit73153ac06a07a574627b49c9a86ac2d57c298cd0 (patch)
treef73f2b6a2b61ca5566ef9e1c2fbba0bfadd74f63
parent0871140759e272e16954aefd2f6f89b46ec71db2 (diff)
[tools] fix the issue of cc detection failure in Windows (#8914)
-rw-r--r--tools/building.py2
-rw-r--r--tools/utils.py20
2 files changed, 21 insertions, 1 deletions
diff --git a/tools/building.py b/tools/building.py
index 6e9a81cf1f..b7d36c0b01 100644
--- a/tools/building.py
+++ b/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']
diff --git a/tools/utils.py b/tools/utils.py
index d76720a850..761aa07b0c 100644
--- a/tools/utils.py
+++ b/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