2 # Copyright 2013 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
6 """Extracts information from a library.dsc file."""
15 print >> sys
.stderr
, 'dsc_info: %s' % msg
19 def FindTarget(tree
, target_name
):
20 targets
= tree
['TARGETS']
21 for target
in targets
:
22 if target
['NAME'] == target_name
:
24 Error('Target %s not found' % target_name
)
27 def GetSources(lib_dir
, tree
, target_name
):
29 target
= FindTarget(tree
, target_name
)
30 for filename
in target
['SOURCES']:
31 result
.append('/'.join([lib_dir
, filename
]))
36 """Entry point for gyp's pymod_do_main command."""
37 parser
= argparse
.ArgumentParser(description
=__doc__
)
38 # Give a clearer error message when this is used as a module.
39 parser
.prog
= 'dsc_info'
40 parser
.add_argument('-s', '--sources',
41 help='Print a list of source files for the target',
42 action
='store_true', default
=False)
43 parser
.add_argument('-l', '--libdir',
44 help='Directory where the library.dsc file is located',
46 parser
.add_argument('target')
47 options
= parser
.parse_args(args
)
48 libdir
= options
.libdir
or ''
49 tree
= parse_dsc
.LoadProject(os
.path
.join(libdir
, 'library.dsc'))
51 return '\n'.join(GetSources(libdir
, tree
, options
.target
))
52 parser
.error('No action specified')
59 if __name__
== '__main__':
61 sys
.exit(main(sys
.argv
[1:]))
62 except KeyboardInterrupt: