summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2016-07-02 22:01:17 +0800
committerruki <[email protected]>2016-07-02 22:01:17 +0800
commit383c46c282fe0fcd82e2bc8a2d227cd0528af262 (patch)
tree40b8247e9542856b1e1187ef9066796f0ce70d7d
parentaf3465afb3f509904099170b986f46937784b3e5 (diff)
fix check bug for android on windows
-rw-r--r--xmake/core/base/os.lua17
-rw-r--r--xmake/core/sandbox/modules/os.lua13
-rw-r--r--xmake/core/tool/tool.lua2
3 files changed, 31 insertions, 1 deletions
diff --git a/xmake/core/base/os.lua b/xmake/core/base/os.lua
index 702d97c82..b668647e2 100644
--- a/xmake/core/base/os.lua
+++ b/xmake/core/base/os.lua
@@ -360,6 +360,23 @@ function os.raise(msg, ...)
end
end
+-- is executable program?
+function os.isexec(filepath)
+
+ -- check
+ assert(filepath)
+
+ -- TODO
+ -- check permission
+
+ -- is *.exe for windows?
+ if xmake._HOST == "windows" and not filepath:find("%.exe") then
+ filepath = filepath .. ".exe"
+ end
+
+ -- file exists?
+ return os.isfile(filepath)
+end
-- return module
return os
diff --git a/xmake/core/sandbox/modules/os.lua b/xmake/core/sandbox/modules/os.lua
index 963ba3f55..7930ae3b2 100644
--- a/xmake/core/sandbox/modules/os.lua
+++ b/xmake/core/sandbox/modules/os.lua
@@ -294,6 +294,19 @@ function sandbox_os.isfile(filepath)
return os.isfile(filepath)
end
+-- is execute program?
+function sandbox_os.isexec(filepath)
+
+ -- check
+ assert(filepath)
+
+ -- format it first
+ filepath = vformat(filepath)
+
+ -- done
+ return os.isexec(filepath)
+end
+
-- exists file or directory?
function sandbox_os.exists(file_or_dir)
diff --git a/xmake/core/tool/tool.lua b/xmake/core/tool/tool.lua
index 209673e6e..8bd41d498 100644
--- a/xmake/core/tool/tool.lua
+++ b/xmake/core/tool/tool.lua
@@ -255,7 +255,7 @@ function tool.check(shellname, dirs, check)
-- the tool path
local toolpath = path.join(dir, shellname)
- if os.isfile(toolpath) then
+ if os.isexec(toolpath) then
-- check it
if tool._check(toolpath, check) then