# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this # file, You can obtain one at http://mozilla.org/MPL/2.0/. '''Given a list of object files and library names, prints a library descriptor to standard output''' from __future__ import with_statement import sys import os import expandlibs_config as conf from expandlibs import LibDescriptor, isObject, ensureParentDir from optparse import OptionParser def generate(args): desc = LibDescriptor() for arg in args: if isObject(arg): if os.path.exists(arg): desc['OBJS'].append(os.path.abspath(arg)) else: raise Exception("File not found: %s" % arg) elif os.path.splitext(arg)[1] == conf.LIB_SUFFIX: if os.path.exists(arg) or os.path.exists(arg + conf.LIBS_DESC_SUFFIX): desc['LIBS'].append(os.path.abspath(arg)) else: raise Exception("File not found: %s" % arg) return desc if __name__ == '__main__': parser = OptionParser() parser.add_option("-o", dest="output", metavar="FILE", help="send output to the given file") (options, args) = parser.parse_args() if not options.output: raise Exception("Missing option: -o") ensureParentDir(options.output) with open(options.output, 'w') as outfile: print >>outfile, generate(args)