1#!/usr/bin/python
2# Generates MSVC import libraries from .def files.  Assumes MSVC environment
3# has been loaded.
4
5import optparse
6import os
7import subprocess
8
9
10def main():
11  parser = optparse.OptionParser(usage='usage: %prog [options] input')
12  parser.add_option(
13      '-o', '--output', dest='output', default=None, help=('output location'))
14  (options, args) = parser.parse_args()
15
16  if options.output == None:
17    parser.error('Output location not specified')
18  if len(args) == 0:
19    parser.error('No inputs specified')
20
21  # Make sure output directory exists.
22  if not os.path.exists(options.output):
23    os.makedirs(options.output)
24
25  # Run lib.exe on each input def file.
26  for input_path in args:
27    input_name = os.path.basename(input_path)
28    input_root = os.path.splitext(input_name)[0]
29    output_path = os.path.join(options.output, input_root + '.lib')
30    subprocess.call([
31        'lib', '/nologo', '/machine:X86', '/def:' + input_path,
32        '/out:' + output_path
33    ])
34
35
36if __name__ == '__main__':
37  main()
38