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