diff options
Diffstat (limited to 'tools/generate_stubs/generate_stubs.py')
-rwxr-xr-x | tools/generate_stubs/generate_stubs.py | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/tools/generate_stubs/generate_stubs.py b/tools/generate_stubs/generate_stubs.py index 61d606b..424d24f 100755 --- a/tools/generate_stubs/generate_stubs.py +++ b/tools/generate_stubs/generate_stubs.py @@ -36,6 +36,7 @@ import os import re import string import subprocess +import sys class Error(Exception): @@ -439,6 +440,17 @@ def WriteWindowsDefFile(module_name, signatures, outfile): outfile.write(' %s\n' % sig['name']) +def QuietRun(args, filter=None, write_to=sys.stdout): + """Invoke |args| as command via subprocess.Popen, filtering lines starting + with |filter|.""" + popen = subprocess.Popen(args, stdout=subprocess.PIPE) + out, _ = popen.communicate() + for line in out.splitlines(): + if not filter or not line.startswith(filter): + write_to.write(line + '\n') + return popen.returncode + + def CreateWindowsLib(module_name, signatures, intermediate_dir, outdir_path): """Creates a windows library file. @@ -470,9 +482,10 @@ def CreateWindowsLib(module_name, signatures, intermediate_dir, outdir_path): # Invoke the "lib" program on Windows to create stub .lib files for the # generated definitions. These .lib files can then be used during # delayloading of the dynamic libraries. - ret = subprocess.call(['lib', '/nologo', '/machine:X86', - '/def:' + def_file_path, - '/out:' + lib_file_path]) + ret = QuietRun(['lib', '/nologo', '/machine:X86', + '/def:' + def_file_path, + '/out:' + lib_file_path], + filter=' Creating library') if ret != 0: raise SubprocessError( 'Failed creating %s for %s' % (lib_file_path, def_file_path), |