Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / cython / python_flags.py
1 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import argparse
6 import os
7 import sys
8
9 from distutils import sysconfig
10 from distutils.command import build_ext
11 from distutils.dist import Distribution
12 from distutils.extension import Extension
13
14 def main():
15   """Command line utility to retrieve compilation options for python modules'
16   """
17   parser = argparse.ArgumentParser(
18       description='Retrieves compilation options for python modules.')
19   parser.add_argument('--gn',
20                       help='Returns all values in a format suitable for gn',
21                       action='store_true')
22   parser.add_argument('--libraries', help='Returns libraries',
23                       action='store_true')
24   parser.add_argument('--includes', help='Returns includes',
25                       action='store_true')
26   parser.add_argument('--library_dirs', help='Returns library_dirs',
27                       action='store_true')
28   opts = parser.parse_args()
29
30   ext = Extension('Dummy', [])
31   b = build_ext.build_ext(Distribution())
32   b.initialize_options()
33   b.finalize_options()
34   result = []
35   if opts.libraries:
36     libraries = b.get_libraries(ext)
37     if sys.platform == 'darwin':
38       libraries.append('python%s' % sys.version[:3])
39     if not opts.gn and sys.platform in ['darwin', 'linux2']:
40       # In case of GYP output for darwin and linux prefix all
41       # libraries (if there are any) so the result can be used as a
42       # compiler argument. GN handles platform-appropriate prefixing itself.
43       libraries = ['-l%s' % library for library in libraries]
44     result.extend(libraries)
45   if opts.includes:
46     result = result  + b.include_dirs
47   if opts.library_dirs:
48     if sys.platform == 'darwin':
49       result.append('%s/lib' % sysconfig.get_config_vars('prefix')[0])
50
51   if opts.gn:
52     for x in result:
53       print x
54   else:
55     print ''.join(['"%s"' % x for x in result])
56
57 if __name__ == '__main__':
58   main()