OLD | NEW |
---|---|
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import argparse | 5 import argparse |
6 import os | 6 import os |
7 import sys | 7 import sys |
8 | 8 |
9 from distutils import sysconfig | 9 from distutils import sysconfig |
10 from distutils.command import build_ext | 10 from distutils.command import build_ext |
(...skipping 16 matching lines...) Expand all Loading... | |
27 action='store_true') | 27 action='store_true') |
28 opts = parser.parse_args() | 28 opts = parser.parse_args() |
29 | 29 |
30 ext = Extension('Dummy', []) | 30 ext = Extension('Dummy', []) |
31 b = build_ext.build_ext(Distribution()) | 31 b = build_ext.build_ext(Distribution()) |
32 b.initialize_options() | 32 b.initialize_options() |
33 b.finalize_options() | 33 b.finalize_options() |
34 result = [] | 34 result = [] |
35 if opts.libraries: | 35 if opts.libraries: |
36 libraries = b.get_libraries(ext) | 36 libraries = b.get_libraries(ext) |
37 if sys.platform == 'darwin': | 37 if sys.platform in ['darwin', 'linux2']: |
38 libraries += [ '-lpython%s' % sys.version[:3] ] | 38 # In case of darwin and linux prefix all libraries (if there is any) |
39 result = result + libraries | 39 # so it can be used as a compiler argument. There are cases when we |
40 # don't get anything on these systems, so just to be save add a | |
41 # default python lib. | |
42 libraries = set(['-l%s' % library for library in libraries]) | |
43 libraries.add('-lpython%s' % sys.version[:3]) | |
qsr
2014/08/29 15:11:52
This last line should only happen on mac. On linux
| |
44 result.extend(libraries) | |
40 if opts.includes: | 45 if opts.includes: |
41 result = result + b.include_dirs | 46 result = result + b.include_dirs |
42 if opts.library_dirs: | 47 if opts.library_dirs: |
43 if sys.platform == 'darwin': | 48 if sys.platform == 'darwin': |
44 result.append('%s/lib' % sysconfig.get_config_vars('prefix')[0]) | 49 result.append('%s/lib' % sysconfig.get_config_vars('prefix')[0]) |
45 | 50 |
46 if opts.gn: | 51 if opts.gn: |
47 for x in result: | 52 for x in result: |
48 print x | 53 print x |
49 else: | 54 else: |
50 print ''.join(['"%s"' % x for x in result]) | 55 print ''.join(['"%s"' % x for x in result]) |
51 | 56 |
52 if __name__ == '__main__': | 57 if __name__ == '__main__': |
53 main() | 58 main() |
OLD | NEW |