mirror of https://gitlab.com/ita1024/waf.git
Moved the find_binary function into a replaceable method
This commit is contained in:
parent
1018065c2e
commit
e085c8d25d
|
@ -517,21 +517,7 @@ def find_program(self, filename, **kw):
|
|||
path_list = Utils.to_list(path_list)
|
||||
else:
|
||||
path_list = environ.get('PATH', '').split(os.pathsep)
|
||||
|
||||
def find_binary():
|
||||
for f in filename:
|
||||
for ext in exts.split(','):
|
||||
exe_name = f + ext
|
||||
if os.path.isabs(exe_name):
|
||||
if os.path.isfile(exe_name):
|
||||
return exe_name
|
||||
else:
|
||||
for path in path_list:
|
||||
x = os.path.expanduser(os.path.join(path, exe_name))
|
||||
if os.path.isfile(x):
|
||||
return x
|
||||
|
||||
ret = find_binary()
|
||||
ret = self.find_binary(filename, exts.split(','), path_list)
|
||||
|
||||
if not ret and Utils.winreg:
|
||||
ret = Utils.get_registry_app_path(Utils.winreg.HKEY_CURRENT_USER, filename)
|
||||
|
@ -556,3 +542,18 @@ def find_program(self, filename, **kw):
|
|||
|
||||
return ret
|
||||
|
||||
@conf
|
||||
def find_binary(self, filenames, exts, paths):
|
||||
for f in filenames:
|
||||
for ext in exts:
|
||||
exe_name = f + ext
|
||||
if os.path.isabs(exe_name):
|
||||
if os.path.isfile(exe_name):
|
||||
return exe_name
|
||||
else:
|
||||
for path in paths:
|
||||
x = os.path.expanduser(os.path.join(path, exe_name))
|
||||
if os.path.isfile(x):
|
||||
return x
|
||||
return None
|
||||
|
||||
|
|
Loading…
Reference in New Issue